JJVSVLL4YA7QD335UZAFSUXNPMPUC6FCLL5GXHEGVGN5PO2KUDJAC MAJOR: malloc(): unsorted double linked list corruptedMINOR:font_sdf_rgba.ktx is opened in 3 different placeswrite more testsBUG:BAD:CORRECT:- ktx 1 parser can only handle the font_sdf_rgba.ktx,as it doesn't check anything or do dynamic padding for the dataFeaturesdynamic verts and indice buffers to a_shape as arguments--experimental:strictEffects# Turn on the new refined effect tracking. It enables the new .effectsOf# annotation for effect polymorphic code ("this code raises if the callback does so").--experimental:unicodeOperators# Allow the usage of Unicode operators. I hope that some of# the scientific computing libraries use this soon.--experimental:overloadableEnums# Allow enum field names to be overloaded. I hope some libraries make good use of this feature.--define:nimPreviewDotLikeOps# Dot-like operators (operators starting with `.`,but not with `..`)# now have the same precedence as `.`,so that `a.?b.c` is now parsed as `(a.?b).c`# instead of `a.?(b.c)`.--define:nimPreviewFloatRoundtrip# Enable much faster "floating point to string" operations that also produce# easier to read floating point numbers.--gc:orc# The one and only way to do memory management in modern Nim.--define:nimStrictDelete# make system.delete strict for index out of bounds accesses.# THINGS#[Tempest (video game)#I,Robot (video game)commandozaxonradar scopealone in the darkultima underworldint(round((atan2((y - y_center),(x - x_center))/PI * 4 + 4))) % 8`KOFF` as a command to turn off voice speech - reference to C64 speech sythisizer# getOccupiedSharedMem when using --gc:arc --threads:on" or "--gc:orc --threads:onful·mi·nate/ˈfo͝olməˌnāt/Learn to pronounceverb1. express vehement protest."he fulminated against the evils of his time"2. LITERARY: explode violently or flash like lightning."thunder fulminated around the house"]## var# computer: Computer# with computer:# manufacturer = "bananas"# cpu = "x7"# powerConsumption = 17# ram = 32# ssd = 1024# quantity = 3# price = 499.99#[Here are four books that Jon recommends: A Digital Signal Processing Primer: With Applications to Digital Audio and Computer Music -- Ken Stieglitz (ISBN:0805316841); Hypercomplex Numbers: An Elementary Introduction to Algebras -- I.L. Kantor (ISBN:0387969802); Linear Algebra Done Right -- Sheldon Axler (ISBN:3319110799); Hacker's Delight -- Henry Warren (ISBN:0321842685)]#The CthaehasymptoticYou're expected to have experience in linear algebra, multi-variable calculus, group theory, and complex function theory to really understand it.By default, the Nim compiler passes "-g3" to the C compiler, with "--debugger:native", which almost doubles the resulting binary's size (only on disk, not in memory). If we don't need to use GDB on that binary, we can get away with significantly fewer debugging symbols by switching to "-g1":# for the C backendnim c --debugger:native --gcc.options.debug:'-g1' -d:release somefile.nim(P)ower (H)ungry (M)aniacs- the critique of ego of YeThe first 3 phases to the final boss (Yu?) is normal video game stuffthe last 3-4 phases are introducing the very universe lore, and his spawning and coming to the pocket, and how the tear happenend./agdg/ -> Agatha DagatheThe good news is that any queue family with VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT capabilities already implicitly support VK_QUEUE_TRANSFER_BIT operations. The implementation is not required to explicitly list it in queueFlags in those cases.UI elements for most game genres should never appear outside the center 16:9 when running on ultra wide resolutions.better FOV calculationTASHI-497 -> The little cute bomb thing that exploded in space to create a new galaxy in Symbiotic TitanTHE SUNFLOWER CLUB -> The mysterious club/cult(?) dedicated to SUN(yellow)flowersOn Windows, you'll need to open the binary SPIR-V file in binary mode by specifying the fopen mode flags as "rb". SPIR-V code is a sequence of 32-bit unsigned integers and on Windows you need to suppress any line-ending translations with the "binary" mode flag. The "b" flag is ignored on POSIX conforming systems like Linux and so you can leave it in your code if it is to be compiled on multiple platforms.
import vk/vulkanvkLoad1_0()varinstance: VkInstanceval = allocCStringArray(["VK_LAYER_KHRONOS_validation", "VK_LAYER_LUNARG_api_dump"])appInfo = newVkApplicationInfo( pApplicationName = "instance test", applicationVersion = vkMakeVersion(1, 0, 0), pEngineName = "zzz", engineVersion = vkMakeVersion(1, 0, 0), apiVersion = vkApiVersion1_1)exts = allocCStringArray([])instanceCreateInfo = newVkInstanceCreateInfo( pApplicationInfo = appInfo.addr, enabledExtensionCount = 0, ppEnabledExtensionNames = exts, enabledLayerCount = 0, ppEnabledLayerNames = val)if vkCreateInstance(instanceCreateInfo.addr, nil, addr instance) != VKSuccess: quit("failed to create instance")else: echo "vkInstance: PASS"
--path:"../src/"
{.experimental: "codeReordering".}{.deadCodeElim: on.}#[THINGS TO FIX: why uboVS as a ref object fucks up vertice uploading: #TODO: decouple rec.vk_device from rec and "properly" implement it]#import vulkan as nvk, ../utils/lets, bitops, vkTypes, ../memory/[utils]#from depth_stencil import Depth_Stencilproc `<`*(x,y: VkDeviceSize): bool = return x.int < y.intproc `>`*(x,y: VkDeviceSize): bool = return x.int > y.intproc `==`*(x,y: VkDeviceSize): bool = return x.int == y.intproc getQueueFamilyIndex*( qfp: seq[VkQueueFamilyProperties], qFlags: VkQueueFlagBits): uint32 =if bitand(qFlags.int, VK_QUEUE_GRAPHICS_BIT.int) == 1:for i, x in qfp:if bitand(qfp[i].queueFlags.int, qFlags.int) == 1: return i.uint32elif bitand(qFlags.int, VK_QUEUE_TRANSFER_BIT.int) == 1:for i, x in qfp:if bitand(qfp[i].queueFlags.int, qFlags.int) == 1: return i.uint32elif bitand(qFlags.int, VK_QUEUE_COMPUTE_BIT.int) == 1:for i, x in qfp:if bitand(qfp[i].queueFlags.int, qFlags.int) == 1: return i.uint32else:for i, x in qfp:if bitand(qfp[i].queueFlags.int, qFlags.int) == 1: return i.uint32proc chooseSwapSurfaceFormat*(availableFormats: seq[VkSurfaceFormatKHR]): VkSurfaceFormatKHR =for availableFormat in availableFormats:if availableFormat.format == VK_FORMAT_B8G8R8A8_UNORM andavailableFormat.colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:return availableFormatavailableFormats[0]proc chooseSwapPresentMode*(availablePresentModes: seq[VkPresentModeKHR]): VkPresentModeKHR =for availablePresentMode in availablePresentModes:if availablePresentMode == VK_PRESENT_MODE_MAILBOX_KHR:return availablePresentModeVK_PRESENT_MODE_FIFO_KHRproc chooseSwapExtent*(capabilities: VkSurfaceCapabilitiesKHR): VkExtent2D =if capabilities.currentExtent.width != uint32.high:return capabilities.currentExtentelse:# result = VkExtent2D(width: WIDTH, height: HEIGHT)result.width = max( capabilities.minImageExtent.width, min(capabilities.maxImageExtent.width, result.width))result.height = max(capabilities.minImageExtent.height, min(capabilities.maxImageExtent.height, result.height) )proc createShaderModule*(device: VkDevice, code: string): VkShaderModule =var createInfo = VkShaderModuleCreateInfo(sType: VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,codeSize: code.len.uint32,pCode: cast[ptr uint32](code[0].addr))if vkCreateShaderModule(device, createInfo.addr, nil, result.addr) != VK_SUCCESS:quit("failed to create shader module")proc createCommandPool*( vk_device: VkDevice, graphics_queue_index: uint32): VkCommandPool =varpoolInfo = VkCommandPoolCreateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, queueFamilyIndex: graphics_queue_index # rec.qfi.graphics, flags: VkCommandPoolCreateFlags VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT# optional)if vkCreateCommandPool( vk_device, poolInfo.addr, nil, addr result) != VK_SUCCESS:quit("failed to create command pool")proc getCommandBuffers*( device: VkDevice, command_pool: VkCommandPool, start: bool): VkCommandBuffer =varallocInfo = VkCommandBufferAllocateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, commandPool: command_pool, level: VK_COMMAND_BUFFER_LEVEL_PRIMARY, commandBufferCount: 1)discard vkAllocateCommandBuffers(device, allocInfo.addr, result.addr)if start:var cmdBufInfo: VkCommandBufferBeginInfocmdBufInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFOdiscard vkBeginCommandBuffer(result, addr cmdBufInfo)resultproc createPipeLineCache*( vk_device: VKDevice): VkPipelineCache =var pipelineCacheCreateInfo: VkPipelineCacheCreateInfopipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFOdiscard vkCreatePipelineCache( vk_device, addr pipelineCacheCreateInfo, nil, addr result)proc flushCommandBuffer*( device: VkDevice, q: VkQueue, command_pool: VkCommandPool, commandBuffer: var VkCommandBuffer) =discard vkEndCommandBuffer commandBuffervarsubmitInfo: VkSubmitInfofenceCreateInfo: VkFenceCreateInfofence: VkFencesubmitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFOsubmitInfo.commandBufferCount = 1submitInfo.pCommandBuffers = addr commandBuffer #????????# Create fence to ensure that the command buffer has finished executingfenceCreateInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFOfenceCreateInfo.flags = VkFenceCreateFlags 0discard vkCreateFence(device, addr fenceCreateInfo, nil, addr fence)# Submit to the queuediscard vkQueueSubmit(q, 1, addr submitInfo, fence)# # Wait for the fence to signal that command buffer has finished executingdiscard vkWaitForFences(device, 1.uint32, addr fence, VkBool32 VK_TRUE, high uint64) # in nanosecondsvkDestroyFence(device, fence, nil)vkFreeCommandBuffers(device, command_pool, 1, addr commandBuffer)proc createOneCommandBuffer*( device: VkDevice, pool: VkCommandPool, level: VkCommandBufferLevel = VK_COMMAND_BUFFER_LEVEL_PRIMARY, begin: bool = false): VkCommandBuffer =var allocInfo = VkCommandBufferAllocateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, commandPool: pool, level: level, commandBufferCount: 1)discard vkAllocateCommandBuffers(device, addr allocInfo, addr result)if begin:var cmdBufferBeginInfo: VkCommandBufferBeginInfocmdBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFOdiscard vkBeginCommandBuffer(result, addr cmdBufferBeginInfo)resultproc setImageLayout*( cmdbuffer: VkCommandBuffer, image: VkImage, oldImageLayout: VkImageLayout, newImageLayout: VkImageLayout, subresourceRange: VkImageSubresourceRange, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags) =var# Initialize an image memory barrier with no image transfer ownershipimageMemoryBarrier = VkImageMemoryBarrier( sType: VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, srcQueueFamilyIndex: VK_QUEUE_FAMILY_IGNORED, dstQueueFamilyIndex: VK_QUEUE_FAMILY_IGNORED, oldLayout: oldImageLayout, newLayout: newImageLayout, image: image, subresourceRange: subresourceRange)# Source layouts (old)# Source access mask controls actions that have to be finished on the old layout# before it will be transitioned to the new layoutcase oldImageLayout:of VK_IMAGE_LAYOUT_UNDEFINED:# Image layout is undefined (or does not matter)# Only valid as initial layout# No flags required, listed only for completenessimageMemoryBarrier.srcAccessMask = VkAccessFlags 0of VK_IMAGE_LAYOUT_PREINITIALIZED:# Image is preinitialized# Only valid as initial layout for linear images, preserves memory contents# Make sure host writes have been finishedimageMemoryBarrier.srcAccessMask = VkAccessFlags VK_ACCESS_HOST_WRITE_BITof VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:# Image is a color attachment# Make sure any writes to the color buffer have been finishedimageMemoryBarrier.srcAccessMask = VkAccessFlags VK_ACCESS_COLOR_ATTACHMENT_WRITE_BITof VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:# Image is a depth/stencil attachment# Make sure any writes to the depth/stencil buffer have been finishedimageMemoryBarrier.srcAccessMask = VkAccessFlags VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BITof VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:# Image is a transfer source# Make sure any reads from the image have been finishedimageMemoryBarrier.srcAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_READ_BITof VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:# Image is a transfer destination# Make sure any writes to the image have been finishedimageMemoryBarrier.srcAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_WRITE_BITof VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:# Image is read by a shader# Make sure any shader reads from the image have been finishedimageMemoryBarrier.srcAccessMask = VkAccessFlags VK_ACCESS_SHADER_READ_BITelse: discard # Other source layouts aren't handled (yet)# Target layouts (new)# Destination access mask controls the dependency for the new image layoutcase newImageLayout:of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:# Image will be used as a transfer destination# Make sure any writes to the image have been finishedimageMemoryBarrier.dstAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_WRITE_BITof VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:# Image will be used as a transfer source# Make sure any reads from the image have been finishedimageMemoryBarrier.dstAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_READ_BITof VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:# Image will be used as a color attachment# Make sure any writes to the color buffer have been finishedimageMemoryBarrier.dstAccessMask = VkAccessFlags VK_ACCESS_COLOR_ATTACHMENT_WRITE_BITof VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:# Image layout will be used as a depth/stencil attachment# Make sure any writes to depth/stencil buffer have been finishedimageMemoryBarrier.dstAccessMask = VkAccessFlags bitor(imageMemoryBarrier.dstAccessMask.ord, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT.ord)of VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:# Image will be read in a shader (sampler, input attachment)# Make sure any writes to the image have been finishedif (imageMemoryBarrier.srcAccessMask.int == 0).bool:imageMemoryBarrier.srcAccessMask = VkAccessFlags bitor(VK_ACCESS_HOST_WRITE_BIT.ord, VK_ACCESS_TRANSFER_WRITE_BIT.ord)imageMemoryBarrier.dstAccessMask = VkAccessFlags VK_ACCESS_SHADER_READ_BITelse: discard #Other source layouts aren't handled (yet)# Put barrier inside setup command buffervkCmdPipelineBarrier( cmdbuffer, srcStageMask, dstStageMask, VkDependencyFlags 0, 0, nil, 0, nil, 1, addr imageMemoryBarrier)proc beginSingleTimeCommands*( vk_device: VkDevice, command_pool: VkCommandPool): VkCommandBuffer =varcommandBuffer: VkCommandBufferbeginInfo = VkCommandBufferBeginInfo( sType:VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, flags: VkCommandBufferUsageFlags VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT)allocInfo = VkCommandBufferAllocateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, level: VK_COMMAND_BUFFER_LEVEL_PRIMARY, commandPool: command_pool, commandBufferCount: 1)discard vkAllocateCommandBuffers( vk_device, addr allocInfo, addr commandBuffer)discard vkBeginCommandBuffer(commandBuffer, addr beginInfo)proc endSingleTimeCommands*( vk_device: VkDevice, cmdBuffer: VkCommandBuffer, graphics_queue: VkQueue, command_pool: VkCommandPool, fence: VkFence = VkFence 0, cmdBufferCount: uint32 = 1) =var submitInfo = VkSubmitInfo( sType: VK_STRUCTURE_TYPE_SUBMIT_INFO, commandBufferCount: cmdBufferCount, pCommandBuffers: addr cmdBuffer)discard vkEndCommandBuffer(cmdBuffer)discard vkQueueSubmit( graphics_queue, uint32 1, addr submitInfo, fence)discard vkQueueWaitIdle graphics_queuevkFreeCommandBuffers( vk_device, command_pool, 1, addr cmdBuffer)proc createImageView*( device: VkDevice, image: VkImage, format: VkFormat): VkImageVIew =var viewInfo = VkImageViewCreateInfo( sType: VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, image: image, viewType: VK_IMAGE_VIEW_TYPE_2D, format: format, subresourceRange: VkImageSubresourceRange( aspectMask: VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BIT, baseMipLevel: 0, levelCount: 1, baseArrayLayer: 0, layerCount: 1))discard vkCreateImageView(device, addr viewInfo, nil, addr result)result# TODO: Samplers can be shared. Decide on parameters and reuse samplers# when the same parameters are passed.proc createSampler*(device: VkDevice): VkSampler =var samplerInfo = VkSamplerCreateInfo( sType: VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, magFilter: VK_FILTER_LINEAR, minFilter: VK_FILTER_LINEAR, addressModeU: VK_SAMPLER_ADDRESS_MODE_REPEAT, addressModeV: VK_SAMPLER_ADDRESS_MODE_REPEAT, addressModeW: VK_SAMPLER_ADDRESS_MODE_REPEAT, anisotropyEnable: vktrue, maxAnisotropy: 16, borderColor: VK_BORDER_COLOR_INT_OPAQUE_BLACK, unnormalizedCoordinates: vkfalse, compareEnable: vkfalse, compareOp: VK_COMPARE_OP_ALWAYS, mipmapMode: VK_SAMPLER_MIPMAP_MODE_LINEAR)discard vkCreateSampler(device, addr samplerInfo, nil, addr result)resultproc newVkFenceCreateInfo*(sType: VkStructureType = VkStructureTypeFenceCreateInfo, pNext: pointer = nil, flags: VkFenceCreateFlags = 0.VkFenceCreateFlags): VkFenceCreateInfo =result.sType = sTyperesult.pNext = pNextresult.flags = flagsproc createSyncPrims*( vk_device: VkDevice, fences: var seq[VkFence], draw_command_buffers: var seq[VkCommandBuffer]) =var createInfo = newVkFenceCreateInfo()#echo rec.draw_command_buffers.lenfences.setLen draw_command_buffers.lenfor i,fence in fences:discard vkCreateFence( vk_device, addr createInfo, nil, addr fences[i])proc aVkDescriptorImageInfo*( sampler: VkSampler, imageView: VkImageView, imageLayout: VkImageLayout): VkDescriptorImageInfo =result = VkDescriptorImageInfo()result.sampler = samplerresult.imageView = imageViewresult.imageLayout = imageLayoutproc aVkWriteDescriptorSet*( descSet: VkDescriptorSet, descType: VkDescriptorType, binding: uint32, bufferInfo: VkDescriptorBufferInfo, descriptorCount: uint32 = 1): VkWriteDescriptorSet =result = VkWriteDescriptorSet()result.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SETresult.dstSet = descSetresult.descriptorType = descTyperesult.dstBinding = bindingresult.pBufferInfo = cast[ptr ptr VkDescriptorBufferInfo] (addr bufferInfo) # LMAO?????result.descriptorCount = descriptorCountproc aVkDescriptorSetLayoutBinding*( descType: VkDescriptorType, stageFlags: VkShaderStageFlags, binding: uint32, descCount: uint32 = 1): VkDescriptorSetLayoutBinding =result = VkDescriptorSetLayoutBinding()result.descriptorType = descTyperesult.stageFlags = stageFlagsresult.binding = bindingresult.descriptorCount = descCountproc aVkBufferCreateInfo*( usage: VkBufferUsageFlags, size: VkDeviceSize = vk0): VkBufferCreateInfo =result = VkBufferCreateInfo(sType: VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, usage: usage, size: size)proc Vkds*[T](t: T): VKDeviceSize {.inline.}= VKDeviceSize tproc find_memory_with_property*( memory_properties: VkPhysicalDeviceMemoryProperties, the_type_bits: var uint32, required_memory_properties: VkMemoryPropertyFlags): uint32 =for memory_index in 0 ..< memoryProperties.memoryTypeCount:letmemory_type_bits = 1 shl memory_indexis_required_memory_type = (the_type_bits and memory_type_bits.uint32)property_flags: VkMemoryPropertyFlags = memory_properties.memoryTypes[memory_index].propertyFlagsmemory_has_required_properties = ( property_flags.int andrequired_memory_properties.int)# is == 1 correct?if is_required_memory_type == 1 andmemory_has_required_properties == 1:return memory_indexquit("no matching memory type could be found:")proc create_image*( vk_device: VkDevice, gpu_memory_properties: VkPhysicalDeviceMemoryProperties, width: uint32, height: uint32, depth: uint32, format: VkFormat, tiling: VkImageTiling, usage: VkImageUsageFlags, properties: VkMemoryPropertyFlags): BoundImage =varallocInfo = VkMemoryAllocateInfo(sType: VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)image: VKImagememReqs: VkMemoryRequirementsimageMem: VkDeviceMemoryimageci = VkimageCreateInfo( sType: VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, imageType: VK_IMAGE_TYPE_2D, extent: VkExtent3D( width: width, height: height, depth: 1), mipLevels: 1, arrayLayers: 1, format: format, tiling: tiling, initialLayout: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, usage: usage, samples: VK_SAMPLE_COUNT_1_BIT, sharingMode: VK_SHARING_MODE_EXCLUSIVE#[ , imageCreateMaxMipLevels: 1, imageCreateMaxArrayLayers: 1, imageCreateMaxExtent: VkExtent3D( width: width, height: height, depth: depth), imageCreateSampleCounts: VK_SAMPLE_COUNT_1_BIT ]#)discard vkCreateImage( vk_device, addr imageci, nil, addr image)vkGetImageMemoryRequirements( vk_device, image, addr memReqs)allocInfo.allocationSize = memReqs.sizeallocInfo.memoryTypeIndex = find_memory_with_property( gpu_memory_properties, memReqs.memoryTypeBits, properties)discard vkBindImageMemory( vk_device, image, imageMem, vk0)#TODO: This should be per pipeline correct?proc create_descriptor_pool*( vk_device: VkDevice): VkDescriptorPool =varsizes = [ VkDescriptorPoolSize( typee: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, descriptorCount: 1), VkDescriptorPoolSize( typee: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, descriptorCount: 1)]# Create the global descriptor pool# All descriptors used in this example are allocated from this pooldescriptorPoolInfo = VkDescriptorPoolCreateInfo( sType : VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, pNext : nil, poolSizeCount : 2, pPoolSizes : addr sizes[0], maxSets: 4 # Set the max. number of descriptor sets that can be requested from this pool)discard vkCreateDescriptorPool( vk_device, addr descriptorPoolInfo, nil, addr result)result
import vulkan, gpu, swapchain, vkTypes, buffer, depth_stencil, render_pass, uniform_buffer, graphics_pipelinetypeVulkan_Record_Object = object of RootObjcommand_pool*: VkCommandPoolvk_device*: VkDevicegpu*: GPUgraphics_queue*: VkQueueinstance*: VkInstancelogicalDevice*: VkDevicepresentQueue*: VkQueuequeue*: VkQueueswapchain*: Swapchainsemaphores*: Semaphorespipeline_cache*: VkPipelineCacheframe_buffers*: seq[VkFramebuffer]currentFrameBuffer*: uint32instanceExtensions*: cstringarrayieLen*: intdeviceExtensions*: cstringarraydeLen*: intframePrepared*: boolqfi*: QueueFamilyqfps*: seq[VkQueueFamilyProperties]qni*: uint32submitInfo*: VkSubmitInfodraw_command_buffers*: seq[VkCommandBuffer]fences*: seq[VkFence]presentCompleteSemaphore*: VkSemaphorerenderCompleteSemaphore*: VkSemaphorecurrent_viewport*: VkViewportreadyFrame*: boolmaster_vertex_buffer*: Buffermaster_index_buffer*: Buffermaster_uniform_buffer*: BufferVulkan_Record* = ref object of Vulkan_Record_Object
var vkGetProc*: proc(procName: cstring): pointer {.cdecl.}when not defined(vkCustomLoader):import dynlibwhen defined(linux):const vkDLL = "libvulkan.so.1"when defined(windows):const vkDLL = "vulkan-1.dll"let vkHandleDLL = loadLib(vkDLL)if isNil(vkHandleDLL):quit("could not load: " & vkDLL)let vkGetProcAddress* = cast[proc(s: cstring): pointer {.stdcall.}](symAddr(vkHandleDLL, "vkGetInstanceProcAddr"))if vkGetProcAddress == nil:quit("failed to load `vkGetInstanceProcAddr` from " & vkDLL)vkGetProc = proc(procName: cstring): pointer {.cdecl.} =when defined(windows):result = vkGetProcAddress(procName)if result != nil:echo "vkGetProc SUCCESS: " & $procNamereturnelse: quit("vkGetProcAddress(" & $procName & ") is nil")result = symAddr(vkHandleDLL, procName)if result == nil:raiseInvalidLibrary(procName)proc setVKGetProc*(getProc: proc(procName: cstring): pointer {.cdecl.}) =vkGetProc = getProctypeVkHandle* = int64VkNonDispatchableHandle* = int64ANativeWindow = ptr objectCAMetalLayer = ptr objectAHardwareBuffer = ptr object# EnumsconstVK_MAX_PHYSICAL_DEVICE_NAME_SIZE* = 256VK_UUID_SIZE* = 16VK_LUID_SIZE* = 8VK_LUID_SIZE_KHR* = VK_LUID_SIZEVK_MAX_EXTENSION_NAME_SIZE* = 256VK_MAX_DESCRIPTION_SIZE* = 256VK_MAX_MEMORY_TYPES* = 32VK_MAX_MEMORY_HEAPS* = 16VK_LOD_CLAMP_NONE* = 1000.0fVK_REMAINING_MIP_LEVELS* = (not 0'u32)VK_REMAINING_ARRAY_LAYERS* = (not 0'u32)VK_WHOLE_SIZE* = (not 0'u64)VK_ATTACHMENT_UNUSED* = (not 0'u32)VK_TRUE* = 1VK_FALSE* = 0VK_QUEUE_FAMILY_IGNORED* = (not 0'u32)VK_QUEUE_FAMILY_EXTERNAL* = (not 0'u32) - 1VK_QUEUE_FAMILY_EXTERNAL_KHR* = VK_QUEUE_FAMILY_EXTERNALVK_QUEUE_FAMILY_FOREIGN_EXT* = (not 0'u32) - 2VK_SUBPASS_EXTERNAL* = (not 0'u32)VK_MAX_DEVICE_GROUP_SIZE* = 32VK_MAX_DEVICE_GROUP_SIZE_KHR* = VK_MAX_DEVICE_GROUP_SIZEVK_MAX_DRIVER_NAME_SIZE* = 256VK_MAX_DRIVER_NAME_SIZE_KHR* = VK_MAX_DRIVER_NAME_SIZEVK_MAX_DRIVER_INFO_SIZE* = 256VK_MAX_DRIVER_INFO_SIZE_KHR* = VK_MAX_DRIVER_INFO_SIZEVK_SHADER_UNUSED_KHR* = (not 0'u32)VK_SHADER_UNUSED_NV* = VK_SHADER_UNUSED_KHRtypeVkImageLayout* {.size: int32.sizeof.} = enumVK_IMAGE_LAYOUT_UNDEFINED = 0VK_IMAGE_LAYOUT_GENERAL = 1VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7VK_IMAGE_LAYOUT_PREINITIALIZED = 8VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001VkAttachmentLoadOp* {.size: int32.sizeof.} = enumVK_ATTACHMENT_LOAD_OP_LOAD = 0VK_ATTACHMENT_LOAD_OP_CLEAR = 1VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2VkAttachmentStoreOp* {.size: int32.sizeof.} = enumVK_ATTACHMENT_STORE_OP_STORE = 0VK_ATTACHMENT_STORE_OP_DONT_CARE = 1VkImageType* {.size: int32.sizeof.} = enumVK_IMAGE_TYPE_1D = 0VK_IMAGE_TYPE_2D = 1VK_IMAGE_TYPE_3D = 2VkImageTiling* {.size: int32.sizeof.} = enumVK_IMAGE_TILING_OPTIMAL = 0VK_IMAGE_TILING_LINEAR = 1VkImageViewType* {.size: int32.sizeof.} = enumVK_IMAGE_VIEW_TYPE_1D = 0VK_IMAGE_VIEW_TYPE_2D = 1VK_IMAGE_VIEW_TYPE_3D = 2VK_IMAGE_VIEW_TYPE_CUBE = 3VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6VkCommandBufferLevel* {.size: int32.sizeof.} = enumVK_COMMAND_BUFFER_LEVEL_PRIMARY = 0VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1VkComponentSwizzle* {.size: int32.sizeof.} = enumVK_COMPONENT_SWIZZLE_IDENTITY = 0VK_COMPONENT_SWIZZLE_ZERO = 1VK_COMPONENT_SWIZZLE_ONE = 2VK_COMPONENT_SWIZZLE_R = 3VK_COMPONENT_SWIZZLE_G = 4VK_COMPONENT_SWIZZLE_B = 5VK_COMPONENT_SWIZZLE_A = 6VkDescriptorType* {.size: int32.sizeof.} = enumVK_DESCRIPTOR_TYPE_SAMPLER = 0VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10VkQueryType* {.size: int32.sizeof.} = enumVK_QUERY_TYPE_OCCLUSION = 0VK_QUERY_TYPE_PIPELINE_STATISTICS = 1VK_QUERY_TYPE_TIMESTAMP = 2VkBorderColor* {.size: int32.sizeof.} = enumVK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5VkPipelineBindPoint* {.size: int32.sizeof.} = enumVK_PIPELINE_BIND_POINT_GRAPHICS = 0VK_PIPELINE_BIND_POINT_COMPUTE = 1VkPipelineCacheHeaderVersion* {.size: int32.sizeof.} = enumVK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1VkPrimitiveTopology* {.size: int32.sizeof.} = enumVK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10VkSharingMode* {.size: int32.sizeof.} = enumVK_SHARING_MODE_EXCLUSIVE = 0VK_SHARING_MODE_CONCURRENT = 1VkIndexType* {.size: int32.sizeof.} = enumVK_INDEX_TYPE_UINT16 = 0VK_INDEX_TYPE_UINT32 = 1VkFilter* {.size: int32.sizeof.} = enumVK_FILTER_NEAREST = 0VK_FILTER_LINEAR = 1VkSamplerMipmapMode* {.size: int32.sizeof.} = enumVK_SAMPLER_MIPMAP_MODE_NEAREST = 0VK_SAMPLER_MIPMAP_MODE_LINEAR = 1VkSamplerAddressMode* {.size: int32.sizeof.} = enumVK_SAMPLER_ADDRESS_MODE_REPEAT = 0VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3VkCompareOp* {.size: int32.sizeof.} = enumVK_COMPARE_OP_NEVER = 0VK_COMPARE_OP_LESS = 1VK_COMPARE_OP_EQUAL = 2VK_COMPARE_OP_LESS_OR_EQUAL = 3VK_COMPARE_OP_GREATER = 4VK_COMPARE_OP_NOT_EQUAL = 5VK_COMPARE_OP_GREATER_OR_EQUAL = 6VK_COMPARE_OP_ALWAYS = 7VkPolygonMode* {.size: int32.sizeof.} = enumVK_POLYGON_MODE_FILL = 0VK_POLYGON_MODE_LINE = 1VK_POLYGON_MODE_POINT = 2VkCullModeFlagBits* {.size: int32.sizeof.} = enumVK_CULL_MODE_NONE = 0VK_CULL_MODE_FRONT_BIT = 1VK_CULL_MODE_BACK_BIT = 2VK_CULL_MODE_FRONT_AND_BACK = 3VkFrontFace* {.size: int32.sizeof.} = enumVK_FRONT_FACE_COUNTER_CLOCKWISE = 0VK_FRONT_FACE_CLOCKWISE = 1VkBlendFactor* {.size: int32.sizeof.} = enumVK_BLEND_FACTOR_ZERO = 0VK_BLEND_FACTOR_ONE = 1VK_BLEND_FACTOR_SRC_COLOR = 2VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3VK_BLEND_FACTOR_DST_COLOR = 4VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5VK_BLEND_FACTOR_SRC_ALPHA = 6VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7VK_BLEND_FACTOR_DST_ALPHA = 8VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9VK_BLEND_FACTOR_CONSTANT_COLOR = 10VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11VK_BLEND_FACTOR_CONSTANT_ALPHA = 12VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14VK_BLEND_FACTOR_SRC1_COLOR = 15VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16VK_BLEND_FACTOR_SRC1_ALPHA = 17VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18VkBlendOp* {.size: int32.sizeof.} = enumVK_BLEND_OP_ADD = 0VK_BLEND_OP_SUBTRACT = 1VK_BLEND_OP_REVERSE_SUBTRACT = 2VK_BLEND_OP_MIN = 3VK_BLEND_OP_MAX = 4VkStencilOp* {.size: int32.sizeof.} = enumVK_STENCIL_OP_KEEP = 0VK_STENCIL_OP_ZERO = 1VK_STENCIL_OP_REPLACE = 2VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4VK_STENCIL_OP_INVERT = 5VK_STENCIL_OP_INCREMENT_AND_WRAP = 6VK_STENCIL_OP_DECREMENT_AND_WRAP = 7VkLogicOp* {.size: int32.sizeof.} = enumVK_LOGIC_OP_CLEAR = 0VK_LOGIC_OP_AND = 1VK_LOGIC_OP_AND_REVERSE = 2VK_LOGIC_OP_COPY = 3VK_LOGIC_OP_AND_INVERTED = 4VK_LOGIC_OP_NO_OP = 5VK_LOGIC_OP_XOR = 6VK_LOGIC_OP_OR = 7VK_LOGIC_OP_NOR = 8VK_LOGIC_OP_EQUIVALENT = 9VK_LOGIC_OP_INVERT = 10VK_LOGIC_OP_OR_REVERSE = 11VK_LOGIC_OP_COPY_INVERTED = 12VK_LOGIC_OP_OR_INVERTED = 13VK_LOGIC_OP_NAND = 14VK_LOGIC_OP_SET = 15VkInternalAllocationType* {.size: int32.sizeof.} = enumVK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0VkSystemAllocationScope* {.size: int32.sizeof.} = enumVK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4VkPhysicalDeviceType* {.size: int32.sizeof.} = enumVK_PHYSICAL_DEVICE_TYPE_OTHER = 0VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3VK_PHYSICAL_DEVICE_TYPE_CPU = 4VkVertexInputRate* {.size: int32.sizeof.} = enumVK_VERTEX_INPUT_RATE_VERTEX = 0VK_VERTEX_INPUT_RATE_INSTANCE = 1VkFormat* {.size: int32.sizeof.} = enumVK_FORMAT_UNDEFINED = 0VK_FORMAT_R4G4_UNORM_PACK8 = 1VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3VK_FORMAT_R5G6B5_UNORM_PACK16 = 4VK_FORMAT_B5G6R5_UNORM_PACK16 = 5VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8VK_FORMAT_R8_UNORM = 9VK_FORMAT_R8_SNORM = 10VK_FORMAT_R8_USCALED = 11VK_FORMAT_R8_SSCALED = 12VK_FORMAT_R8_UINT = 13VK_FORMAT_R8_SINT = 14VK_FORMAT_R8_SRGB = 15VK_FORMAT_R8G8_UNORM = 16VK_FORMAT_R8G8_SNORM = 17VK_FORMAT_R8G8_USCALED = 18VK_FORMAT_R8G8_SSCALED = 19VK_FORMAT_R8G8_UINT = 20VK_FORMAT_R8G8_SINT = 21VK_FORMAT_R8G8_SRGB = 22VK_FORMAT_R8G8B8_UNORM = 23VK_FORMAT_R8G8B8_SNORM = 24VK_FORMAT_R8G8B8_USCALED = 25VK_FORMAT_R8G8B8_SSCALED = 26VK_FORMAT_R8G8B8_UINT = 27VK_FORMAT_R8G8B8_SINT = 28VK_FORMAT_R8G8B8_SRGB = 29VK_FORMAT_B8G8R8_UNORM = 30VK_FORMAT_B8G8R8_SNORM = 31VK_FORMAT_B8G8R8_USCALED = 32VK_FORMAT_B8G8R8_SSCALED = 33VK_FORMAT_B8G8R8_UINT = 34VK_FORMAT_B8G8R8_SINT = 35VK_FORMAT_B8G8R8_SRGB = 36VK_FORMAT_R8G8B8A8_UNORM = 37VK_FORMAT_R8G8B8A8_SNORM = 38VK_FORMAT_R8G8B8A8_USCALED = 39VK_FORMAT_R8G8B8A8_SSCALED = 40VK_FORMAT_R8G8B8A8_UINT = 41VK_FORMAT_R8G8B8A8_SINT = 42VK_FORMAT_R8G8B8A8_SRGB = 43VK_FORMAT_B8G8R8A8_UNORM = 44VK_FORMAT_B8G8R8A8_SNORM = 45VK_FORMAT_B8G8R8A8_USCALED = 46VK_FORMAT_B8G8R8A8_SSCALED = 47VK_FORMAT_B8G8R8A8_UINT = 48VK_FORMAT_B8G8R8A8_SINT = 49VK_FORMAT_B8G8R8A8_SRGB = 50VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69VK_FORMAT_R16_UNORM = 70VK_FORMAT_R16_SNORM = 71VK_FORMAT_R16_USCALED = 72VK_FORMAT_R16_SSCALED = 73VK_FORMAT_R16_UINT = 74VK_FORMAT_R16_SINT = 75VK_FORMAT_R16_SFLOAT = 76VK_FORMAT_R16G16_UNORM = 77VK_FORMAT_R16G16_SNORM = 78VK_FORMAT_R16G16_USCALED = 79VK_FORMAT_R16G16_SSCALED = 80VK_FORMAT_R16G16_UINT = 81VK_FORMAT_R16G16_SINT = 82VK_FORMAT_R16G16_SFLOAT = 83VK_FORMAT_R16G16B16_UNORM = 84VK_FORMAT_R16G16B16_SNORM = 85VK_FORMAT_R16G16B16_USCALED = 86VK_FORMAT_R16G16B16_SSCALED = 87VK_FORMAT_R16G16B16_UINT = 88VK_FORMAT_R16G16B16_SINT = 89VK_FORMAT_R16G16B16_SFLOAT = 90VK_FORMAT_R16G16B16A16_UNORM = 91VK_FORMAT_R16G16B16A16_SNORM = 92VK_FORMAT_R16G16B16A16_USCALED = 93VK_FORMAT_R16G16B16A16_SSCALED = 94VK_FORMAT_R16G16B16A16_UINT = 95VK_FORMAT_R16G16B16A16_SINT = 96VK_FORMAT_R16G16B16A16_SFLOAT = 97VK_FORMAT_R32_UINT = 98VK_FORMAT_R32_SINT = 99VK_FORMAT_R32_SFLOAT = 100VK_FORMAT_R32G32_UINT = 101VK_FORMAT_R32G32_SINT = 102VK_FORMAT_R32G32_SFLOAT = 103VK_FORMAT_R32G32B32_UINT = 104VK_FORMAT_R32G32B32_SINT = 105VK_FORMAT_R32G32B32_SFLOAT = 106VK_FORMAT_R32G32B32A32_UINT = 107VK_FORMAT_R32G32B32A32_SINT = 108VK_FORMAT_R32G32B32A32_SFLOAT = 109VK_FORMAT_R64_UINT = 110VK_FORMAT_R64_SINT = 111VK_FORMAT_R64_SFLOAT = 112VK_FORMAT_R64G64_UINT = 113VK_FORMAT_R64G64_SINT = 114VK_FORMAT_R64G64_SFLOAT = 115VK_FORMAT_R64G64B64_UINT = 116VK_FORMAT_R64G64B64_SINT = 117VK_FORMAT_R64G64B64_SFLOAT = 118VK_FORMAT_R64G64B64A64_UINT = 119VK_FORMAT_R64G64B64A64_SINT = 120VK_FORMAT_R64G64B64A64_SFLOAT = 121VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123VK_FORMAT_D16_UNORM = 124VK_FORMAT_X8_D24_UNORM_PACK32 = 125VK_FORMAT_D32_SFLOAT = 126VK_FORMAT_S8_UINT = 127VK_FORMAT_D16_UNORM_S8_UINT = 128VK_FORMAT_D24_UNORM_S8_UINT = 129VK_FORMAT_D32_SFLOAT_S8_UINT = 130VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134VK_FORMAT_BC2_UNORM_BLOCK = 135VK_FORMAT_BC2_SRGB_BLOCK = 136VK_FORMAT_BC3_UNORM_BLOCK = 137VK_FORMAT_BC3_SRGB_BLOCK = 138VK_FORMAT_BC4_UNORM_BLOCK = 139VK_FORMAT_BC4_SNORM_BLOCK = 140VK_FORMAT_BC5_UNORM_BLOCK = 141VK_FORMAT_BC5_SNORM_BLOCK = 142VK_FORMAT_BC6H_UFLOAT_BLOCK = 143VK_FORMAT_BC6H_SFLOAT_BLOCK = 144VK_FORMAT_BC7_UNORM_BLOCK = 145VK_FORMAT_BC7_SRGB_BLOCK = 146VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152VK_FORMAT_EAC_R11_UNORM_BLOCK = 153VK_FORMAT_EAC_R11_SNORM_BLOCK = 154VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001VK_FORMAT_MAX_ENUM = 0x7FFFFFFFVkStructureType* {.size: int32.sizeof.} = enumVK_STRUCTURE_TYPE_APPLICATION_INFO = 0VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3VK_STRUCTURE_TYPE_SUBMIT_INFO = 4VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001 #added by meVK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000VkSubpassContents* {.size: int32.sizeof.} = enumVK_SUBPASS_CONTENTS_INLINE = 0VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1VkResult* {.size: int32.sizeof.} = enumVK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000VK_ERROR_NOT_PERMITTED_EXT = -1000174001,VK_ERROR_FRAGMENTATION = -1000161000,VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,VK_ERROR_INVALID_SHADER_NV = -1000012000,VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,VK_ERROR_OUT_OF_DATE_KHR = -1000001004,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,VK_ERROR_SURFACE_LOST_KHR = -1000000000,VK_ERROR_UNKNOWN = -13,VK_ERROR_FRAGMENTED_POOL = -12,VK_ERROR_FORMAT_NOT_SUPPORTED = -11,VK_ERROR_TOO_MANY_OBJECTS = -10,VK_ERROR_INCOMPATIBLE_DRIVER = -9,VK_ERROR_FEATURE_NOT_PRESENT = -8,VK_ERROR_EXTENSION_NOT_PRESENT = -7,VK_ERROR_LAYER_NOT_PRESENT = -6,VK_ERROR_MEMORY_MAP_FAILED = -5,VK_ERROR_DEVICE_LOST = -4,VK_ERROR_INITIALIZATION_FAILED = -3,VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,VK_ERROR_OUT_OF_HOST_MEMORY = -1,VK_SUCCESS = 0,VK_NOT_READY = 1,VK_TIMEOUT = 2,VK_EVENT_SET = 3,VK_EVENT_RESET = 4,VK_INCOMPLETE = 5,VK_SUBOPTIMAL_KHR = 1000001003,VkDynamicState* {.size: int32.sizeof.} = enumVK_DYNAMIC_STATE_VIEWPORT = 0VK_DYNAMIC_STATE_SCISSOR = 1VK_DYNAMIC_STATE_LINE_WIDTH = 2VK_DYNAMIC_STATE_DEPTH_BIAS = 3VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8VkDescriptorUpdateTemplateType* {.size: int32.sizeof.} = enumVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0VkObjectType* {.size: int32.sizeof.} = enumVK_OBJECT_TYPE_UNKNOWN = 0VK_OBJECT_TYPE_INSTANCE = 1VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2VK_OBJECT_TYPE_DEVICE = 3VK_OBJECT_TYPE_QUEUE = 4VK_OBJECT_TYPE_SEMAPHORE = 5VK_OBJECT_TYPE_COMMAND_BUFFER = 6VK_OBJECT_TYPE_FENCE = 7VK_OBJECT_TYPE_DEVICE_MEMORY = 8VK_OBJECT_TYPE_BUFFER = 9VK_OBJECT_TYPE_IMAGE = 10VK_OBJECT_TYPE_EVENT = 11VK_OBJECT_TYPE_QUERY_POOL = 12VK_OBJECT_TYPE_BUFFER_VIEW = 13VK_OBJECT_TYPE_IMAGE_VIEW = 14VK_OBJECT_TYPE_SHADER_MODULE = 15VK_OBJECT_TYPE_PIPELINE_CACHE = 16VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17VK_OBJECT_TYPE_RENDER_PASS = 18VK_OBJECT_TYPE_PIPELINE = 19VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20VK_OBJECT_TYPE_SAMPLER = 21VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22VK_OBJECT_TYPE_DESCRIPTOR_SET = 23VK_OBJECT_TYPE_FRAMEBUFFER = 24VK_OBJECT_TYPE_COMMAND_POOL = 25VkQueueFlagBits* {.size: int32.sizeof.} = enumVK_QUEUE_GRAPHICS_BIT = 1VK_QUEUE_COMPUTE_BIT = 2VK_QUEUE_TRANSFER_BIT = 4VK_QUEUE_SPARSE_BINDING_BIT = 8VkMemoryPropertyFlagBits* {.size: int32.sizeof.} = enumVK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16VkMemoryHeapFlagBits* {.size: int32.sizeof.} = enumVK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1VkAccessFlagBits* {.size: int32.sizeof.} = enumVK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1VK_ACCESS_INDEX_READ_BIT = 2VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4VK_ACCESS_UNIFORM_READ_BIT = 8VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16VK_ACCESS_SHADER_READ_BIT = 32VK_ACCESS_SHADER_WRITE_BIT = 64VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024VK_ACCESS_TRANSFER_READ_BIT = 2048VK_ACCESS_TRANSFER_WRITE_BIT = 4096VK_ACCESS_HOST_READ_BIT = 8192VK_ACCESS_HOST_WRITE_BIT = 16384VK_ACCESS_MEMORY_READ_BIT = 32768VK_ACCESS_MEMORY_WRITE_BIT = 65536VkBufferUsageFlagBits* {.size: int32.sizeof.} = enumVK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000VkBufferCreateFlagBits* {.size: int32.sizeof.} = enumVK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4VkShaderStageFlagBits* {.size: int32.sizeof.} = enumVK_SHADER_STAGE_VERTEX_BIT = 1VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4VK_SHADER_STAGE_GEOMETRY_BIT = 8VK_SHADER_STAGE_FRAGMENT_BIT = 16VK_SHADER_STAGE_ALL_GRAPHICS = 31VK_SHADER_STAGE_COMPUTE_BIT = 32VK_SHADER_STAGE_ALL = 2147483647VkImageUsageFlagBits* {.size: int32.sizeof.} = enumVK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2VK_IMAGE_USAGE_SAMPLED_BIT = 4VK_IMAGE_USAGE_STORAGE_BIT = 8VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128VkImageCreateFlagBits* {.size: int32.sizeof.} = enumVK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16VkPipelineCreateFlagBits* {.size: int32.sizeof.} = enumVK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4VkColorComponentFlagBits* {.size: int32.sizeof.} = enumVK_COLOR_COMPONENT_R_BIT = 1VK_COLOR_COMPONENT_G_BIT = 2VK_COLOR_COMPONENT_B_BIT = 4VK_COLOR_COMPONENT_A_BIT = 8VkFenceCreateFlagBits* {.size: int32.sizeof.} = enumVK_FENCE_CREATE_SIGNALED_BIT = 1VkFormatFeatureFlagBits* {.size: int32.sizeof.} = enumVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096VkQueryControlFlagBits* {.size: int32.sizeof.} = enumVK_QUERY_CONTROL_PRECISE_BIT = 1VkQueryResultFlagBits* {.size: int32.sizeof.} = enumVK_QUERY_RESULT_64_BIT = 1VK_QUERY_RESULT_WAIT_BIT = 2VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4VK_QUERY_RESULT_PARTIAL_BIT = 8VkCommandBufferUsageFlagBits* {.size: int32.sizeof.} = enumVK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4VkQueryPipelineStatisticFlagBits* {.size: int32.sizeof.} = enumVK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024VkImageAspectFlagBits* {.size: int32.sizeof.} = enumVK_IMAGE_ASPECT_COLOR_BIT = 1VK_IMAGE_ASPECT_DEPTH_BIT = 2VK_IMAGE_ASPECT_STENCIL_BIT = 4VK_IMAGE_ASPECT_METADATA_BIT = 8VkSparseImageFormatFlagBits* {.size: int32.sizeof.} = enumVK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4VkSparseMemoryBindFlagBits* {.size: int32.sizeof.} = enumVK_SPARSE_MEMORY_BIND_METADATA_BIT = 1VkPipelineStageFlagBits* {.size: int32.sizeof.} = enumVK_PIPELINE_STAGE_NONE = 0 # Provided by VK_KHR_synchronization2VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000VK_PIPELINE_STAGE_HOST_BIT = 0x00004000VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000 # Provided by VK_NV_device_generated_commandsVK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000 # Provided by VK_EXT_conditional_renderingVK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000 # Provided by VK_NV_mesh_shaderVK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000 # Provided by VK_NV_mesh_shaderVK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT = 0x00200000 # Provided by VK_KHR_ray_tracing_pipelineVK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT = 0x00400000 # Provided by VK_KHR_fragment_shading_rateVK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000 # Provided by VK_EXT_fragment_density_mapVK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000 # Provided by VK_EXT_transform_feedbackVK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT = 0x02000000 # Provided by VK_KHR_acceleration_structure# VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT # Provided by VK_NV_ray_tracing# VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT # Provided by VK_NV_shading_rate_image# VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT # Provided by VK_NV_ray_tracingVkCommandPoolCreateFlagBits* {.size: int32.sizeof.} = enumVK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2VkCommandPoolResetFlagBits* {.size: int32.sizeof.} = enumVK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1VkCommandBufferResetFlagBits* {.size: int32.sizeof.} = enumVK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1VkSampleCountFlagBits* {.size: int32.sizeof.} = enumVK_SAMPLE_COUNT_1_BIT = 1VK_SAMPLE_COUNT_2_BIT = 2VK_SAMPLE_COUNT_4_BIT = 4VK_SAMPLE_COUNT_8_BIT = 8VK_SAMPLE_COUNT_16_BIT = 16VK_SAMPLE_COUNT_32_BIT = 32VK_SAMPLE_COUNT_64_BIT = 64VkAttachmentDescriptionFlagBits* {.size: int32.sizeof.} = enumVK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1VkStencilFaceFlagBits* {.size: int32.sizeof.} = enumVK_STENCIL_FACE_FRONT_BIT = 1VK_STENCIL_FACE_BACK_BIT = 2VK_STENCIL_FACE_FRONT_AND_BACK = 3VkDescriptorPoolCreateFlagBits* {.size: int32.sizeof.} = enumVK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1VkDependencyFlagBits* {.size: int32.sizeof.} = enumVK_DEPENDENCY_BY_REGION_BIT = 1VkSemaphoreType* {.size: int32.sizeof.} = enumVK_SEMAPHORE_TYPE_BINARY = 0VK_SEMAPHORE_TYPE_TIMELINE = 1VkSemaphoreWaitFlagBits* {.size: int32.sizeof.} = enumVK_SEMAPHORE_WAIT_ANY_BIT = 1VkPresentModeKHR* {.size: int32.sizeof.} = enumVK_PRESENT_MODE_IMMEDIATE_KHR = 0VK_PRESENT_MODE_MAILBOX_KHR = 1VK_PRESENT_MODE_FIFO_KHR = 2VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3VkColorSpaceKHR* {.size: int32.sizeof.} = enumVK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0VkDisplayPlaneAlphaFlagBitsKHR* {.size: int32.sizeof.} = enumVK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 1VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 2VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 4VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 8VkCompositeAlphaFlagBitsKHR* {.size: int32.sizeof.} = enumVK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8VkSurfaceTransformFlagBitsKHR* {.size: int32.sizeof.} = enumVK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256VkSwapchainImageUsageFlagBitsANDROID* {.size: int32.sizeof.} = enumVK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 1VkTimeDomainEXT* {.size: int32.sizeof.} = enumVK_TIME_DOMAIN_DEVICE_EXT = 0VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3VkDebugReportFlagBitsEXT* {.size: int32.sizeof.} = enumVK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1VK_DEBUG_REPORT_WARNING_BIT_EXT = 2VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4VK_DEBUG_REPORT_ERROR_BIT_EXT = 8VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16VkDebugReportObjectTypeEXT* {.size: int32.sizeof.} = enumVK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33VkRasterizationOrderAMD* {.size: int32.sizeof.} = enumVK_RASTERIZATION_ORDER_STRICT_AMD = 0VK_RASTERIZATION_ORDER_RELAXED_AMD = 1VkExternalMemoryHandleTypeFlagBitsNV* {.size: int32.sizeof.} = enumVK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8VkExternalMemoryFeatureFlagBitsNV* {.size: int32.sizeof.} = enumVK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4VkValidationCheckEXT* {.size: int32.sizeof.} = enumVK_VALIDATION_CHECK_ALL_EXT = 0VK_VALIDATION_CHECK_SHADERS_EXT = 1VkValidationFeatureEnableEXT* {.size: int32.sizeof.} = enumVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4VkValidationFeatureDisableEXT* {.size: int32.sizeof.} = enumVK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6VkSubgroupFeatureFlagBits* {.size: int32.sizeof.} = enumVK_SUBGROUP_FEATURE_BASIC_BIT = 1VK_SUBGROUP_FEATURE_VOTE_BIT = 2VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 4VK_SUBGROUP_FEATURE_BALLOT_BIT = 8VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 16VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 32VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 64VK_SUBGROUP_FEATURE_QUAD_BIT = 128VkIndirectCommandsLayoutUsageFlagBitsNV* {.size: int32.sizeof.} = enumVK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4VkIndirectStateFlagBitsNV* {.size: int32.sizeof.} = enumVK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1VkIndirectCommandsTokenTypeNV* {.size: int32.sizeof.} = enumVK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7VkExternalMemoryHandleTypeFlagBits* {.size: int32.sizeof.} = enumVK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 1VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 8VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 16VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 32VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 64VkExternalMemoryFeatureFlagBits* {.size: int32.sizeof.} = enumVK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4VkExternalSemaphoreHandleTypeFlagBits* {.size: int32.sizeof.} = enumVK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 1VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 8VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16VkExternalSemaphoreFeatureFlagBits* {.size: int32.sizeof.} = enumVK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2VkSemaphoreImportFlagBits* {.size: int32.sizeof.} = enumVK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1VkExternalFenceHandleTypeFlagBits* {.size: int32.sizeof.} = enumVK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 1VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 8VkExternalFenceFeatureFlagBits* {.size: int32.sizeof.} = enumVK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2VkFenceImportFlagBits* {.size: int32.sizeof.} = enumVK_FENCE_IMPORT_TEMPORARY_BIT = 1VkSurfaceCounterFlagBitsEXT* {.size: int32.sizeof.} = enumVK_SURFACE_COUNTER_VBLANK_EXT = 1VkDisplayPowerStateEXT* {.size: int32.sizeof.} = enumVK_DISPLAY_POWER_STATE_OFF_EXT = 0VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1VK_DISPLAY_POWER_STATE_ON_EXT = 2VkDeviceEventTypeEXT* {.size: int32.sizeof.} = enumVK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0VkDisplayEventTypeEXT* {.size: int32.sizeof.} = enumVK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0VkPeerMemoryFeatureFlagBits* {.size: int32.sizeof.} = enumVK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 1VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 2VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 4VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 8VkMemoryAllocateFlagBits* {.size: int32.sizeof.} = enumVK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFFVkDeviceGroupPresentModeFlagBitsKHR* {.size: int32.sizeof.} = enumVK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8VkViewportCoordinateSwizzleNV* {.size: int32.sizeof.} = enumVK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7VkDiscardRectangleModeEXT* {.size: int32.sizeof.} = enumVK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1VkPointClippingBehavior* {.size: int32.sizeof.} = enumVK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1VkSamplerReductionMode* {.size: int32.sizeof.} = enumVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0VK_SAMPLER_REDUCTION_MODE_MIN = 1VK_SAMPLER_REDUCTION_MODE_MAX = 2VkTessellationDomainOrigin* {.size: int32.sizeof.} = enumVK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1VkSamplerYcbcrModelConversion* {.size: int32.sizeof.} = enumVK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4VkSamplerYcbcrRange* {.size: int32.sizeof.} = enumVK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1VkChromaLocation* {.size: int32.sizeof.} = enumVK_CHROMA_LOCATION_COSITED_EVEN = 0VK_CHROMA_LOCATION_MIDPOINT = 1VkBlendOverlapEXT* {.size: int32.sizeof.} = enumVK_BLEND_OVERLAP_UNCORRELATED_EXT = 0VK_BLEND_OVERLAP_DISJOINT_EXT = 1VK_BLEND_OVERLAP_CONJOINT_EXT = 2VkCoverageModulationModeNV* {.size: int32.sizeof.} = enumVK_COVERAGE_MODULATION_MODE_NONE_NV = 0VK_COVERAGE_MODULATION_MODE_RGB_NV = 1VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3VkCoverageReductionModeNV* {.size: int32.sizeof.} = enumVK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1VkValidationCacheHeaderVersionEXT* {.size: int32.sizeof.} = enumVK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1VkShaderInfoTypeAMD* {.size: int32.sizeof.} = enumVK_SHADER_INFO_TYPE_STATISTICS_AMD = 0VK_SHADER_INFO_TYPE_BINARY_AMD = 1VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2VkQueueGlobalPriorityEXT* {.size: int32.sizeof.} = enumVK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024VkDebugUtilsMessageSeverityFlagBitsEXT* {.size: int32.sizeof.} = enumVK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096VkDebugUtilsMessageTypeFlagBitsEXT* {.size: int32.sizeof.} = enumVK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4VkConservativeRasterizationModeEXT* {.size: int32.sizeof.} = enumVK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2VkDescriptorBindingFlagBits* {.size: int32.sizeof.} = enumVK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 1VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 2VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 4VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 8VkVendorId* {.size: int32.sizeof.} = enumVK_VENDOR_ID_VIV = 65537VK_VENDOR_ID_VSI = 65538VK_VENDOR_ID_KAZAN = 65539VK_VENDOR_ID_CODEPLAY = 65540VK_VENDOR_ID_MESA = 65541VkDriverId* {.size: int32.sizeof.} = enumVK_DRIVER_ID_AMD_PROPRIETARY = 1VK_DRIVER_ID_AMD_OPEN_SOURCE = 2VK_DRIVER_ID_MESA_RADV = 3VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8VK_DRIVER_ID_ARM_PROPRIETARY = 9VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10VK_DRIVER_ID_GGP_PROPRIETARY = 11VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12VK_DRIVER_ID_MESA_LLVMPIPE = 13VK_DRIVER_ID_MOLTENVK = 14VkConditionalRenderingFlagBitsEXT* {.size: int32.sizeof.} = enumVK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1VkResolveModeFlagBits* {.size: int32.sizeof.} = enumVK_RESOLVE_MODE_NONE = 0VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 1VK_RESOLVE_MODE_AVERAGE_BIT = 2VK_RESOLVE_MODE_MIN_BIT = 4VK_RESOLVE_MODE_MAX_BIT = 8VkShadingRatePaletteEntryNV* {.size: int32.sizeof.} = enumVK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11VkCoarseSampleOrderTypeNV* {.size: int32.sizeof.} = enumVK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3VkGeometryInstanceFlagBitsKHR* {.size: int32.sizeof.} = enumVK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8VkGeometryFlagBitsKHR* {.size: int32.sizeof.} = enumVK_GEOMETRY_OPAQUE_BIT_KHR = 1VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2VkBuildAccelerationStructureFlagBitsKHR* {.size: int32.sizeof.} = enumVK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16VkCopyAccelerationStructureModeKHR* {.size: int32.sizeof.} = enumVK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3VkAccelerationStructureTypeKHR* {.size: int32.sizeof.} = enumVK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1VkGeometryTypeKHR* {.size: int32.sizeof.} = enumVK_GEOMETRY_TYPE_TRIANGLES_KHR = 0VK_GEOMETRY_TYPE_AABBS_KHR = 1VkAccelerationStructureMemoryRequirementsTypeKHR* {.size: int32.sizeof.} = enumVK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR = 0VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR = 1VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR = 2VkAccelerationStructureBuildTypeKHR* {.size: int32.sizeof.} = enumVK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2VkRayTracingShaderGroupTypeKHR* {.size: int32.sizeof.} = enumVK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2VkMemoryOverallocationBehaviorAMD* {.size: int32.sizeof.} = enumVK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2VkScopeNV* {.size: int32.sizeof.} = enumVK_SCOPE_DEVICE_NV = 1VK_SCOPE_WORKGROUP_NV = 2VK_SCOPE_SUBGROUP_NV = 3VK_SCOPE_QUEUE_FAMILY_NV = 5VkComponentTypeNV* {.size: int32.sizeof.} = enumVK_COMPONENT_TYPE_FLOAT16_NV = 0VK_COMPONENT_TYPE_FLOAT32_NV = 1VK_COMPONENT_TYPE_FLOAT64_NV = 2VK_COMPONENT_TYPE_SINT8_NV = 3VK_COMPONENT_TYPE_SINT16_NV = 4VK_COMPONENT_TYPE_SINT32_NV = 5VK_COMPONENT_TYPE_SINT64_NV = 6VK_COMPONENT_TYPE_UINT8_NV = 7VK_COMPONENT_TYPE_UINT16_NV = 8VK_COMPONENT_TYPE_UINT32_NV = 9VK_COMPONENT_TYPE_UINT64_NV = 10VkDeviceDiagnosticsConfigFlagBitsNV* {.size: int32.sizeof.} = enumVK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4VkPipelineCreationFeedbackFlagBitsEXT* {.size: int32.sizeof.} = enumVK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 1VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 2VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 4VkFullScreenExclusiveEXT* {.size: int32.sizeof.} = enumVK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3VkPerformanceCounterScopeKHR* {.size: int32.sizeof.} = enumVK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2VkPerformanceCounterUnitKHR* {.size: int32.sizeof.} = enumVK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10VkPerformanceCounterStorageKHR* {.size: int32.sizeof.} = enumVK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5VkPerformanceCounterDescriptionFlagBitsKHR* {.size: int32.sizeof.} = enumVK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2VkPerformanceConfigurationTypeINTEL* {.size: int32.sizeof.} = enumVK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0VkQueryPoolSamplingModeINTEL* {.size: int32.sizeof.} = enumVK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0VkPerformanceOverrideTypeINTEL* {.size: int32.sizeof.} = enumVK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1VkPerformanceParameterTypeINTEL* {.size: int32.sizeof.} = enumVK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1VkPerformanceValueTypeINTEL* {.size: int32.sizeof.} = enumVK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4VkShaderFloatControlsIndependence* {.size: int32.sizeof.} = enumVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2VkPipelineExecutableStatisticFormatKHR* {.size: int32.sizeof.} = enumVK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3VkLineRasterizationModeEXT* {.size: int32.sizeof.} = enumVK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3VkToolPurposeFlagBitsEXT* {.size: int32.sizeof.} = enumVK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 1VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 2VK_TOOL_PURPOSE_TRACING_BIT_EXT = 4VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 8VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 16# TypestypeDisplay* = ptr objectVisualID* = ptr objectWindow* = ptr objectRROutput* = ptr objectwl_display* = ptr objectwl_surface* = ptr objectHINSTANCE* = ptr objectHWND* = ptr objectHMONITOR* = ptr objectHANDLE* = ptr objectSECURITY_ATTRIBUTES* = ptr objectDWORD* = ptr objectLPCWSTR* = ptr objectxcb_connection_t* = ptr objectxcb_visualid_t* = ptr objectxcb_window_t* = ptr objectIDirectFB* = ptr objectIDirectFBSurface* = ptr objectzx_handle_t* = ptr objectGgpStreamDescriptor* = ptr objectGgpFrameToken* = ptr objecttemplate vkMakeVersion*(major, minor, patch: untyped): untyped =(((major) shl 22) or ((minor) shl 12) or (patch))template vkVersionMajor*(version: untyped): untyped =((uint32)(version) shr 22)template vkVersionMinor*(version: untyped): untyped =(((uint32)(version) shr 12) and 0x000003FF)template vkVersionPatch*(version: untyped): untyped =((uint32)(version) and 0x00000FFF)const vkApiVersion1_0* = vkMakeVersion(1, 0, 0)const vkApiVersion1_1* = vkMakeVersion(1, 1, 0)const vkApiVersion1_2* = vkMakeVersion(1, 2, 0)const vkApiVersion1_3* = vkMakeVersion(1, 3, 0)typeVkSampleMask* = distinct uint32VkBool32* = distinct uint32VkFlags* = distinct uint32VkDeviceSize* = distinct uint64VkDeviceAddress* = distinct uint64VkFramebufferCreateFlags* = distinct VkFlagsVkQueryPoolCreateFlags* = distinct VkFlagsVkRenderPassCreateFlags* = distinct VkFlagsVkSamplerCreateFlags* = distinct VkFlagsVkPipelineLayoutCreateFlags* = distinct VkFlagsVkPipelineCacheCreateFlags* = distinct VkFlagsVkPipelineDepthStencilStateCreateFlags* = distinct VkFlagsVkPipelineDynamicStateCreateFlags* = distinct VkFlagsVkPipelineColorBlendStateCreateFlags* = distinct VkFlagsVkPipelineMultisampleStateCreateFlags* = distinct VkFlagsVkPipelineRasterizationStateCreateFlags* = distinct VkFlagsVkPipelineViewportStateCreateFlags* = distinct VkFlagsVkPipelineTessellationStateCreateFlags* = distinct VkFlagsVkPipelineInputAssemblyStateCreateFlags* = distinct VkFlagsVkPipelineVertexInputStateCreateFlags* = distinct VkFlagsVkPipelineShaderStageCreateFlags* = distinct VkFlagsVkDescriptorSetLayoutCreateFlags* = distinct VkFlagsVkBufferViewCreateFlags* = distinct VkFlagsVkInstanceCreateFlags* = distinct VkFlagsVkDeviceCreateFlags* = distinct VkFlagsVkDeviceQueueCreateFlags* = distinct VkFlagsVkQueueFlags* = distinct VkFlagsVkMemoryPropertyFlags* = distinct VkFlagsVkMemoryHeapFlags* = distinct VkFlagsVkAccessFlags* = distinct VkFlagsVkBufferUsageFlags* = distinct VkFlagsVkBufferCreateFlags* = distinct VkFlagsVkShaderStageFlags* = distinct VkFlagsVkImageUsageFlags* = distinct VkFlagsVkImageCreateFlags* = distinct VkFlagsVkImageViewCreateFlags* = distinct VkFlagsVkPipelineCreateFlags* = distinct VkFlagsVkColorComponentFlags* = distinct VkFlagsVkFenceCreateFlags* = distinct VkFlagsVkSemaphoreCreateFlags* = distinct VkFlagsVkFormatFeatureFlags* = distinct VkFlagsVkQueryControlFlags* = distinct VkFlagsVkQueryResultFlags* = distinct VkFlagsVkShaderModuleCreateFlags* = distinct VkFlagsVkEventCreateFlags* = distinct VkFlagsVkCommandPoolCreateFlags* = distinct VkFlagsVkCommandPoolResetFlags* = distinct VkFlagsVkCommandBufferResetFlags* = distinct VkFlagsVkCommandBufferUsageFlags* = distinct VkFlagsVkQueryPipelineStatisticFlags* = distinct VkFlagsVkMemoryMapFlags* = distinct VkFlagsVkImageAspectFlags* = distinct VkFlagsVkSparseMemoryBindFlags* = distinct VkFlagsVkSparseImageFormatFlags* = distinct VkFlagsVkSubpassDescriptionFlags* = distinct VkFlagsVkPipelineStageFlags* = distinct VkFlagsVkSampleCountFlags* = distinct VkFlagsVkAttachmentDescriptionFlags* = distinct VkFlagsVkStencilFaceFlags* = distinct VkFlagsVkCullModeFlags* = distinct VkFlagsVkDescriptorPoolCreateFlags* = distinct VkFlagsVkDescriptorPoolResetFlags* = distinct VkFlagsVkDependencyFlags* = distinct VkFlagsVkSubgroupFeatureFlags* = distinct VkFlagsVkIndirectCommandsLayoutUsageFlagsNV* = distinct VkFlagsVkIndirectStateFlagsNV* = distinct VkFlagsVkGeometryFlagsKHR* = distinct VkFlagsVkGeometryFlagsNV* = VkGeometryFlagsKHRVkGeometryInstanceFlagsKHR* = distinct VkFlagsVkGeometryInstanceFlagsNV* = VkGeometryInstanceFlagsKHRVkBuildAccelerationStructureFlagsKHR* = distinct VkFlagsVkBuildAccelerationStructureFlagsNV* = VkBuildAccelerationStructureFlagsKHRVkPrivateDataSlotCreateFlagsEXT* = distinct VkFlagsVkDescriptorUpdateTemplateCreateFlags* = distinct VkFlagsVkDescriptorUpdateTemplateCreateFlagsKHR* = VkDescriptorUpdateTemplateCreateFlagsVkPipelineCreationFeedbackFlagsEXT* = distinct VkFlagsVkPerformanceCounterDescriptionFlagsKHR* = distinct VkFlagsVkAcquireProfilingLockFlagsKHR* = distinct VkFlagsVkSemaphoreWaitFlags* = distinct VkFlagsVkSemaphoreWaitFlagsKHR* = VkSemaphoreWaitFlagsVkPipelineCompilerControlFlagsAMD* = distinct VkFlagsVkShaderCorePropertiesFlagsAMD* = distinct VkFlagsVkDeviceDiagnosticsConfigFlagsNV* = distinct VkFlagsVkCompositeAlphaFlagsKHR* = distinct VkFlagsVkDisplayPlaneAlphaFlagsKHR* = distinct VkFlagsVkSurfaceTransformFlagsKHR* = distinct VkFlagsVkSwapchainCreateFlagsKHR* = distinct VkFlagsVkDisplayModeCreateFlagsKHR* = distinct VkFlagsVkDisplaySurfaceCreateFlagsKHR* = distinct VkFlagsVkAndroidSurfaceCreateFlagsKHR* = distinct VkFlagsVkViSurfaceCreateFlagsNN* = distinct VkFlagsVkWaylandSurfaceCreateFlagsKHR* = distinct VkFlagsVkWin32SurfaceCreateFlagsKHR* = distinct VkFlagsVkXlibSurfaceCreateFlagsKHR* = distinct VkFlagsVkXcbSurfaceCreateFlagsKHR* = distinct VkFlagsVkDirectFBSurfaceCreateFlagsEXT* = distinct VkFlagsVkIOSSurfaceCreateFlagsMVK* = distinct VkFlagsVkMacOSSurfaceCreateFlagsMVK* = distinct VkFlagsVkMetalSurfaceCreateFlagsEXT* = distinct VkFlagsVkImagePipeSurfaceCreateFlagsFUCHSIA* = distinct VkFlagsVkStreamDescriptorSurfaceCreateFlagsGGP* = distinct VkFlagsVkHeadlessSurfaceCreateFlagsEXT* = distinct VkFlagsVkPeerMemoryFeatureFlags* = distinct VkFlagsVkPeerMemoryFeatureFlagsKHR* = VkPeerMemoryFeatureFlagsVkMemoryAllocateFlags* = distinct VkFlagsVkMemoryAllocateFlagsKHR* = VkMemoryAllocateFlagsVkDeviceGroupPresentModeFlagsKHR* = distinct VkFlagsVkDebugReportFlagsEXT* = distinct VkFlagsVkCommandPoolTrimFlags* = distinct VkFlagsVkCommandPoolTrimFlagsKHR* = VkCommandPoolTrimFlagsVkExternalMemoryHandleTypeFlagsNV* = distinct VkFlagsVkExternalMemoryFeatureFlagsNV* = distinct VkFlagsVkExternalMemoryHandleTypeFlags* = distinct VkFlagsVkExternalMemoryHandleTypeFlagsKHR* = VkExternalMemoryHandleTypeFlagsVkExternalMemoryFeatureFlags* = distinct VkFlagsVkExternalMemoryFeatureFlagsKHR* = VkExternalMemoryFeatureFlagsVkExternalSemaphoreHandleTypeFlags* = distinct VkFlagsVkExternalSemaphoreHandleTypeFlagsKHR* = VkExternalSemaphoreHandleTypeFlagsVkExternalSemaphoreFeatureFlags* = distinct VkFlagsVkExternalSemaphoreFeatureFlagsKHR* = VkExternalSemaphoreFeatureFlagsVkSemaphoreImportFlags* = distinct VkFlagsVkSemaphoreImportFlagsKHR* = VkSemaphoreImportFlagsVkExternalFenceHandleTypeFlags* = distinct VkFlagsVkExternalFenceHandleTypeFlagsKHR* = VkExternalFenceHandleTypeFlagsVkExternalFenceFeatureFlags* = distinct VkFlagsVkExternalFenceFeatureFlagsKHR* = VkExternalFenceFeatureFlagsVkFenceImportFlags* = distinct VkFlagsVkFenceImportFlagsKHR* = VkFenceImportFlagsVkSurfaceCounterFlagsEXT* = distinct VkFlagsVkPipelineViewportSwizzleStateCreateFlagsNV* = distinct VkFlagsVkPipelineDiscardRectangleStateCreateFlagsEXT* = distinct VkFlagsVkPipelineCoverageToColorStateCreateFlagsNV* = distinct VkFlagsVkPipelineCoverageModulationStateCreateFlagsNV* = distinct VkFlagsVkPipelineCoverageReductionStateCreateFlagsNV* = distinct VkFlagsVkValidationCacheCreateFlagsEXT* = distinct VkFlagsVkDebugUtilsMessageSeverityFlagsEXT* = distinct VkFlagsVkDebugUtilsMessageTypeFlagsEXT* = distinct VkFlagsVkDebugUtilsMessengerCreateFlagsEXT* = distinct VkFlagsVkDebugUtilsMessengerCallbackDataFlagsEXT* = distinct VkFlagsVkPipelineRasterizationConservativeStateCreateFlagsEXT* = distinct VkFlagsVkDescriptorBindingFlags* = distinct VkFlagsVkDescriptorBindingFlagsEXT* = VkDescriptorBindingFlagsVkConditionalRenderingFlagsEXT* = distinct VkFlagsVkResolveModeFlags* = distinct VkFlagsVkResolveModeFlagsKHR* = VkResolveModeFlagsVkPipelineRasterizationStateStreamCreateFlagsEXT* = distinct VkFlagsVkPipelineRasterizationDepthClipStateCreateFlagsEXT* = distinct VkFlagsVkSwapchainImageUsageFlagsANDROID* = distinct VkFlagsVkToolPurposeFlagsEXT* = distinct VkFlagsVkInstance* = distinct VkHandleVkPhysicalDevice* = distinct VkHandleVkDevice* = distinct VkHandleVkQueue* = distinct VkHandleVkCommandBuffer* = distinct VkHandleVkDeviceMemory* = distinct VkNonDispatchableHandleVkCommandPool* = distinct VkNonDispatchableHandleVkBuffer* = distinct VkNonDispatchableHandleVkBufferView* = distinct VkNonDispatchableHandleVkImage* = distinct VkNonDispatchableHandleVkImageView* = distinct VkNonDispatchableHandleVkShaderModule* = distinct VkNonDispatchableHandleVkPipeline* = distinct VkNonDispatchableHandleVkPipelineLayout* = distinct VkNonDispatchableHandleVkSampler* = distinct VkNonDispatchableHandleVkDescriptorSet* = distinct VkNonDispatchableHandleVkDescriptorSetLayout* = distinct VkNonDispatchableHandleVkDescriptorPool* = distinct VkNonDispatchableHandleVkFence* = distinct VkNonDispatchableHandleVkSemaphore* = distinct VkNonDispatchableHandleVkEvent* = distinct VkNonDispatchableHandleVkQueryPool* = distinct VkNonDispatchableHandleVkFramebuffer* = distinct VkNonDispatchableHandleVkRenderPass* = distinct VkNonDispatchableHandleVkPipelineCache* = distinct VkNonDispatchableHandleVkIndirectCommandsLayoutNV* = distinct VkNonDispatchableHandleVkDescriptorUpdateTemplate* = distinct VkNonDispatchableHandleVkDescriptorUpdateTemplateKHR* = VkDescriptorUpdateTemplateVkSamplerYcbcrConversion* = distinct VkNonDispatchableHandleVkSamplerYcbcrConversionKHR* = VkSamplerYcbcrConversionVkValidationCacheEXT* = distinct VkNonDispatchableHandleVkAccelerationStructureKHR* = distinct VkNonDispatchableHandleVkAccelerationStructureNV* = VkAccelerationStructureKHRVkPerformanceConfigurationINTEL* = distinct VkNonDispatchableHandleVkDeferredOperationKHR* = distinct VkNonDispatchableHandleVkPrivateDataSlotEXT* = distinct VkNonDispatchableHandleVkDisplayKHR* = distinct VkNonDispatchableHandleVkDisplayModeKHR* = distinct VkNonDispatchableHandleVkSurfaceKHR* = distinct VkNonDispatchableHandleVkSwapchainKHR* = distinct VkNonDispatchableHandleVkDebugReportCallbackEXT* = distinct VkNonDispatchableHandleVkDebugUtilsMessengerEXT* = distinct VkNonDispatchableHandleVkDescriptorUpdateTemplateTypeKHR* = VkDescriptorUpdateTemplateTypeVkPointClippingBehaviorKHR* = VkPointClippingBehaviorVkResolveModeFlagBitsKHR* = VkResolveModeFlagBitsVkDescriptorBindingFlagBitsEXT* = VkDescriptorBindingFlagBitsVkSemaphoreTypeKHR* = VkSemaphoreTypeVkGeometryFlagBitsNV* = VkGeometryFlagBitsKHRVkGeometryInstanceFlagBitsNV* = VkGeometryInstanceFlagBitsKHRVkBuildAccelerationStructureFlagBitsNV* = VkBuildAccelerationStructureFlagBitsKHRVkCopyAccelerationStructureModeNV* = VkCopyAccelerationStructureModeKHRVkAccelerationStructureTypeNV* = VkAccelerationStructureTypeKHRVkGeometryTypeNV* = VkGeometryTypeKHRVkRayTracingShaderGroupTypeNV* = VkRayTracingShaderGroupTypeKHRVkAccelerationStructureMemoryRequirementsTypeNV* = VkAccelerationStructureMemoryRequirementsTypeKHRVkSemaphoreWaitFlagBitsKHR* = VkSemaphoreWaitFlagBitsVkExternalMemoryHandleTypeFlagBitsKHR* = VkExternalMemoryHandleTypeFlagBitsVkExternalMemoryFeatureFlagBitsKHR* = VkExternalMemoryFeatureFlagBitsVkExternalSemaphoreHandleTypeFlagBitsKHR* = VkExternalSemaphoreHandleTypeFlagBitsVkExternalSemaphoreFeatureFlagBitsKHR* = VkExternalSemaphoreFeatureFlagBitsVkSemaphoreImportFlagBitsKHR* = VkSemaphoreImportFlagBitsVkExternalFenceHandleTypeFlagBitsKHR* = VkExternalFenceHandleTypeFlagBitsVkExternalFenceFeatureFlagBitsKHR* = VkExternalFenceFeatureFlagBitsVkFenceImportFlagBitsKHR* = VkFenceImportFlagBitsVkPeerMemoryFeatureFlagBitsKHR* = VkPeerMemoryFeatureFlagBitsVkMemoryAllocateFlagBitsKHR* = VkMemoryAllocateFlagBitsVkTessellationDomainOriginKHR* = VkTessellationDomainOriginVkSamplerYcbcrModelConversionKHR* = VkSamplerYcbcrModelConversionVkSamplerYcbcrRangeKHR* = VkSamplerYcbcrRangeVkChromaLocationKHR* = VkChromaLocationVkSamplerReductionModeEXT* = VkSamplerReductionModeVkShaderFloatControlsIndependenceKHR* = VkShaderFloatControlsIndependenceVkDriverIdKHR* = VkDriverIdPFN_vkInternalAllocationNotification* = proc(pUserData: pointer; size: csize_t; allocationType: VkInternalAllocationType; allocationScope: VkSystemAllocationScope) {.cdecl.}PFN_vkInternalFreeNotification* = proc(pUserData: pointer; size: csize_t; allocationType: VkInternalAllocationType; allocationScope: VkSystemAllocationScope) {.cdecl.}PFN_vkReallocationFunction* = proc(pUserData: pointer; pOriginal: pointer; size: csize_t; alignment: csize_t; allocationScope: VkSystemAllocationScope): pointer {.cdecl.}PFN_vkAllocationFunction* = proc(pUserData: pointer; size: csize_t; alignment: csize_t; allocationScope: VkSystemAllocationScope): pointer {.cdecl.}PFN_vkFreeFunction* = proc(pUserData: pointer; pMemory: pointer) {.cdecl.}PFN_vkVoidFunction* = proc() {.cdecl.}PFN_vkDebugReportCallbackEXT* = proc(flags: VkDebugReportFlagsEXT; objectType: VkDebugReportObjectTypeEXT; cbObject: uint64; location: csize_t; messageCode: int32; pLayerPrefix: cstring; pMessage: cstring; pUserData: pointer): VkBool32 {.cdecl.}PFN_vkDebugUtilsMessengerCallbackEXT* = proc(messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: VkDebugUtilsMessengerCallbackDataEXT, userData: pointer): VkBool32 {.cdecl.}VkOffset2D* = objectx*: int32y*: int32VkOffset3D* = objectx*: int32y*: int32z*: int32VkExtent2D* = objectwidth*: uint32height*: uint32VkExtent3D* = objectwidth*: uint32height*: uint32depth*: uint32VkViewport* = objectx*: float32y*: float32width*: float32height*: float32minDepth*: float32maxDepth*: float32VkRect2D* = objectoffset*: VkOffset2Dextent*: VkExtent2DVkClearRect* = objectrect*: VkRect2DbaseArrayLayer*: uint32layerCount*: uint32VkComponentMapping* = objectr*: VkComponentSwizzleg*: VkComponentSwizzleb*: VkComponentSwizzlea*: VkComponentSwizzleVkPhysicalDeviceProperties* = objectapiVersion*: uint32driverVersion*: uint32vendorID*: uint32deviceID*: uint32deviceType*: VkPhysicalDeviceTypedeviceName*: array[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE, char]pipelineCacheUUID*: array[VK_UUID_SIZE, uint8]limits*: VkPhysicalDeviceLimitssparseProperties*: VkPhysicalDeviceSparsePropertiesVkExtensionProperties* = objectextensionName*: array[VK_MAX_EXTENSION_NAME_SIZE, char]specVersion*: uint32VkLayerProperties* = objectlayerName*: array[VK_MAX_EXTENSION_NAME_SIZE, char]specVersion*: uint32implementationVersion*: uint32description*: array[VK_MAX_DESCRIPTION_SIZE, char]VkApplicationInfo* = objectsType*: VkStructureTypepNext*: pointerpApplicationName*: cstringapplicationVersion*: uint32pEngineName*: cstringengineVersion*: uint32apiVersion*: uint32VkAllocationCallbacks* = objectpUserData*: pointerpfnAllocation*: PFN_vkAllocationFunctionpfnReallocation*: PFN_vkReallocationFunctionpfnFree*: PFN_vkFreeFunctionpfnInternalAllocation*: PFN_vkInternalAllocationNotificationpfnInternalFree*: PFN_vkInternalFreeNotificationVkDeviceQueueCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDeviceQueueCreateFlagsqueueFamilyIndex*: uint32queueCount*: uint32pQueuePriorities*: ptr float32VkDeviceCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDeviceCreateFlagsqueueCreateInfoCount*: uint32pQueueCreateInfos*: ptr VkDeviceQueueCreateInfoenabledLayerCount*: uint32ppEnabledLayerNames*: cstringArrayenabledExtensionCount*: uint32ppEnabledExtensionNames*: cstringArraypEnabledFeatures*: ptr VkPhysicalDeviceFeaturesVkInstanceCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkInstanceCreateFlagspApplicationInfo*: ptr VkApplicationInfoenabledLayerCount*: uint32ppEnabledLayerNames*: cstringArrayenabledExtensionCount*: uint32ppEnabledExtensionNames*: cstringArrayVkQueueFamilyProperties* = objectqueueFlags*: VkQueueFlagsqueueCount*: uint32timestampValidBits*: uint32minImageTransferGranularity*: VkExtent3DVkPhysicalDeviceMemoryProperties* = objectmemoryTypeCount*: uint32memoryTypes*: array[VK_MAX_MEMORY_TYPES, VkMemoryType]memoryHeapCount*: uint32memoryHeaps*: array[VK_MAX_MEMORY_HEAPS, VkMemoryHeap]VkMemoryAllocateInfo* = objectsType*: VkStructureTypepNext*: pointerallocationSize*: VkDeviceSizememoryTypeIndex*: uint32VkMemoryRequirements* = objectsize*: VkDeviceSizealignment*: VkDeviceSizememoryTypeBits*: uint32VkSparseImageFormatProperties* = objectaspectMask*: VkImageAspectFlagsimageGranularity*: VkExtent3Dflags*: VkSparseImageFormatFlagsVkSparseImageMemoryRequirements* = objectformatProperties*: VkSparseImageFormatPropertiesimageMipTailFirstLod*: uint32imageMipTailSize*: VkDeviceSizeimageMipTailOffset*: VkDeviceSizeimageMipTailStride*: VkDeviceSizeVkMemoryType* = objectpropertyFlags*: VkMemoryPropertyFlagsheapIndex*: uint32VkMemoryHeap* = objectsize*: VkDeviceSizeflags*: VkMemoryHeapFlagsVkMappedMemoryRange* = objectsType*: VkStructureTypepNext*: pointermemory*: VkDeviceMemoryoffset*: VkDeviceSizesize*: VkDeviceSizeVkFormatProperties* = objectlinearTilingFeatures*: VkFormatFeatureFlagsoptimalTilingFeatures*: VkFormatFeatureFlagsbufferFeatures*: VkFormatFeatureFlagsVkImageFormatProperties* = objectmaxExtent*: VkExtent3DmaxMipLevels*: uint32maxArrayLayers*: uint32sampleCounts*: VkSampleCountFlagsmaxResourceSize*: VkDeviceSizeVkDescriptorBufferInfo* = objectbuffer*: VkBufferoffset*: VkDeviceSizerange*: VkDeviceSizeVkDescriptorImageInfo* = objectsampler*: VkSamplerimageView*: VkImageViewimageLayout*: VkImageLayoutVkWriteDescriptorSet* = objectsType*: VkStructureTypepNext*: pointerdstSet*: VkDescriptorSetdstBinding*: uint32dstArrayElement*: uint32descriptorCount*: uint32descriptorType*: VkDescriptorTypepImageInfo*: ptr VkDescriptorImageInfopBufferInfo*: ptr ptr VkDescriptorBufferInfopTexelBufferView*: ptr VkBufferViewVkCopyDescriptorSet* = objectsType*: VkStructureTypepNext*: pointersrcSet*: VkDescriptorSetsrcBinding*: uint32srcArrayElement*: uint32dstSet*: VkDescriptorSetdstBinding*: uint32dstArrayElement*: uint32descriptorCount*: uint32VkBufferCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkBufferCreateFlagssize*: VkDeviceSizeusage*: VkBufferUsageFlagssharingMode*: VkSharingModequeueFamilyIndexCount*: uint32pQueueFamilyIndices*: ptr uint32VkBufferViewCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkBufferViewCreateFlagsbuffer*: VkBufferformat*: VkFormatoffset*: VkDeviceSizerange*: VkDeviceSizeVkImageSubresource* = objectaspectMask*: VkImageAspectFlagsmipLevel*: uint32arrayLayer*: uint32VkImageSubresourceLayers* = objectaspectMask*: VkImageAspectFlagsmipLevel*: uint32baseArrayLayer*: uint32layerCount*: uint32VkImageSubresourceRange* = objectaspectMask*: VkImageAspectFlagsbaseMipLevel*: uint32levelCount*: uint32baseArrayLayer*: uint32layerCount*: uint32VkMemoryBarrier* = objectsType*: VkStructureTypepNext*: pointersrcAccessMask*: VkAccessFlagsdstAccessMask*: VkAccessFlagsVkBufferMemoryBarrier* = objectsType*: VkStructureTypepNext*: pointersrcAccessMask*: VkAccessFlagsdstAccessMask*: VkAccessFlagssrcQueueFamilyIndex*: uint32dstQueueFamilyIndex*: uint32buffer*: VkBufferoffset*: VkDeviceSizesize*: VkDeviceSizeVkImageMemoryBarrier* = objectsType*: VkStructureTypepNext*: pointersrcAccessMask*: VkAccessFlagsdstAccessMask*: VkAccessFlagsoldLayout*: VkImageLayoutnewLayout*: VkImageLayoutsrcQueueFamilyIndex*: uint32dstQueueFamilyIndex*: uint32image*: VkImagesubresourceRange*: VkImageSubresourceRangeVkImageCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkImageCreateFlagsimageType*: VkImageTypeformat*: VkFormatextent*: VkExtent3DmipLevels*: uint32arrayLayers*: uint32samples*: VkSampleCountFlagBitstiling*: VkImageTilingusage*: VkImageUsageFlagssharingMode*: VkSharingModequeueFamilyIndexCount*: uint32pQueueFamilyIndices*: ptr uint32initialLayout*: VkImageLayoutVkSubresourceLayout* = objectoffset*: VkDeviceSizesize*: VkDeviceSizerowPitch*: VkDeviceSizearrayPitch*: VkDeviceSizedepthPitch*: VkDeviceSizeVkImageViewCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkImageViewCreateFlagsimage*: VkImageviewType*: VkImageViewTypeformat*: VkFormatcomponents*: VkComponentMappingsubresourceRange*: VkImageSubresourceRangeVkBufferCopy* = objectsrcOffset*: VkDeviceSizedstOffset*: VkDeviceSizesize*: VkDeviceSizeVkSparseMemoryBind* = objectresourceOffset*: VkDeviceSizesize*: VkDeviceSizememory*: VkDeviceMemorymemoryOffset*: VkDeviceSizeflags*: VkSparseMemoryBindFlagsVkSparseImageMemoryBind* = objectsubresource*: VkImageSubresourceoffset*: VkOffset3Dextent*: VkExtent3Dmemory*: VkDeviceMemorymemoryOffset*: VkDeviceSizeflags*: VkSparseMemoryBindFlagsVkSparseBufferMemoryBindInfo* = objectbuffer*: VkBufferbindCount*: uint32pBinds*: ptr VkSparseMemoryBindVkSparseImageOpaqueMemoryBindInfo* = objectimage*: VkImagebindCount*: uint32pBinds*: ptr VkSparseMemoryBindVkSparseImageMemoryBindInfo* = objectimage*: VkImagebindCount*: uint32pBinds*: ptr VkSparseImageMemoryBindVkBindSparseInfo* = objectsType*: VkStructureTypepNext*: pointerwaitSemaphoreCount*: uint32pWaitSemaphores*: ptr VkSemaphorebufferBindCount*: uint32pBufferBinds*: ptr VkSparseBufferMemoryBindInfoimageOpaqueBindCount*: uint32pImageOpaqueBinds*: ptr VkSparseImageOpaqueMemoryBindInfoimageBindCount*: uint32pImageBinds*: ptr VkSparseImageMemoryBindInfosignalSemaphoreCount*: uint32pSignalSemaphores*: ptr VkSemaphoreVkImageCopy* = objectsrcSubresource*: VkImageSubresourceLayerssrcOffset*: VkOffset3DdstSubresource*: VkImageSubresourceLayersdstOffset*: VkOffset3Dextent*: VkExtent3DVkImageBlit* = objectsrcSubresource*: VkImageSubresourceLayerssrcOffsets*: array[2, VkOffset3D]dstSubresource*: VkImageSubresourceLayersdstOffsets*: array[2, VkOffset3D]VkBufferImageCopy* = objectbufferOffset*: VkDeviceSizebufferRowLength*: uint32bufferImageHeight*: uint32imageSubresource*: VkImageSubresourceLayersimageOffset*: VkOffset3DimageExtent*: VkExtent3DVkImageResolve* = objectsrcSubresource*: VkImageSubresourceLayerssrcOffset*: VkOffset3DdstSubresource*: VkImageSubresourceLayersdstOffset*: VkOffset3Dextent*: VkExtent3DVkShaderModuleCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkShaderModuleCreateFlagscodeSize*: uintpCode*: ptr uint32VkDescriptorSetLayoutBinding* = objectbinding*: uint32descriptorType*: VkDescriptorTypedescriptorCount*: uint32stageFlags*: VkShaderStageFlagspImmutableSamplers*: ptr VkSamplerVkDescriptorSetLayoutCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDescriptorSetLayoutCreateFlagsbindingCount*: uint32pBindings*: ptr VkDescriptorSetLayoutBindingVkDescriptorPoolSize* = objecttypee*: VkDescriptorTypedescriptorCount*: uint32VkDescriptorPoolCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDescriptorPoolCreateFlagsmaxSets*: uint32poolSizeCount*: uint32pPoolSizes*: ptr VkDescriptorPoolSizeVkDescriptorSetAllocateInfo* = objectsType*: VkStructureTypepNext*: pointerdescriptorPool*: VkDescriptorPooldescriptorSetCount*: uint32pSetLayouts*: ptr VkDescriptorSetLayoutVkSpecializationMapEntry* = objectconstantID*: uint32offset*: uint32size*: uintVkSpecializationInfo* = objectmapEntryCount*: uint32pMapEntries*: ptr VkSpecializationMapEntrydataSize*: uintpData*: pointerVkPipelineShaderStageCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineShaderStageCreateFlagsstage*: VkShaderStageFlagBitsmodule*: VkShaderModulepName*: cstringpSpecializationInfo*: ptr VkSpecializationInfoVkComputePipelineCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCreateFlagsstage*: VkPipelineShaderStageCreateInfolayout*: VkPipelineLayoutbasePipelineHandle*: VkPipelinebasePipelineIndex*: int32VkVertexInputBindingDescription* = objectbinding*: uint32stride*: uint32inputRate*: VkVertexInputRateVkVertexInputAttributeDescription* = objectlocation*: uint32binding*: uint32format*: VkFormatoffset*: uint32VkPipelineVertexInputStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineVertexInputStateCreateFlagsvertexBindingDescriptionCount*: uint32pVertexBindingDescriptions*: ptr VkVertexInputBindingDescriptionvertexAttributeDescriptionCount*: uint32pVertexAttributeDescriptions*: ptr VkVertexInputAttributeDescriptionVkPipelineInputAssemblyStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineInputAssemblyStateCreateFlagstopology*: VkPrimitiveTopologyprimitiveRestartEnable*: VkBool32VkPipelineTessellationStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineTessellationStateCreateFlagspatchControlPoints*: uint32VkPipelineViewportStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineViewportStateCreateFlagsviewportCount*: uint32pViewports*: ptr VkViewportscissorCount*: uint32pScissors*: ptr VkRect2DVkPipelineRasterizationStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineRasterizationStateCreateFlagsdepthClampEnable*: VkBool32rasterizerDiscardEnable*: VkBool32polygonMode*: VkPolygonModecullMode*: VkCullModeFlagsfrontFace*: VkFrontFacedepthBiasEnable*: VkBool32depthBiasConstantFactor*: float32depthBiasClamp*: float32depthBiasSlopeFactor*: float32lineWidth*: float32VkPipelineMultisampleStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineMultisampleStateCreateFlagsrasterizationSamples*: VkSampleCountFlagBitssampleShadingEnable*: VkBool32minSampleShading*: float32pSampleMask*: ptr VkSampleMaskalphaToCoverageEnable*: VkBool32alphaToOneEnable*: VkBool32VkPipelineColorBlendAttachmentState* = objectblendEnable*: VkBool32srcColorBlendFactor*: VkBlendFactordstColorBlendFactor*: VkBlendFactorcolorBlendOp*: VkBlendOpsrcAlphaBlendFactor*: VkBlendFactordstAlphaBlendFactor*: VkBlendFactoralphaBlendOp*: VkBlendOpcolorWriteMask*: VkColorComponentFlagsVkPipelineColorBlendStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineColorBlendStateCreateFlagslogicOpEnable*: VkBool32logicOp*: VkLogicOpattachmentCount*: uint32pAttachments*: ptr VkPipelineColorBlendAttachmentStateblendConstants*: array[4, float32]VkPipelineDynamicStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineDynamicStateCreateFlagsdynamicStateCount*: uint32pDynamicStates*: ptr VkDynamicStateVkStencilOpState* = objectfailOp*: VkStencilOppassOp*: VkStencilOpdepthFailOp*: VkStencilOpcompareOp*: VkCompareOpcompareMask*: uint32writeMask*: uint32reference*: uint32VkPipelineDepthStencilStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineDepthStencilStateCreateFlagsdepthTestEnable*: VkBool32depthWriteEnable*: VkBool32depthCompareOp*: VkCompareOpdepthBoundsTestEnable*: VkBool32stencilTestEnable*: VkBool32front*: VkStencilOpStateback*: VkStencilOpStateminDepthBounds*: float32maxDepthBounds*: float32VkGraphicsPipelineCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCreateFlagsstageCount*: uint32pStages*: ptr VkPipelineShaderStageCreateInfopVertexInputState*: ptr VkPipelineVertexInputStateCreateInfopInputAssemblyState*: ptr VkPipelineInputAssemblyStateCreateInfopTessellationState*: ptr VkPipelineTessellationStateCreateInfopViewportState*: ptr VkPipelineViewportStateCreateInfopRasterizationState*: ptr VkPipelineRasterizationStateCreateInfopMultisampleState*: ptr VkPipelineMultisampleStateCreateInfopDepthStencilState*: ptr VkPipelineDepthStencilStateCreateInfopColorBlendState*: ptr VkPipelineColorBlendStateCreateInfopDynamicState*: ptr VkPipelineDynamicStateCreateInfolayout*: VkPipelineLayoutrender_pass*: VkRenderPasssubpass*: uint32basePipelineHandle*: VkPipelinebasePipelineIndex*: int32VkPipelineCacheCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCacheCreateFlagsinitialDataSize*: uintpInitialData*: pointerVkPushConstantRange* = objectstageFlags*: VkShaderStageFlagsoffset*: uint32size*: uint32VkPipelineLayoutCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineLayoutCreateFlagssetLayoutCount*: uint32pSetLayouts*: ptr VkDescriptorSetLayoutpushConstantRangeCount*: uint32pPushConstantRanges*: ptr VkPushConstantRangeVkSamplerCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkSamplerCreateFlagsmagFilter*: VkFilterminFilter*: VkFiltermipmapMode*: VkSamplerMipmapModeaddressModeU*: VkSamplerAddressModeaddressModeV*: VkSamplerAddressModeaddressModeW*: VkSamplerAddressModemipLodBias*: float32anisotropyEnable*: VkBool32maxAnisotropy*: float32compareEnable*: VkBool32compareOp*: VkCompareOpminLod*: float32maxLod*: float32borderColor*: VkBorderColorunnormalizedCoordinates*: VkBool32VkCommandPoolCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkCommandPoolCreateFlagsqueueFamilyIndex*: uint32VkCommandBufferAllocateInfo* = objectsType*: VkStructureTypepNext*: pointercommandPool*: VkCommandPoollevel*: VkCommandBufferLevelcommandBufferCount*: uint32VkCommandBufferInheritanceInfo* = objectsType*: VkStructureTypepNext*: pointerrender_pass*: VkRenderPasssubpass*: uint32framebuffer*: VkFramebufferocclusionQueryEnable*: VkBool32queryFlags*: VkQueryControlFlagspipelineStatistics*: VkQueryPipelineStatisticFlagsVkCommandBufferBeginInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkCommandBufferUsageFlagspInheritanceInfo*: ptr VkCommandBufferInheritanceInfoVkRenderPassBeginInfo* = objectsType*: VkStructureTypepNext*: pointerrender_pass*: VkRenderPassframebuffer*: VkFramebufferrenderArea*: VkRect2DclearValueCount*: uint32pClearValues*: ptr VkClearValueVkClearColorValue* {.union.} = objectfloat32*: array[4, float32]int32*: array[4, int32]uint32*: array[4, uint32]VkClearDepthStencilValue* = objectdepth*: float32stencil*: uint32VkClearValue* {.union.} = objectcolor*: VkClearColorValuedepth_stencil*: VkClearDepthStencilValueVkClearAttachment* = objectaspectMask*: VkImageAspectFlagscolorAttachment*: uint32clearValue*: VkClearValueVkAttachmentDescription* = objectflags*: VkAttachmentDescriptionFlagsformat*: VkFormatsamples*: VkSampleCountFlagBitsloadOp*: VkAttachmentLoadOpstoreOp*: VkAttachmentStoreOpstencilLoadOp*: VkAttachmentLoadOpstencilStoreOp*: VkAttachmentStoreOpinitialLayout*: VkImageLayoutfinalLayout*: VkImageLayoutVkAttachmentReference* = objectattachment*: uint32layout*: VkImageLayoutVkSubpassDescription* = objectflags*: VkSubpassDescriptionFlagspipelineBindPoint*: VkPipelineBindPointinputAttachmentCount*: uint32pInputAttachments*: ptr VkAttachmentReferencecolorAttachmentCount*: uint32pColorAttachments*: ptr VkAttachmentReferencepResolveAttachments*: ptr VkAttachmentReferencepDepthStencilAttachment*: ptr VkAttachmentReferencepreserveAttachmentCount*: uint32pPreserveAttachments*: ptr uint32VkSubpassDependency* = objectsrcSubpass*: uint32dstSubpass*: uint32srcStageMask*: VkPipelineStageFlagsdstStageMask*: VkPipelineStageFlagssrcAccessMask*: VkAccessFlagsdstAccessMask*: VkAccessFlagsdependencyFlags*: VkDependencyFlagsVkRenderPassCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkRenderPassCreateFlagsattachmentCount*: uint32pAttachments*: ptr VkAttachmentDescriptionsubpassCount*: uint32pSubpasses*: ptr VkSubpassDescriptiondependencyCount*: uint32pDependencies*: ptr VkSubpassDependencyVkEventCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkEventCreateFlagsVkFenceCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkFenceCreateFlagsVkPhysicalDeviceFeatures* = objectrobustBufferAccess*: VkBool32fullDrawIndexUint32*: VkBool32imageCubeArray*: VkBool32independentBlend*: VkBool32geometryShader*: VkBool32tessellationShader*: VkBool32sampleRateShading*: VkBool32dualSrcBlend*: VkBool32logicOp*: VkBool32multiDrawIndirect*: VkBool32drawIndirectFirstInstance*: VkBool32depthClamp*: VkBool32depthBiasClamp*: VkBool32fillModeNonSolid*: VkBool32depthBounds*: VkBool32wideLines*: VkBool32largePoints*: VkBool32alphaToOne*: VkBool32multiViewport*: VkBool32samplerAnisotropy*: VkBool32textureCompressionETC2*: VkBool32textureCompressionASTC_LDR*: VkBool32textureCompressionBC*: VkBool32occlusionQueryPrecise*: VkBool32pipelineStatisticsQuery*: VkBool32vertexPipelineStoresAndAtomics*: VkBool32fragmentStoresAndAtomics*: VkBool32shaderTessellationAndGeometryPointSize*: VkBool32shaderImageGatherExtended*: VkBool32shaderStorageImageExtendedFormats*: VkBool32shaderStorageImageMultisample*: VkBool32shaderStorageImageReadWithoutFormat*: VkBool32shaderStorageImageWriteWithoutFormat*: VkBool32shaderUniformBufferArrayDynamicIndexing*: VkBool32shaderSampledImageArrayDynamicIndexing*: VkBool32shaderStorageBufferArrayDynamicIndexing*: VkBool32shaderStorageImageArrayDynamicIndexing*: VkBool32shaderClipDistance*: VkBool32shaderCullDistance*: VkBool32shaderFloat64*: VkBool32shaderInt64*: VkBool32shaderInt16*: VkBool32shaderResourceResidency*: VkBool32shaderResourceMinLod*: VkBool32sparseBinding*: VkBool32sparseResidencyBuffer*: VkBool32sparseResidencyImage2D*: VkBool32sparseResidencyImage3D*: VkBool32sparseResidency2Samples*: VkBool32sparseResidency4Samples*: VkBool32sparseResidency8Samples*: VkBool32sparseResidency16Samples*: VkBool32sparseResidencyAliased*: VkBool32variableMultisampleRate*: VkBool32inheritedQueries*: VkBool32VkPhysicalDeviceSparseProperties* = objectresidencyStandard2DBlockShape*: VkBool32residencyStandard2DMultisampleBlockShape*: VkBool32residencyStandard3DBlockShape*: VkBool32residencyAlignedMipSize*: VkBool32residencyNonResidentStrict*: VkBool32VkPhysicalDeviceLimits* = objectmaxImageDimension1D*: uint32maxImageDimension2D*: uint32maxImageDimension3D*: uint32maxImageDimensionCube*: uint32maxImageArrayLayers*: uint32maxTexelBufferElements*: uint32maxUniformBufferRange*: uint32maxStorageBufferRange*: uint32maxPushConstantsSize*: uint32maxMemoryAllocationCount*: uint32maxSamplerAllocationCount*: uint32bufferImageGranularity*: VkDeviceSizesparseAddressSpaceSize*: VkDeviceSizemaxBoundDescriptorSets*: uint32maxPerStageDescriptorSamplers*: uint32maxPerStageDescriptorUniformBuffers*: uint32maxPerStageDescriptorStorageBuffers*: uint32maxPerStageDescriptorSampledImages*: uint32maxPerStageDescriptorStorageImages*: uint32maxPerStageDescriptorInputAttachments*: uint32maxPerStageResources*: uint32maxDescriptorSetSamplers*: uint32maxDescriptorSetUniformBuffers*: uint32maxDescriptorSetUniformBuffersDynamic*: uint32maxDescriptorSetStorageBuffers*: uint32maxDescriptorSetStorageBuffersDynamic*: uint32maxDescriptorSetSampledImages*: uint32maxDescriptorSetStorageImages*: uint32maxDescriptorSetInputAttachments*: uint32maxVertexInputAttributes*: uint32maxVertexInputBindings*: uint32maxVertexInputAttributeOffset*: uint32maxVertexInputBindingStride*: uint32maxVertexOutputComponents*: uint32maxTessellationGenerationLevel*: uint32maxTessellationPatchSize*: uint32maxTessellationControlPerVertexInputComponents*: uint32maxTessellationControlPerVertexOutputComponents*: uint32maxTessellationControlPerPatchOutputComponents*: uint32maxTessellationControlTotalOutputComponents*: uint32maxTessellationEvaluationInputComponents*: uint32maxTessellationEvaluationOutputComponents*: uint32maxGeometryShaderInvocations*: uint32maxGeometryInputComponents*: uint32maxGeometryOutputComponents*: uint32maxGeometryOutputVertices*: uint32maxGeometryTotalOutputComponents*: uint32maxFragmentInputComponents*: uint32maxFragmentOutputAttachments*: uint32maxFragmentDualSrcAttachments*: uint32maxFragmentCombinedOutputResources*: uint32maxComputeSharedMemorySize*: uint32maxComputeWorkGroupCount*: array[3, uint32]maxComputeWorkGroupInvocations*: uint32maxComputeWorkGroupSize*: array[3, uint32]subPixelPrecisionBits*: uint32subTexelPrecisionBits*: uint32mipmapPrecisionBits*: uint32maxDrawIndexedIndexValue*: uint32maxDrawIndirectCount*: uint32maxSamplerLodBias*: float32maxSamplerAnisotropy*: float32maxViewports*: uint32maxViewportDimensions*: array[2, uint32]viewportBoundsRange*: array[2, float32]viewportSubPixelBits*: uint32minMemoryMapAlignment*: uintminTexelBufferOffsetAlignment*: VkDeviceSizeminUniformBufferOffsetAlignment*: VkDeviceSizeminStorageBufferOffsetAlignment*: VkDeviceSizeminTexelOffset*: int32maxTexelOffset*: uint32minTexelGatherOffset*: int32maxTexelGatherOffset*: uint32minInterpolationOffset*: float32maxInterpolationOffset*: float32subPixelInterpolationOffsetBits*: uint32maxFramebufferWidth*: uint32maxFramebufferHeight*: uint32maxFramebufferLayers*: uint32framebufferColorSampleCounts*: VkSampleCountFlagsframebufferDepthSampleCounts*: VkSampleCountFlagsframebufferStencilSampleCounts*: VkSampleCountFlagsframebufferNoAttachmentsSampleCounts*: VkSampleCountFlagsmaxColorAttachments*: uint32sampledImageColorSampleCounts*: VkSampleCountFlagssampledImageIntegerSampleCounts*: VkSampleCountFlagssampledImageDepthSampleCounts*: VkSampleCountFlagssampledImageStencilSampleCounts*: VkSampleCountFlagsstorageImageSampleCounts*: VkSampleCountFlagsmaxSampleMaskWords*: uint32timestampComputeAndGraphics*: VkBool32timestampPeriod*: float32maxClipDistances*: uint32maxCullDistances*: uint32maxCombinedClipAndCullDistances*: uint32discreteQueuePriorities*: uint32pointSizeRange*: array[2, float32]lineWidthRange*: array[2, float32]pointSizeGranularity*: float32lineWidthGranularity*: float32strictLines*: VkBool32standardSampleLocations*: VkBool32optimalBufferCopyOffsetAlignment*: VkDeviceSizeoptimalBufferCopyRowPitchAlignment*: VkDeviceSizenonCoherentAtomSize*: VkDeviceSizeVkSemaphoreCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkSemaphoreCreateFlagsVkQueryPoolCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkQueryPoolCreateFlagsqueryType*: VkQueryTypequeryCount*: uint32pipelineStatistics*: VkQueryPipelineStatisticFlagsVkFramebufferCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkFramebufferCreateFlagsrender_pass*: VkRenderPassattachmentCount*: uint32pAttachments*: ptr VkImageViewwidth*: uint32height*: uint32layers*: uint32VkDrawIndirectCommand* = objectvertexCount*: uint32instanceCount*: uint32firstVertex*: uint32firstInstance*: uint32VkDrawIndexedIndirectCommand* = objectindexCount*: uint32instanceCount*: uint32firstIndex*: uint32vertexOffset*: int32firstInstance*: uint32VkDispatchIndirectCommand* = objectx*: uint32y*: uint32z*: uint32VkSubmitInfo* = objectsType*: VkStructureTypepNext*: pointerwaitSemaphoreCount*: uint32pWaitSemaphores*: ptr VkSemaphorepWaitDstStageMask*: ptr VkPipelineStageFlagscommandBufferCount*: uint32pCommandBuffers*: ptr VkCommandBuffersignalSemaphoreCount*: uint32pSignalSemaphores*: ptr VkSemaphoreVkDisplayPropertiesKHR* = objectdisplay*: VkDisplayKHRdisplayName*: cstringphysicalDimensions*: VkExtent2DphysicalResolution*: VkExtent2DsupportedTransforms*: VkSurfaceTransformFlagsKHRplaneReorderPossible*: VkBool32persistentContent*: VkBool32VkDisplayPlanePropertiesKHR* = objectcurrentDisplay*: VkDisplayKHRcurrentStackIndex*: uint32VkDisplayModeParametersKHR* = objectvisibleRegion*: VkExtent2DrefreshRate*: uint32VkDisplayModePropertiesKHR* = objectdisplayMode*: VkDisplayModeKHRparameters*: VkDisplayModeParametersKHRVkDisplayModeCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDisplayModeCreateFlagsKHRparameters*: VkDisplayModeParametersKHRVkDisplayPlaneCapabilitiesKHR* = objectsupportedAlpha*: VkDisplayPlaneAlphaFlagsKHRminSrcPosition*: VkOffset2DmaxSrcPosition*: VkOffset2DminSrcExtent*: VkExtent2DmaxSrcExtent*: VkExtent2DminDstPosition*: VkOffset2DmaxDstPosition*: VkOffset2DminDstExtent*: VkExtent2DmaxDstExtent*: VkExtent2DVkDisplaySurfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDisplaySurfaceCreateFlagsKHRdisplayMode*: VkDisplayModeKHRplaneIndex*: uint32planeStackIndex*: uint32transform*: VkSurfaceTransformFlagBitsKHRglobalAlpha*: float32alphaMode*: VkDisplayPlaneAlphaFlagBitsKHRimageExtent*: VkExtent2DVkDisplayPresentInfoKHR* = objectsType*: VkStructureTypepNext*: pointersrcRect*: VkRect2DdstRect*: VkRect2Dpersistent*: VkBool32VkSurfaceCapabilitiesKHR* = objectminImageCount*: uint32maxImageCount*: uint32currentExtent*: VkExtent2DminImageExtent*: VkExtent2DmaxImageExtent*: VkExtent2DmaxImageArrayLayers*: uint32supportedTransforms*: VkSurfaceTransformFlagsKHRcurrentTransform*: VkSurfaceTransformFlagBitsKHRsupportedCompositeAlpha*: VkCompositeAlphaFlagsKHRsupportedUsageFlags*: VkImageUsageFlagsVkAndroidSurfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkAndroidSurfaceCreateFlagsKHRwindow*: ptr ANativeWindowVkViSurfaceCreateInfoNN* = objectsType*: VkStructureTypepNext*: pointerflags*: VkViSurfaceCreateFlagsNNwindow*: pointerVkWaylandSurfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkWaylandSurfaceCreateFlagsKHRdisplay*: ptr wl_displaysurface*: ptr wl_surfaceVkWin32SurfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkWin32SurfaceCreateFlagsKHRhinstance*: HINSTANCEhwnd*: HWNDVkXlibSurfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkXlibSurfaceCreateFlagsKHRdpy*: ptr Displaywindow*: WindowVkXcbSurfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkXcbSurfaceCreateFlagsKHRconnection*: ptr xcb_connection_twindow*: xcb_window_tVkDirectFBSurfaceCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDirectFBSurfaceCreateFlagsEXTdfb*: ptr IDirectFBsurface*: ptr IDirectFBSurfaceVkImagePipeSurfaceCreateInfoFUCHSIA* = objectsType*: VkStructureTypepNext*: pointerflags*: VkImagePipeSurfaceCreateFlagsFUCHSIAimagePipeHandle*: zx_handle_tVkStreamDescriptorSurfaceCreateInfoGGP* = objectsType*: VkStructureTypepNext*: pointerflags*: VkStreamDescriptorSurfaceCreateFlagsGGPstreamDescriptor*: GgpStreamDescriptorVkSurfaceFormatKHR* = objectformat*: VkFormatcolorSpace*: VkColorSpaceKHRVkSwapchainCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkSwapchainCreateFlagsKHRsurface*: VkSurfaceKHRminImageCount*: uint32imageFormat*: VkFormatimageColorSpace*: VkColorSpaceKHRimageExtent*: VkExtent2DimageArrayLayers*: uint32imageUsage*: VkImageUsageFlagsimageSharingMode*: VkSharingModequeueFamilyIndexCount*: uint32pQueueFamilyIndices*: ptr uint32preTransform*: VkSurfaceTransformFlagBitsKHRcompositeAlpha*: VkCompositeAlphaFlagBitsKHRpresentMode*: VkPresentModeKHRclipped*: VkBool32oldSwapchain*: VkSwapchainKHRVkPresentInfoKHR* = objectsType*: VkStructureTypepNext*: pointerwaitSemaphoreCount*: uint32pWaitSemaphores*: ptr VkSemaphoreswapchainCount*: uint32pSwapchains*: ptr VkSwapchainKHRpImageIndices*: ptr uint32pResults*: ptr VkResultVkDebugReportCallbackCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDebugReportFlagsEXTpfnCallback*: PFN_vkDebugReportCallbackEXTpUserData*: pointerVkValidationFlagsEXT* = objectsType*: VkStructureTypepNext*: pointerdisabledValidationCheckCount*: uint32pDisabledValidationChecks*: ptr VkValidationCheckEXTVkValidationFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerenabledValidationFeatureCount*: uint32pEnabledValidationFeatures*: ptr VkValidationFeatureEnableEXTdisabledValidationFeatureCount*: uint32pDisabledValidationFeatures*: ptr VkValidationFeatureDisableEXTVkPipelineRasterizationStateRasterizationOrderAMD* = objectsType*: VkStructureTypepNext*: pointerrasterizationOrder*: VkRasterizationOrderAMDVkDebugMarkerObjectNameInfoEXT* = objectsType*: VkStructureTypepNext*: pointerobjectType*: VkDebugReportObjectTypeEXT`object`*: uint64pObjectName*: cstringVkDebugMarkerObjectTagInfoEXT* = objectsType*: VkStructureTypepNext*: pointerobjectType*: VkDebugReportObjectTypeEXT`object`*: uint64tagName*: uint64tagSize*: uintpTag*: pointerVkDebugMarkerMarkerInfoEXT* = objectsType*: VkStructureTypepNext*: pointerpMarkerName*: cstringcolor*: array[4, float32]VkDedicatedAllocationImageCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerdedicatedAllocation*: VkBool32VkDedicatedAllocationBufferCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerdedicatedAllocation*: VkBool32VkDedicatedAllocationMemoryAllocateInfoNV* = objectsType*: VkStructureTypepNext*: pointerimage*: VkImagebuffer*: VkBufferVkExternalImageFormatPropertiesNV* = objectimageFormatProperties*: VkImageFormatPropertiesexternalMemoryFeatures*: VkExternalMemoryFeatureFlagsNVexportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlagsNVcompatibleHandleTypes*: VkExternalMemoryHandleTypeFlagsNVVkExternalMemoryImageCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalMemoryHandleTypeFlagsNVVkExportMemoryAllocateInfoNV* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalMemoryHandleTypeFlagsNVVkImportMemoryWin32HandleInfoNV* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalMemoryHandleTypeFlagsNVhandle*: HANDLEVkExportMemoryWin32HandleInfoNV* = objectsType*: VkStructureTypepNext*: pointerpAttributes*: ptr SECURITY_ATTRIBUTESdwAccess*: DWORDVkWin32KeyedMutexAcquireReleaseInfoNV* = objectsType*: VkStructureTypepNext*: pointeracquireCount*: uint32pAcquireSyncs*: ptr VkDeviceMemorypAcquireKeys*: ptr uint64pAcquireTimeoutMilliseconds*: ptr uint32releaseCount*: uint32pReleaseSyncs*: ptr VkDeviceMemorypReleaseKeys*: ptr uint64VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerdeviceGeneratedCommands*: VkBool32VkDevicePrivateDataCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerprivateDataSlotRequestCount*: uint32VkPrivateDataSlotCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPrivateDataSlotCreateFlagsEXTVkPhysicalDevicePrivateDataFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerprivateData*: VkBool32VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* = objectsType*: VkStructureTypepNext*: pointermaxGraphicsShaderGroupCount*: uint32maxIndirectSequenceCount*: uint32maxIndirectCommandsTokenCount*: uint32maxIndirectCommandsStreamCount*: uint32maxIndirectCommandsTokenOffset*: uint32maxIndirectCommandsStreamStride*: uint32minSequencesCountBufferOffsetAlignment*: uint32minSequencesIndexBufferOffsetAlignment*: uint32minIndirectCommandsBufferOffsetAlignment*: uint32VkGraphicsShaderGroupCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerstageCount*: uint32pStages*: ptr VkPipelineShaderStageCreateInfopVertexInputState*: ptr VkPipelineVertexInputStateCreateInfopTessellationState*: ptr VkPipelineTessellationStateCreateInfoVkGraphicsPipelineShaderGroupsCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointergroupCount*: uint32pGroups*: ptr VkGraphicsShaderGroupCreateInfoNVpipelineCount*: uint32pPipelines*: ptr VkPipelineVkBindShaderGroupIndirectCommandNV* = objectgroupIndex*: uint32VkBindIndexBufferIndirectCommandNV* = objectbufferAddress*: VkDeviceAddresssize*: uint32indexType*: VkIndexTypeVkBindVertexBufferIndirectCommandNV* = objectbufferAddress*: VkDeviceAddresssize*: uint32stride*: uint32VkSetStateFlagsIndirectCommandNV* = objectdata*: uint32VkIndirectCommandsStreamNV* = objectbuffer*: VkBufferoffset*: VkDeviceSizeVkIndirectCommandsLayoutTokenNV* = objectsType*: VkStructureTypepNext*: pointertokenType*: VkIndirectCommandsTokenTypeNVstream*: uint32offset*: uint32vertexBindingUnit*: uint32vertexDynamicStride*: VkBool32pushconstantPipelineLayout*: VkPipelineLayoutpushconstantShaderStageFlags*: VkShaderStageFlagspushconstantOffset*: uint32pushconstantSize*: uint32indirectStateFlags*: VkIndirectStateFlagsNVindexTypeCount*: uint32pIndexTypes*: ptr VkIndexTypepIndexTypeValues*: ptr uint32VkIndirectCommandsLayoutCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkIndirectCommandsLayoutUsageFlagsNVpipelineBindPoint*: VkPipelineBindPointtokenCount*: uint32pTokens*: ptr VkIndirectCommandsLayoutTokenNVstreamCount*: uint32pStreamStrides*: ptr uint32VkGeneratedCommandsInfoNV* = objectsType*: VkStructureTypepNext*: pointerpipelineBindPoint*: VkPipelineBindPointpipeline*: VkPipelineindirectCommandsLayout*: VkIndirectCommandsLayoutNVstreamCount*: uint32pStreams*: ptr VkIndirectCommandsStreamNVsequencesCount*: uint32preprocessBuffer*: VkBufferpreprocessOffset*: VkDeviceSizepreprocessSize*: VkDeviceSizesequencesCountBuffer*: VkBuffersequencesCountOffset*: VkDeviceSizesequencesIndexBuffer*: VkBuffersequencesIndexOffset*: VkDeviceSizeVkGeneratedCommandsMemoryRequirementsInfoNV* = objectsType*: VkStructureTypepNext*: pointerpipelineBindPoint*: VkPipelineBindPointpipeline*: VkPipelineindirectCommandsLayout*: VkIndirectCommandsLayoutNVmaxSequencesCount*: uint32VkPhysicalDeviceFeatures2* = objectsType*: VkStructureTypepNext*: pointerfeatures*: VkPhysicalDeviceFeaturesVkPhysicalDeviceFeatures2KHR* = objectVkPhysicalDeviceProperties2* = objectsType*: VkStructureTypepNext*: pointerproperties*: VkPhysicalDevicePropertiesVkPhysicalDeviceProperties2KHR* = objectVkFormatProperties2* = objectsType*: VkStructureTypepNext*: pointerformatProperties*: VkFormatPropertiesVkFormatProperties2KHR* = objectVkImageFormatProperties2* = objectsType*: VkStructureTypepNext*: pointerimageFormatProperties*: VkImageFormatPropertiesVkImageFormatProperties2KHR* = objectVkPhysicalDeviceImageFormatInfo2* = objectsType*: VkStructureTypepNext*: pointerformat*: VkFormattypee*: VkImageTypetiling*: VkImageTilingusage*: VkImageUsageFlagsflags*: VkImageCreateFlagsVkPhysicalDeviceImageFormatInfo2KHR* = objectVkQueueFamilyProperties2* = objectsType*: VkStructureTypepNext*: pointerqueueFamilyProperties*: VkQueueFamilyPropertiesVkQueueFamilyProperties2KHR* = objectVkPhysicalDeviceMemoryProperties2* = objectsType*: VkStructureTypepNext*: pointermemoryProperties*: VkPhysicalDeviceMemoryPropertiesVkPhysicalDeviceMemoryProperties2KHR* = objectVkSparseImageFormatProperties2* = objectsType*: VkStructureTypepNext*: pointerproperties*: VkSparseImageFormatPropertiesVkSparseImageFormatProperties2KHR* = objectVkPhysicalDeviceSparseImageFormatInfo2* = objectsType*: VkStructureTypepNext*: pointerformat*: VkFormattypee*: VkImageTypesamples*: VkSampleCountFlagBitsusage*: VkImageUsageFlagstiling*: VkImageTilingVkPhysicalDeviceSparseImageFormatInfo2KHR* = objectVkPhysicalDevicePushDescriptorPropertiesKHR* = objectsType*: VkStructureTypepNext*: pointermaxPushDescriptors*: uint32VkConformanceVersion* = objectmajor*: uint8minor*: uint8subminor*: uint8patch*: uint8VkConformanceVersionKHR* = objectVkPhysicalDeviceDriverProperties* = objectsType*: VkStructureTypepNext*: pointerdriverID*: VkDriverIddriverName*: array[VK_MAX_DRIVER_NAME_SIZE, char]driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char]conformanceVersion*: VkConformanceVersionVkPhysicalDeviceDriverPropertiesKHR* = objectVkPresentRegionsKHR* = objectsType*: VkStructureTypepNext*: pointerswapchainCount*: uint32pRegions*: ptr VkPresentRegionKHRVkPresentRegionKHR* = objectrectangleCount*: uint32pRectangles*: ptr VkRectLayerKHRVkRectLayerKHR* = objectoffset*: VkOffset2Dextent*: VkExtent2Dlayer*: uint32VkPhysicalDeviceVariablePointersFeatures* = objectsType*: VkStructureTypepNext*: pointervariablePointersStorageBuffer*: VkBool32variablePointers*: VkBool32VkPhysicalDeviceVariablePointersFeaturesKHR* = objectVkPhysicalDeviceVariablePointerFeaturesKHR* = objectVkPhysicalDeviceVariablePointerFeatures* = objectVkExternalMemoryProperties* = objectexternalMemoryFeatures*: VkExternalMemoryFeatureFlagsexportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlagscompatibleHandleTypes*: VkExternalMemoryHandleTypeFlagsVkExternalMemoryPropertiesKHR* = objectVkPhysicalDeviceExternalImageFormatInfo* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalMemoryHandleTypeFlagBitsVkPhysicalDeviceExternalImageFormatInfoKHR* = objectVkExternalImageFormatProperties* = objectsType*: VkStructureTypepNext*: pointerexternalMemoryProperties*: VkExternalMemoryPropertiesVkExternalImageFormatPropertiesKHR* = objectVkPhysicalDeviceExternalBufferInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkBufferCreateFlagsusage*: VkBufferUsageFlagshandleType*: VkExternalMemoryHandleTypeFlagBitsVkPhysicalDeviceExternalBufferInfoKHR* = objectVkExternalBufferProperties* = objectsType*: VkStructureTypepNext*: pointerexternalMemoryProperties*: VkExternalMemoryPropertiesVkExternalBufferPropertiesKHR* = objectVkPhysicalDeviceIDProperties* = objectsType*: VkStructureTypepNext*: pointerdeviceUUID*: array[VK_UUID_SIZE, uint8]driverUUID*: array[VK_UUID_SIZE, uint8]deviceLUID*: array[VK_LUID_SIZE, uint8]deviceNodeMask*: uint32deviceLUIDValid*: VkBool32VkPhysicalDeviceIDPropertiesKHR* = objectVkExternalMemoryImageCreateInfo* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalMemoryHandleTypeFlagsVkExternalMemoryImageCreateInfoKHR* = objectVkExternalMemoryBufferCreateInfo* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalMemoryHandleTypeFlagsVkExternalMemoryBufferCreateInfoKHR* = objectVkExportMemoryAllocateInfo* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalMemoryHandleTypeFlagsVkExportMemoryAllocateInfoKHR* = objectVkImportMemoryWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalMemoryHandleTypeFlagBitshandle*: HANDLEname*: LPCWSTRVkExportMemoryWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointerpAttributes*: ptr SECURITY_ATTRIBUTESdwAccess*: DWORDname*: LPCWSTRVkMemoryWin32HandlePropertiesKHR* = objectsType*: VkStructureTypepNext*: pointermemoryTypeBits*: uint32VkMemoryGetWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointermemory*: VkDeviceMemoryhandleType*: VkExternalMemoryHandleTypeFlagBitsVkImportMemoryFdInfoKHR* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalMemoryHandleTypeFlagBitsfd*: intVkMemoryFdPropertiesKHR* = objectsType*: VkStructureTypepNext*: pointermemoryTypeBits*: uint32VkMemoryGetFdInfoKHR* = objectsType*: VkStructureTypepNext*: pointermemory*: VkDeviceMemoryhandleType*: VkExternalMemoryHandleTypeFlagBitsVkWin32KeyedMutexAcquireReleaseInfoKHR* = objectsType*: VkStructureTypepNext*: pointeracquireCount*: uint32pAcquireSyncs*: ptr VkDeviceMemorypAcquireKeys*: ptr uint64pAcquireTimeouts*: ptr uint32releaseCount*: uint32pReleaseSyncs*: ptr VkDeviceMemorypReleaseKeys*: ptr uint64VkPhysicalDeviceExternalSemaphoreInfo* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalSemaphoreHandleTypeFlagBitsVkPhysicalDeviceExternalSemaphoreInfoKHR* = objectVkExternalSemaphoreProperties* = objectsType*: VkStructureTypepNext*: pointerexportFromImportedHandleTypes*: VkExternalSemaphoreHandleTypeFlagscompatibleHandleTypes*: VkExternalSemaphoreHandleTypeFlagsexternalSemaphoreFeatures*: VkExternalSemaphoreFeatureFlagsVkExternalSemaphorePropertiesKHR* = objectVkExportSemaphoreCreateInfo* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalSemaphoreHandleTypeFlagsVkExportSemaphoreCreateInfoKHR* = objectVkImportSemaphoreWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointersemaphore*: VkSemaphoreflags*: VkSemaphoreImportFlagshandleType*: VkExternalSemaphoreHandleTypeFlagBitshandle*: HANDLEname*: LPCWSTRVkExportSemaphoreWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointerpAttributes*: ptr SECURITY_ATTRIBUTESdwAccess*: DWORDname*: LPCWSTRVkD3D12FenceSubmitInfoKHR* = objectsType*: VkStructureTypepNext*: pointerwaitSemaphoreValuesCount*: uint32pWaitSemaphoreValues*: ptr uint64signalSemaphoreValuesCount*: uint32pSignalSemaphoreValues*: ptr uint64VkSemaphoreGetWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointersemaphore*: VkSemaphorehandleType*: VkExternalSemaphoreHandleTypeFlagBitsVkImportSemaphoreFdInfoKHR* = objectsType*: VkStructureTypepNext*: pointersemaphore*: VkSemaphoreflags*: VkSemaphoreImportFlagshandleType*: VkExternalSemaphoreHandleTypeFlagBitsfd*: intVkSemaphoreGetFdInfoKHR* = objectsType*: VkStructureTypepNext*: pointersemaphore*: VkSemaphorehandleType*: VkExternalSemaphoreHandleTypeFlagBitsVkPhysicalDeviceExternalFenceInfo* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalFenceHandleTypeFlagBitsVkPhysicalDeviceExternalFenceInfoKHR* = objectVkExternalFenceProperties* = objectsType*: VkStructureTypepNext*: pointerexportFromImportedHandleTypes*: VkExternalFenceHandleTypeFlagscompatibleHandleTypes*: VkExternalFenceHandleTypeFlagsexternalFenceFeatures*: VkExternalFenceFeatureFlagsVkExternalFencePropertiesKHR* = objectVkExportFenceCreateInfo* = objectsType*: VkStructureTypepNext*: pointerhandleTypes*: VkExternalFenceHandleTypeFlagsVkExportFenceCreateInfoKHR* = objectVkImportFenceWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointerfence*: VkFenceflags*: VkFenceImportFlagshandleType*: VkExternalFenceHandleTypeFlagBitshandle*: HANDLEname*: LPCWSTRVkExportFenceWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointerpAttributes*: ptr SECURITY_ATTRIBUTESdwAccess*: DWORDname*: LPCWSTRVkFenceGetWin32HandleInfoKHR* = objectsType*: VkStructureTypepNext*: pointerfence*: VkFencehandleType*: VkExternalFenceHandleTypeFlagBitsVkImportFenceFdInfoKHR* = objectsType*: VkStructureTypepNext*: pointerfence*: VkFenceflags*: VkFenceImportFlagshandleType*: VkExternalFenceHandleTypeFlagBitsfd*: intVkFenceGetFdInfoKHR* = objectsType*: VkStructureTypepNext*: pointerfence*: VkFencehandleType*: VkExternalFenceHandleTypeFlagBitsVkPhysicalDeviceMultiviewFeatures* = objectsType*: VkStructureTypepNext*: pointermultiview*: VkBool32multiviewGeometryShader*: VkBool32multiviewTessellationShader*: VkBool32VkPhysicalDeviceMultiviewFeaturesKHR* = objectVkPhysicalDeviceMultiviewProperties* = objectsType*: VkStructureTypepNext*: pointermaxMultiviewViewCount*: uint32maxMultiviewInstanceIndex*: uint32VkPhysicalDeviceMultiviewPropertiesKHR* = objectVkRenderPassMultiviewCreateInfo* = objectsType*: VkStructureTypepNext*: pointersubpassCount*: uint32pViewMasks*: ptr uint32dependencyCount*: uint32pViewOffsets*: ptr int32correlationMaskCount*: uint32pCorrelationMasks*: ptr uint32VkRenderPassMultiviewCreateInfoKHR* = objectVkSurfaceCapabilities2EXT* = objectsType*: VkStructureTypepNext*: pointerminImageCount*: uint32maxImageCount*: uint32currentExtent*: VkExtent2DminImageExtent*: VkExtent2DmaxImageExtent*: VkExtent2DmaxImageArrayLayers*: uint32supportedTransforms*: VkSurfaceTransformFlagsKHRcurrentTransform*: VkSurfaceTransformFlagBitsKHRsupportedCompositeAlpha*: VkCompositeAlphaFlagsKHRsupportedUsageFlags*: VkImageUsageFlagssupportedSurfaceCounters*: VkSurfaceCounterFlagsEXTVkDisplayPowerInfoEXT* = objectsType*: VkStructureTypepNext*: pointerpowerState*: VkDisplayPowerStateEXTVkDeviceEventInfoEXT* = objectsType*: VkStructureTypepNext*: pointerdeviceEvent*: VkDeviceEventTypeEXTVkDisplayEventInfoEXT* = objectsType*: VkStructureTypepNext*: pointerdisplayEvent*: VkDisplayEventTypeEXTVkSwapchainCounterCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointersurfaceCounters*: VkSurfaceCounterFlagsEXTVkPhysicalDeviceGroupProperties* = objectsType*: VkStructureTypepNext*: pointerphysicalDeviceCount*: uint32physicalDevices*: array[VK_MAX_DEVICE_GROUP_SIZE, VkPhysicalDevice]subsetAllocation*: VkBool32VkPhysicalDeviceGroupPropertiesKHR* = objectVkMemoryAllocateFlagsInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkMemoryAllocateFlagsdeviceMask*: uint32VkMemoryAllocateFlagsInfoKHR* = objectVkBindBufferMemoryInfo* = objectsType*: VkStructureTypepNext*: pointerbuffer*: VkBuffermemory*: VkDeviceMemorymemoryOffset*: VkDeviceSizeVkBindBufferMemoryInfoKHR* = objectVkBindBufferMemoryDeviceGroupInfo* = objectsType*: VkStructureTypepNext*: pointerdeviceIndexCount*: uint32pDeviceIndices*: ptr uint32VkBindBufferMemoryDeviceGroupInfoKHR* = objectVkBindImageMemoryInfo* = objectsType*: VkStructureTypepNext*: pointerimage*: VkImagememory*: VkDeviceMemorymemoryOffset*: VkDeviceSizeVkBindImageMemoryInfoKHR* = objectVkBindImageMemoryDeviceGroupInfo* = objectsType*: VkStructureTypepNext*: pointerdeviceIndexCount*: uint32pDeviceIndices*: ptr uint32splitInstanceBindRegionCount*: uint32pSplitInstanceBindRegions*: ptr VkRect2DVkBindImageMemoryDeviceGroupInfoKHR* = objectVkDeviceGroupRenderPassBeginInfo* = objectsType*: VkStructureTypepNext*: pointerdeviceMask*: uint32deviceRenderAreaCount*: uint32pDeviceRenderAreas*: ptr VkRect2DVkDeviceGroupRenderPassBeginInfoKHR* = objectVkDeviceGroupCommandBufferBeginInfo* = objectsType*: VkStructureTypepNext*: pointerdeviceMask*: uint32VkDeviceGroupCommandBufferBeginInfoKHR* = objectVkDeviceGroupSubmitInfo* = objectsType*: VkStructureTypepNext*: pointerwaitSemaphoreCount*: uint32pWaitSemaphoreDeviceIndices*: ptr uint32commandBufferCount*: uint32pCommandBufferDeviceMasks*: ptr uint32signalSemaphoreCount*: uint32pSignalSemaphoreDeviceIndices*: ptr uint32VkDeviceGroupSubmitInfoKHR* = objectVkDeviceGroupBindSparseInfo* = objectsType*: VkStructureTypepNext*: pointerresourceDeviceIndex*: uint32memoryDeviceIndex*: uint32VkDeviceGroupBindSparseInfoKHR* = objectVkDeviceGroupPresentCapabilitiesKHR* = objectsType*: VkStructureTypepNext*: pointerpresentMask*: array[VK_MAX_DEVICE_GROUP_SIZE, uint32]modes*: VkDeviceGroupPresentModeFlagsKHRVkImageSwapchainCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerswapchain*: VkSwapchainKHRVkBindImageMemorySwapchainInfoKHR* = objectsType*: VkStructureTypepNext*: pointerswapchain*: VkSwapchainKHRimageIndex*: uint32VkAcquireNextImageInfoKHR* = objectsType*: VkStructureTypepNext*: pointerswapchain*: VkSwapchainKHRtimeout*: uint64semaphore*: VkSemaphorefence*: VkFencedeviceMask*: uint32VkDeviceGroupPresentInfoKHR* = objectsType*: VkStructureTypepNext*: pointerswapchainCount*: uint32pDeviceMasks*: ptr uint32mode*: VkDeviceGroupPresentModeFlagBitsKHRVkDeviceGroupDeviceCreateInfo* = objectsType*: VkStructureTypepNext*: pointerphysicalDeviceCount*: uint32pPhysicalDevices*: ptr VkPhysicalDeviceVkDeviceGroupDeviceCreateInfoKHR* = objectVkDeviceGroupSwapchainCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointermodes*: VkDeviceGroupPresentModeFlagsKHRVkDescriptorUpdateTemplateEntry* = objectdstBinding*: uint32dstArrayElement*: uint32descriptorCount*: uint32descriptorType*: VkDescriptorTypeoffset*: uintstride*: uintVkDescriptorUpdateTemplateEntryKHR* = objectVkDescriptorUpdateTemplateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDescriptorUpdateTemplateCreateFlagsdescriptorUpdateEntryCount*: uint32pDescriptorUpdateEntries*: ptr VkDescriptorUpdateTemplateEntrytemplateType*: VkDescriptorUpdateTemplateTypedescriptorSetLayout*: VkDescriptorSetLayoutpipelineBindPoint*: VkPipelineBindPointpipelineLayout*: VkPipelineLayoutset*: uint32VkDescriptorUpdateTemplateCreateInfoKHR* = objectVkXYColorEXT* = objectx*: float32y*: float32VkHdrMetadataEXT* = objectsType*: VkStructureTypepNext*: pointerdisplayPrimaryRed*: VkXYColorEXTdisplayPrimaryGreen*: VkXYColorEXTdisplayPrimaryBlue*: VkXYColorEXTwhitePoint*: VkXYColorEXTmaxLuminance*: float32minLuminance*: float32maxContentLightLevel*: float32maxFrameAverageLightLevel*: float32VkDisplayNativeHdrSurfaceCapabilitiesAMD* = objectsType*: VkStructureTypepNext*: pointerlocalDimmingSupport*: VkBool32VkSwapchainDisplayNativeHdrCreateInfoAMD* = objectsType*: VkStructureTypepNext*: pointerlocalDimmingEnable*: VkBool32VkRefreshCycleDurationGOOGLE* = objectrefreshDuration*: uint64VkPastPresentationTimingGOOGLE* = objectpresentID*: uint32desiredPresentTime*: uint64actualPresentTime*: uint64earliestPresentTime*: uint64presentMargin*: uint64VkPresentTimesInfoGOOGLE* = objectsType*: VkStructureTypepNext*: pointerswapchainCount*: uint32pTimes*: ptr VkPresentTimeGOOGLEVkPresentTimeGOOGLE* = objectpresentID*: uint32desiredPresentTime*: uint64VkIOSSurfaceCreateInfoMVK* = objectsType*: VkStructureTypepNext*: pointerflags*: VkIOSSurfaceCreateFlagsMVKpView*: pointerVkMacOSSurfaceCreateInfoMVK* = objectsType*: VkStructureTypepNext*: pointerflags*: VkMacOSSurfaceCreateFlagsMVKpView*: pointerVkMetalSurfaceCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkMetalSurfaceCreateFlagsEXTpLayer*: ptr CAMetalLayerVkViewportWScalingNV* = objectxcoeff*: float32ycoeff*: float32VkPipelineViewportWScalingStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerviewportWScalingEnable*: VkBool32viewportCount*: uint32pViewportWScalings*: ptr VkViewportWScalingNVVkViewportSwizzleNV* = objectx*: VkViewportCoordinateSwizzleNVy*: VkViewportCoordinateSwizzleNVz*: VkViewportCoordinateSwizzleNVw*: VkViewportCoordinateSwizzleNVVkPipelineViewportSwizzleStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineViewportSwizzleStateCreateFlagsNVviewportCount*: uint32pViewportSwizzles*: ptr VkViewportSwizzleNVVkPhysicalDeviceDiscardRectanglePropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermaxDiscardRectangles*: uint32VkPipelineDiscardRectangleStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineDiscardRectangleStateCreateFlagsEXTdiscardRectangleMode*: VkDiscardRectangleModeEXTdiscardRectangleCount*: uint32pDiscardRectangles*: ptr VkRect2DVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* = objectsType*: VkStructureTypepNext*: pointerperViewPositionAllComponents*: VkBool32VkInputAttachmentAspectReference* = objectsubpass*: uint32inputAttachmentIndex*: uint32aspectMask*: VkImageAspectFlagsVkInputAttachmentAspectReferenceKHR* = objectVkRenderPassInputAttachmentAspectCreateInfo* = objectsType*: VkStructureTypepNext*: pointeraspectReferenceCount*: uint32pAspectReferences*: ptr VkInputAttachmentAspectReferenceVkRenderPassInputAttachmentAspectCreateInfoKHR* = objectVkPhysicalDeviceSurfaceInfo2KHR* = objectsType*: VkStructureTypepNext*: pointersurface*: VkSurfaceKHRVkSurfaceCapabilities2KHR* = objectsType*: VkStructureTypepNext*: pointersurfaceCapabilities*: VkSurfaceCapabilitiesKHRVkSurfaceFormat2KHR* = objectsType*: VkStructureTypepNext*: pointersurfaceFormat*: VkSurfaceFormatKHRVkDisplayProperties2KHR* = objectsType*: VkStructureTypepNext*: pointerdisplayProperties*: VkDisplayPropertiesKHRVkDisplayPlaneProperties2KHR* = objectsType*: VkStructureTypepNext*: pointerdisplayPlaneProperties*: VkDisplayPlanePropertiesKHRVkDisplayModeProperties2KHR* = objectsType*: VkStructureTypepNext*: pointerdisplayModeProperties*: VkDisplayModePropertiesKHRVkDisplayPlaneInfo2KHR* = objectsType*: VkStructureTypepNext*: pointermode*: VkDisplayModeKHRplaneIndex*: uint32VkDisplayPlaneCapabilities2KHR* = objectsType*: VkStructureTypepNext*: pointercapabilities*: VkDisplayPlaneCapabilitiesKHRVkSharedPresentSurfaceCapabilitiesKHR* = objectsType*: VkStructureTypepNext*: pointersharedPresentSupportedUsageFlags*: VkImageUsageFlagsVkPhysicalDevice16BitStorageFeatures* = objectsType*: VkStructureTypepNext*: pointerstorageBuffer16BitAccess*: VkBool32uniformAndStorageBuffer16BitAccess*: VkBool32storagePushConstant16*: VkBool32storageInputOutput16*: VkBool32VkPhysicalDevice16BitStorageFeaturesKHR* = objectVkPhysicalDeviceSubgroupProperties* = objectsType*: VkStructureTypepNext*: pointersubgroupSize*: uint32supportedStages*: VkShaderStageFlagssupportedOperations*: VkSubgroupFeatureFlagsquadOperationsInAllStages*: VkBool32VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* = objectsType*: VkStructureTypepNext*: pointershaderSubgroupExtendedTypes*: VkBool32VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR* = objectVkBufferMemoryRequirementsInfo2* = objectsType*: VkStructureTypepNext*: pointerbuffer*: VkBufferVkBufferMemoryRequirementsInfo2KHR* = objectVkImageMemoryRequirementsInfo2* = objectsType*: VkStructureTypepNext*: pointerimage*: VkImageVkImageMemoryRequirementsInfo2KHR* = objectVkImageSparseMemoryRequirementsInfo2* = objectsType*: VkStructureTypepNext*: pointerimage*: VkImageVkImageSparseMemoryRequirementsInfo2KHR* = objectVkMemoryRequirements2* = objectsType*: VkStructureTypepNext*: pointermemoryRequirements*: VkMemoryRequirementsVkMemoryRequirements2KHR* = objectVkSparseImageMemoryRequirements2* = objectsType*: VkStructureTypepNext*: pointermemoryRequirements*: VkSparseImageMemoryRequirementsVkSparseImageMemoryRequirements2KHR* = objectVkPhysicalDevicePointClippingProperties* = objectsType*: VkStructureTypepNext*: pointerpointClippingBehavior*: VkPointClippingBehaviorVkPhysicalDevicePointClippingPropertiesKHR* = objectVkMemoryDedicatedRequirements* = objectsType*: VkStructureTypepNext*: pointerprefersDedicatedAllocation*: VkBool32requiresDedicatedAllocation*: VkBool32VkMemoryDedicatedRequirementsKHR* = objectVkMemoryDedicatedAllocateInfo* = objectsType*: VkStructureTypepNext*: pointerimage*: VkImagebuffer*: VkBufferVkMemoryDedicatedAllocateInfoKHR* = objectVkImageViewUsageCreateInfo* = objectsType*: VkStructureTypepNext*: pointerusage*: VkImageUsageFlagsVkImageViewUsageCreateInfoKHR* = objectVkPipelineTessellationDomainOriginStateCreateInfo* = objectsType*: VkStructureTypepNext*: pointerdomainOrigin*: VkTessellationDomainOriginVkPipelineTessellationDomainOriginStateCreateInfoKHR* = objectVkSamplerYcbcrConversionInfo* = objectsType*: VkStructureTypepNext*: pointerconversion*: VkSamplerYcbcrConversionVkSamplerYcbcrConversionInfoKHR* = objectVkSamplerYcbcrConversionCreateInfo* = objectsType*: VkStructureTypepNext*: pointerformat*: VkFormatycbcrModel*: VkSamplerYcbcrModelConversionycbcrRange*: VkSamplerYcbcrRangecomponents*: VkComponentMappingxChromaOffset*: VkChromaLocationyChromaOffset*: VkChromaLocationchromaFilter*: VkFilterforceExplicitReconstruction*: VkBool32VkSamplerYcbcrConversionCreateInfoKHR* = objectVkBindImagePlaneMemoryInfo* = objectsType*: VkStructureTypepNext*: pointerplaneAspect*: VkImageAspectFlagBitsVkBindImagePlaneMemoryInfoKHR* = objectVkImagePlaneMemoryRequirementsInfo* = objectsType*: VkStructureTypepNext*: pointerplaneAspect*: VkImageAspectFlagBitsVkImagePlaneMemoryRequirementsInfoKHR* = objectVkPhysicalDeviceSamplerYcbcrConversionFeatures* = objectsType*: VkStructureTypepNext*: pointersamplerYcbcrConversion*: VkBool32VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR* = objectVkSamplerYcbcrConversionImageFormatProperties* = objectsType*: VkStructureTypepNext*: pointercombinedImageSamplerDescriptorCount*: uint32VkSamplerYcbcrConversionImageFormatPropertiesKHR* = objectVkTextureLODGatherFormatPropertiesAMD* = objectsType*: VkStructureTypepNext*: pointersupportsTextureGatherLODBiasAMD*: VkBool32VkConditionalRenderingBeginInfoEXT* = objectsType*: VkStructureTypepNext*: pointerbuffer*: VkBufferoffset*: VkDeviceSizeflags*: VkConditionalRenderingFlagsEXTVkProtectedSubmitInfo* = objectsType*: VkStructureTypepNext*: pointerprotectedSubmit*: VkBool32VkPhysicalDeviceProtectedMemoryFeatures* = objectsType*: VkStructureTypepNext*: pointerprotectedMemory*: VkBool32VkPhysicalDeviceProtectedMemoryProperties* = objectsType*: VkStructureTypepNext*: pointerprotectedNoFault*: VkBool32VkDeviceQueueInfo2* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDeviceQueueCreateFlagsqueueFamilyIndex*: uint32queueIndex*: uint32VkPipelineCoverageToColorStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCoverageToColorStateCreateFlagsNVcoverageToColorEnable*: VkBool32coverageToColorLocation*: uint32VkPhysicalDeviceSamplerFilterMinmaxProperties* = objectsType*: VkStructureTypepNext*: pointerfilterMinmaxSingleComponentFormats*: VkBool32filterMinmaxImageComponentMapping*: VkBool32VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* = objectVkSampleLocationEXT* = objectx*: float32y*: float32VkSampleLocationsInfoEXT* = objectsType*: VkStructureTypepNext*: pointersampleLocationsPerPixel*: VkSampleCountFlagBitssampleLocationGridSize*: VkExtent2DsampleLocationsCount*: uint32pSampleLocations*: ptr VkSampleLocationEXTVkAttachmentSampleLocationsEXT* = objectattachmentIndex*: uint32sampleLocationsInfo*: VkSampleLocationsInfoEXTVkSubpassSampleLocationsEXT* = objectsubpassIndex*: uint32sampleLocationsInfo*: VkSampleLocationsInfoEXTVkRenderPassSampleLocationsBeginInfoEXT* = objectsType*: VkStructureTypepNext*: pointerattachmentInitialSampleLocationsCount*: uint32pAttachmentInitialSampleLocations*: ptr VkAttachmentSampleLocationsEXTpostSubpassSampleLocationsCount*: uint32pPostSubpassSampleLocations*: ptr VkSubpassSampleLocationsEXTVkPipelineSampleLocationsStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointersampleLocationsEnable*: VkBool32sampleLocationsInfo*: VkSampleLocationsInfoEXTVkPhysicalDeviceSampleLocationsPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointersampleLocationSampleCounts*: VkSampleCountFlagsmaxSampleLocationGridSize*: VkExtent2DsampleLocationCoordinateRange*: array[2, float32]sampleLocationSubPixelBits*: uint32variableSampleLocations*: VkBool32VkMultisamplePropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermaxSampleLocationGridSize*: VkExtent2DVkSamplerReductionModeCreateInfo* = objectsType*: VkStructureTypepNext*: pointerreductionMode*: VkSamplerReductionModeVkSamplerReductionModeCreateInfoEXT* = objectVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointeradvancedBlendCoherentOperations*: VkBool32VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointeradvancedBlendMaxColorAttachments*: uint32advancedBlendIndependentBlend*: VkBool32advancedBlendNonPremultipliedSrcColor*: VkBool32advancedBlendNonPremultipliedDstColor*: VkBool32advancedBlendCorrelatedOverlap*: VkBool32advancedBlendAllOperations*: VkBool32VkPipelineColorBlendAdvancedStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointersrcPremultiplied*: VkBool32dstPremultiplied*: VkBool32blendOverlap*: VkBlendOverlapEXTVkPhysicalDeviceInlineUniformBlockFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerinlineUniformBlock*: VkBool32descriptorBindingInlineUniformBlockUpdateAfterBind*: VkBool32VkPhysicalDeviceInlineUniformBlockPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermaxInlineUniformBlockSize*: uint32maxPerStageDescriptorInlineUniformBlocks*: uint32maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks*: uint32maxDescriptorSetInlineUniformBlocks*: uint32maxDescriptorSetUpdateAfterBindInlineUniformBlocks*: uint32VkWriteDescriptorSetInlineUniformBlockEXT* = objectsType*: VkStructureTypepNext*: pointerdataSize*: uint32pData*: pointerVkDescriptorPoolInlineUniformBlockCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointermaxInlineUniformBlockBindings*: uint32VkPipelineCoverageModulationStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCoverageModulationStateCreateFlagsNVcoverageModulationMode*: VkCoverageModulationModeNVcoverageModulationTableEnable*: VkBool32coverageModulationTableCount*: uint32pCoverageModulationTable*: ptr float32VkImageFormatListCreateInfo* = objectsType*: VkStructureTypepNext*: pointerviewFormatCount*: uint32pViewFormats*: ptr VkFormatVkImageFormatListCreateInfoKHR* = objectVkValidationCacheCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkValidationCacheCreateFlagsEXTinitialDataSize*: uintpInitialData*: pointerVkShaderModuleValidationCacheCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointervalidationCache*: VkValidationCacheEXTVkPhysicalDeviceMaintenance3Properties* = objectsType*: VkStructureTypepNext*: pointermaxPerSetDescriptors*: uint32maxMemoryAllocationSize*: VkDeviceSizeVkPhysicalDeviceMaintenance3PropertiesKHR* = objectVkDescriptorSetLayoutSupport* = objectsType*: VkStructureTypepNext*: pointersupported*: VkBool32VkDescriptorSetLayoutSupportKHR* = objectVkPhysicalDeviceShaderDrawParametersFeatures* = objectsType*: VkStructureTypepNext*: pointershaderDrawParameters*: VkBool32VkPhysicalDeviceShaderDrawParameterFeatures* = objectVkPhysicalDeviceShaderFloat16Int8Features* = objectsType*: VkStructureTypepNext*: pointershaderFloat16*: VkBool32shaderInt8*: VkBool32VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* = objectVkPhysicalDeviceFloat16Int8FeaturesKHR* = objectVkPhysicalDeviceFloatControlsProperties* = objectsType*: VkStructureTypepNext*: pointerdenormBehaviorIndependence*: VkShaderFloatControlsIndependenceroundingModeIndependence*: VkShaderFloatControlsIndependenceshaderSignedZeroInfNanPreserveFloat16*: VkBool32shaderSignedZeroInfNanPreserveFloat32*: VkBool32shaderSignedZeroInfNanPreserveFloat64*: VkBool32shaderDenormPreserveFloat16*: VkBool32shaderDenormPreserveFloat32*: VkBool32shaderDenormPreserveFloat64*: VkBool32shaderDenormFlushToZeroFloat16*: VkBool32shaderDenormFlushToZeroFloat32*: VkBool32shaderDenormFlushToZeroFloat64*: VkBool32shaderRoundingModeRTEFloat16*: VkBool32shaderRoundingModeRTEFloat32*: VkBool32shaderRoundingModeRTEFloat64*: VkBool32shaderRoundingModeRTZFloat16*: VkBool32shaderRoundingModeRTZFloat32*: VkBool32shaderRoundingModeRTZFloat64*: VkBool32VkPhysicalDeviceFloatControlsPropertiesKHR* = objectVkPhysicalDeviceHostQueryResetFeatures* = objectsType*: VkStructureTypepNext*: pointerhostQueryReset*: VkBool32VkPhysicalDeviceHostQueryResetFeaturesEXT* = objectVkNativeBufferUsage2ANDROID* = objectconsumer*: uint64producer*: uint64VkNativeBufferANDROID* = objectsType*: VkStructureTypepNext*: pointerhandle*: pointerstride*: intformat*: intusage*: intusage2*: VkNativeBufferUsage2ANDROIDVkSwapchainImageCreateInfoANDROID* = objectsType*: VkStructureTypepNext*: pointerusage*: VkSwapchainImageUsageFlagsANDROIDVkPhysicalDevicePresentationPropertiesANDROID* = objectsType*: VkStructureTypepNext*: pointersharedImage*: VkBool32VkShaderResourceUsageAMD* = objectnumUsedVgprs*: uint32numUsedSgprs*: uint32ldsSizePerLocalWorkGroup*: uint32ldsUsageSizeInBytes*: uintscratchMemUsageInBytes*: uintVkShaderStatisticsInfoAMD* = objectshaderStageMask*: VkShaderStageFlagsresourceUsage*: VkShaderResourceUsageAMDnumPhysicalVgprs*: uint32numPhysicalSgprs*: uint32numAvailableVgprs*: uint32numAvailableSgprs*: uint32computeWorkGroupSize*: array[3, uint32]VkDeviceQueueGlobalPriorityCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerglobalPriority*: VkQueueGlobalPriorityEXTVkDebugUtilsObjectNameInfoEXT* = objectsType*: VkStructureTypepNext*: pointerobjectType*: VkObjectTypeobjectHandle*: uint64pObjectName*: cstringVkDebugUtilsObjectTagInfoEXT* = objectsType*: VkStructureTypepNext*: pointerobjectType*: VkObjectTypeobjectHandle*: uint64tagName*: uint64tagSize*: uintpTag*: pointerVkDebugUtilsLabelEXT* = objectsType*: VkStructureTypepNext*: pointerpLabelName*: cstringcolor*: array[4, float32]VkDebugUtilsMessengerCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDebugUtilsMessengerCreateFlagsEXTmessageSeverity*: VkDebugUtilsMessageSeverityFlagsEXTmessageType*: VkDebugUtilsMessageTypeFlagsEXTpfnUserCallback*: PFN_vkDebugUtilsMessengerCallbackEXTpUserData*: pointerVkDebugUtilsMessengerCallbackDataEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDebugUtilsMessengerCallbackDataFlagsEXTpMessageIdName*: cstringmessageIdNumber*: int32pMessage*: cstringqueueLabelCount*: uint32pQueueLabels*: ptr VkDebugUtilsLabelEXTcmdBufLabelCount*: uint32pCmdBufLabels*: ptr VkDebugUtilsLabelEXTobjectCount*: uint32pObjects*: ptr VkDebugUtilsObjectNameInfoEXTVkImportMemoryHostPointerInfoEXT* = objectsType*: VkStructureTypepNext*: pointerhandleType*: VkExternalMemoryHandleTypeFlagBitspHostPointer*: pointerVkMemoryHostPointerPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermemoryTypeBits*: uint32VkPhysicalDeviceExternalMemoryHostPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerminImportedHostPointerAlignment*: VkDeviceSizeVkPhysicalDeviceConservativeRasterizationPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerprimitiveOverestimationSize*: float32maxExtraPrimitiveOverestimationSize*: float32extraPrimitiveOverestimationSizeGranularity*: float32primitiveUnderestimation*: VkBool32conservativePointAndLineRasterization*: VkBool32degenerateTrianglesRasterized*: VkBool32degenerateLinesRasterized*: VkBool32fullyCoveredFragmentShaderInputVariable*: VkBool32conservativeRasterizationPostDepthCoverage*: VkBool32VkCalibratedTimestampInfoEXT* = objectsType*: VkStructureTypepNext*: pointertimeDomain*: VkTimeDomainEXTVkPhysicalDeviceShaderCorePropertiesAMD* = objectsType*: VkStructureTypepNext*: pointershaderEngineCount*: uint32shaderArraysPerEngineCount*: uint32computeUnitsPerShaderArray*: uint32simdPerComputeUnit*: uint32wavefrontsPerSimd*: uint32wavefrontSize*: uint32sgprsPerSimd*: uint32minSgprAllocation*: uint32maxSgprAllocation*: uint32sgprAllocationGranularity*: uint32vgprsPerSimd*: uint32minVgprAllocation*: uint32maxVgprAllocation*: uint32vgprAllocationGranularity*: uint32VkPhysicalDeviceShaderCoreProperties2AMD* = objectsType*: VkStructureTypepNext*: pointershaderCoreFeatures*: VkShaderCorePropertiesFlagsAMDactiveComputeUnitCount*: uint32VkPipelineRasterizationConservativeStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineRasterizationConservativeStateCreateFlagsEXTconservativeRasterizationMode*: VkConservativeRasterizationModeEXTextraPrimitiveOverestimationSize*: float32VkPhysicalDeviceDescriptorIndexingFeatures* = objectsType*: VkStructureTypepNext*: pointershaderInputAttachmentArrayDynamicIndexing*: VkBool32shaderUniformTexelBufferArrayDynamicIndexing*: VkBool32shaderStorageTexelBufferArrayDynamicIndexing*: VkBool32shaderUniformBufferArrayNonUniformIndexing*: VkBool32shaderSampledImageArrayNonUniformIndexing*: VkBool32shaderStorageBufferArrayNonUniformIndexing*: VkBool32shaderStorageImageArrayNonUniformIndexing*: VkBool32shaderInputAttachmentArrayNonUniformIndexing*: VkBool32shaderUniformTexelBufferArrayNonUniformIndexing*: VkBool32shaderStorageTexelBufferArrayNonUniformIndexing*: VkBool32descriptorBindingUniformBufferUpdateAfterBind*: VkBool32descriptorBindingSampledImageUpdateAfterBind*: VkBool32descriptorBindingStorageImageUpdateAfterBind*: VkBool32descriptorBindingStorageBufferUpdateAfterBind*: VkBool32descriptorBindingUniformTexelBufferUpdateAfterBind*: VkBool32descriptorBindingStorageTexelBufferUpdateAfterBind*: VkBool32descriptorBindingUpdateUnusedWhilePending*: VkBool32descriptorBindingPartiallyBound*: VkBool32descriptorBindingVariableDescriptorCount*: VkBool32runtimeDescriptorArray*: VkBool32VkPhysicalDeviceDescriptorIndexingFeaturesEXT* = objectVkPhysicalDeviceDescriptorIndexingProperties* = objectsType*: VkStructureTypepNext*: pointermaxUpdateAfterBindDescriptorsInAllPools*: uint32shaderUniformBufferArrayNonUniformIndexingNative*: VkBool32shaderSampledImageArrayNonUniformIndexingNative*: VkBool32shaderStorageBufferArrayNonUniformIndexingNative*: VkBool32shaderStorageImageArrayNonUniformIndexingNative*: VkBool32shaderInputAttachmentArrayNonUniformIndexingNative*: VkBool32robustBufferAccessUpdateAfterBind*: VkBool32quadDivergentImplicitLod*: VkBool32maxPerStageDescriptorUpdateAfterBindSamplers*: uint32maxPerStageDescriptorUpdateAfterBindUniformBuffers*: uint32maxPerStageDescriptorUpdateAfterBindStorageBuffers*: uint32maxPerStageDescriptorUpdateAfterBindSampledImages*: uint32maxPerStageDescriptorUpdateAfterBindStorageImages*: uint32maxPerStageDescriptorUpdateAfterBindInputAttachments*: uint32maxPerStageUpdateAfterBindResources*: uint32maxDescriptorSetUpdateAfterBindSamplers*: uint32maxDescriptorSetUpdateAfterBindUniformBuffers*: uint32maxDescriptorSetUpdateAfterBindUniformBuffersDynamic*: uint32maxDescriptorSetUpdateAfterBindStorageBuffers*: uint32maxDescriptorSetUpdateAfterBindStorageBuffersDynamic*: uint32maxDescriptorSetUpdateAfterBindSampledImages*: uint32maxDescriptorSetUpdateAfterBindStorageImages*: uint32maxDescriptorSetUpdateAfterBindInputAttachments*: uint32VkPhysicalDeviceDescriptorIndexingPropertiesEXT* = objectVkDescriptorSetLayoutBindingFlagsCreateInfo* = objectsType*: VkStructureTypepNext*: pointerbindingCount*: uint32pBindingFlags*: ptr VkDescriptorBindingFlagsVkDescriptorSetLayoutBindingFlagsCreateInfoEXT* = objectVkDescriptorSetVariableDescriptorCountAllocateInfo* = objectsType*: VkStructureTypepNext*: pointerdescriptorSetCount*: uint32pDescriptorCounts*: ptr uint32VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* = objectVkDescriptorSetVariableDescriptorCountLayoutSupport* = objectsType*: VkStructureTypepNext*: pointermaxVariableDescriptorCount*: uint32VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* = objectVkAttachmentDescription2* = objectsType*: VkStructureTypepNext*: pointerflags*: VkAttachmentDescriptionFlagsformat*: VkFormatsamples*: VkSampleCountFlagBitsloadOp*: VkAttachmentLoadOpstoreOp*: VkAttachmentStoreOpstencilLoadOp*: VkAttachmentLoadOpstencilStoreOp*: VkAttachmentStoreOpinitialLayout*: VkImageLayoutfinalLayout*: VkImageLayoutVkAttachmentDescription2KHR* = objectVkAttachmentReference2* = objectsType*: VkStructureTypepNext*: pointerattachment*: uint32layout*: VkImageLayoutaspectMask*: VkImageAspectFlagsVkAttachmentReference2KHR* = objectVkSubpassDescription2* = objectsType*: VkStructureTypepNext*: pointerflags*: VkSubpassDescriptionFlagspipelineBindPoint*: VkPipelineBindPointviewMask*: uint32inputAttachmentCount*: uint32pInputAttachments*: ptr VkAttachmentReference2colorAttachmentCount*: uint32pColorAttachments*: ptr VkAttachmentReference2pResolveAttachments*: ptr VkAttachmentReference2pDepthStencilAttachment*: ptr VkAttachmentReference2preserveAttachmentCount*: uint32pPreserveAttachments*: ptr uint32VkSubpassDescription2KHR* = objectVkSubpassDependency2* = objectsType*: VkStructureTypepNext*: pointersrcSubpass*: uint32dstSubpass*: uint32srcStageMask*: VkPipelineStageFlagsdstStageMask*: VkPipelineStageFlagssrcAccessMask*: VkAccessFlagsdstAccessMask*: VkAccessFlagsdependencyFlags*: VkDependencyFlagsviewOffset*: int32VkSubpassDependency2KHR* = objectVkRenderPassCreateInfo2* = objectsType*: VkStructureTypepNext*: pointerflags*: VkRenderPassCreateFlagsattachmentCount*: uint32pAttachments*: ptr VkAttachmentDescription2subpassCount*: uint32pSubpasses*: ptr VkSubpassDescription2dependencyCount*: uint32pDependencies*: ptr VkSubpassDependency2correlatedViewMaskCount*: uint32pCorrelatedViewMasks*: ptr uint32VkRenderPassCreateInfo2KHR* = objectVkSubpassBeginInfo* = objectsType*: VkStructureTypepNext*: pointercontents*: VkSubpassContentsVkSubpassBeginInfoKHR* = objectVkSubpassEndInfo* = objectsType*: VkStructureTypepNext*: pointerVkSubpassEndInfoKHR* = objectVkPhysicalDeviceTimelineSemaphoreFeatures* = objectsType*: VkStructureTypepNext*: pointertimelineSemaphore*: VkBool32VkPhysicalDeviceTimelineSemaphoreFeaturesKHR* = objectVkPhysicalDeviceTimelineSemaphoreProperties* = objectsType*: VkStructureTypepNext*: pointermaxTimelineSemaphoreValueDifference*: uint64VkPhysicalDeviceTimelineSemaphorePropertiesKHR* = objectVkSemaphoreTypeCreateInfo* = objectsType*: VkStructureTypepNext*: pointersemaphoreType*: VkSemaphoreTypeinitialValue*: uint64VkSemaphoreTypeCreateInfoKHR* = objectVkTimelineSemaphoreSubmitInfo* = objectsType*: VkStructureTypepNext*: pointerwaitSemaphoreValueCount*: uint32pWaitSemaphoreValues*: ptr uint64signalSemaphoreValueCount*: uint32pSignalSemaphoreValues*: ptr uint64VkTimelineSemaphoreSubmitInfoKHR* = objectVkSemaphoreWaitInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkSemaphoreWaitFlagssemaphoreCount*: uint32pSemaphores*: ptr VkSemaphorepValues*: ptr uint64VkSemaphoreWaitInfoKHR* = objectVkSemaphoreSignalInfo* = objectsType*: VkStructureTypepNext*: pointersemaphore*: VkSemaphorevalue*: uint64VkSemaphoreSignalInfoKHR* = objectVkVertexInputBindingDivisorDescriptionEXT* = objectbinding*: uint32divisor*: uint32VkPipelineVertexInputDivisorStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointervertexBindingDivisorCount*: uint32pVertexBindingDivisors*: ptr VkVertexInputBindingDivisorDescriptionEXTVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermaxVertexAttribDivisor*: uint32VkPhysicalDevicePCIBusInfoPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerpciDomain*: uint32pciBus*: uint32pciDevice*: uint32pciFunction*: uint32VkImportAndroidHardwareBufferInfoANDROID* = objectsType*: VkStructureTypepNext*: pointerbuffer*: ptr AHardwareBufferVkAndroidHardwareBufferUsageANDROID* = objectsType*: VkStructureTypepNext*: pointerandroidHardwareBufferUsage*: uint64VkAndroidHardwareBufferPropertiesANDROID* = objectsType*: VkStructureTypepNext*: pointerallocationSize*: VkDeviceSizememoryTypeBits*: uint32VkMemoryGetAndroidHardwareBufferInfoANDROID* = objectsType*: VkStructureTypepNext*: pointermemory*: VkDeviceMemoryVkAndroidHardwareBufferFormatPropertiesANDROID* = objectsType*: VkStructureTypepNext*: pointerformat*: VkFormatexternalFormat*: uint64formatFeatures*: VkFormatFeatureFlagssamplerYcbcrConversionComponents*: VkComponentMappingsuggestedYcbcrModel*: VkSamplerYcbcrModelConversionsuggestedYcbcrRange*: VkSamplerYcbcrRangesuggestedXChromaOffset*: VkChromaLocationsuggestedYChromaOffset*: VkChromaLocationVkCommandBufferInheritanceConditionalRenderingInfoEXT* = objectsType*: VkStructureTypepNext*: pointerconditionalRenderingEnable*: VkBool32VkExternalFormatANDROID* = objectsType*: VkStructureTypepNext*: pointerexternalFormat*: uint64VkPhysicalDevice8BitStorageFeatures* = objectsType*: VkStructureTypepNext*: pointerstorageBuffer8BitAccess*: VkBool32uniformAndStorageBuffer8BitAccess*: VkBool32storagePushConstant8*: VkBool32VkPhysicalDevice8BitStorageFeaturesKHR* = objectVkPhysicalDeviceConditionalRenderingFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerconditionalRendering*: VkBool32inheritedConditionalRendering*: VkBool32VkPhysicalDeviceVulkanMemoryModelFeatures* = objectsType*: VkStructureTypepNext*: pointervulkanMemoryModel*: VkBool32vulkanMemoryModelDeviceScope*: VkBool32vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32VkPhysicalDeviceVulkanMemoryModelFeaturesKHR* = objectVkPhysicalDeviceShaderAtomicInt64Features* = objectsType*: VkStructureTypepNext*: pointershaderBufferInt64Atomics*: VkBool32shaderSharedInt64Atomics*: VkBool32VkPhysicalDeviceShaderAtomicInt64FeaturesKHR* = objectVkPhysicalDeviceShaderAtomicFloatFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointershaderBufferFloat32Atomics*: VkBool32shaderBufferFloat32AtomicAdd*: VkBool32shaderBufferFloat64Atomics*: VkBool32shaderBufferFloat64AtomicAdd*: VkBool32shaderSharedFloat32Atomics*: VkBool32shaderSharedFloat32AtomicAdd*: VkBool32shaderSharedFloat64Atomics*: VkBool32shaderSharedFloat64AtomicAdd*: VkBool32shaderImageFloat32Atomics*: VkBool32shaderImageFloat32AtomicAdd*: VkBool32sparseImageFloat32Atomics*: VkBool32sparseImageFloat32AtomicAdd*: VkBool32VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointervertexAttributeInstanceRateDivisor*: VkBool32vertexAttributeInstanceRateZeroDivisor*: VkBool32VkQueueFamilyCheckpointPropertiesNV* = objectsType*: VkStructureTypepNext*: pointercheckpointExecutionStageMask*: VkPipelineStageFlagsVkCheckpointDataNV* = objectsType*: VkStructureTypepNext*: pointerstage*: VkPipelineStageFlagBitspCheckpointMarker*: pointerVkPhysicalDeviceDepthStencilResolveProperties* = objectsType*: VkStructureTypepNext*: pointersupportedDepthResolveModes*: VkResolveModeFlagssupportedStencilResolveModes*: VkResolveModeFlagsindependentResolveNone*: VkBool32independentResolve*: VkBool32VkPhysicalDeviceDepthStencilResolvePropertiesKHR* = objectVkSubpassDescriptionDepthStencilResolve* = objectsType*: VkStructureTypepNext*: pointerdepthResolveMode*: VkResolveModeFlagBitsstencilResolveMode*: VkResolveModeFlagBitspDepthStencilResolveAttachment*: ptr VkAttachmentReference2VkSubpassDescriptionDepthStencilResolveKHR* = objectVkImageViewASTCDecodeModeEXT* = objectsType*: VkStructureTypepNext*: pointerdecodeMode*: VkFormatVkPhysicalDeviceASTCDecodeFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerdecodeModeSharedExponent*: VkBool32VkPhysicalDeviceTransformFeedbackFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointertransformFeedback*: VkBool32geometryStreams*: VkBool32VkPhysicalDeviceTransformFeedbackPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermaxTransformFeedbackStreams*: uint32maxTransformFeedbackBuffers*: uint32maxTransformFeedbackBufferSize*: VkDeviceSizemaxTransformFeedbackStreamDataSize*: uint32maxTransformFeedbackBufferDataSize*: uint32maxTransformFeedbackBufferDataStride*: uint32transformFeedbackQueries*: VkBool32transformFeedbackStreamsLinesTriangles*: VkBool32transformFeedbackRasterizationStreamSelect*: VkBool32transformFeedbackDraw*: VkBool32VkPipelineRasterizationStateStreamCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineRasterizationStateStreamCreateFlagsEXTrasterizationStream*: uint32VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerrepresentativeFragmentTest*: VkBool32VkPipelineRepresentativeFragmentTestStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerrepresentativeFragmentTestEnable*: VkBool32VkPhysicalDeviceExclusiveScissorFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerexclusiveScissor*: VkBool32VkPipelineViewportExclusiveScissorStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerexclusiveScissorCount*: uint32pExclusiveScissors*: ptr VkRect2DVkPhysicalDeviceCornerSampledImageFeaturesNV* = objectsType*: VkStructureTypepNext*: pointercornerSampledImage*: VkBool32VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* = objectsType*: VkStructureTypepNext*: pointercomputeDerivativeGroupQuads*: VkBool32computeDerivativeGroupLinear*: VkBool32VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerfragmentShaderBarycentric*: VkBool32VkPhysicalDeviceShaderImageFootprintFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerimageFootprint*: VkBool32VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerdedicatedAllocationImageAliasing*: VkBool32VkShadingRatePaletteNV* = objectshadingRatePaletteEntryCount*: uint32pShadingRatePaletteEntries*: ptr VkShadingRatePaletteEntryNVVkPipelineViewportShadingRateImageStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointershadingRateImageEnable*: VkBool32viewportCount*: uint32pShadingRatePalettes*: ptr VkShadingRatePaletteNVVkPhysicalDeviceShadingRateImageFeaturesNV* = objectsType*: VkStructureTypepNext*: pointershadingRateImage*: VkBool32shadingRateCoarseSampleOrder*: VkBool32VkPhysicalDeviceShadingRateImagePropertiesNV* = objectsType*: VkStructureTypepNext*: pointershadingRateTexelSize*: VkExtent2DshadingRatePaletteSize*: uint32shadingRateMaxCoarseSamples*: uint32VkCoarseSampleLocationNV* = objectpixelX*: uint32pixelY*: uint32sample*: uint32VkCoarseSampleOrderCustomNV* = objectshadingRate*: VkShadingRatePaletteEntryNVsampleCount*: uint32sampleLocationCount*: uint32pSampleLocations*: ptr VkCoarseSampleLocationNVVkPipelineViewportCoarseSampleOrderStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointersampleOrderType*: VkCoarseSampleOrderTypeNVcustomSampleOrderCount*: uint32pCustomSampleOrders*: ptr VkCoarseSampleOrderCustomNVVkPhysicalDeviceMeshShaderFeaturesNV* = objectsType*: VkStructureTypepNext*: pointertaskShader*: VkBool32meshShader*: VkBool32VkPhysicalDeviceMeshShaderPropertiesNV* = objectsType*: VkStructureTypepNext*: pointermaxDrawMeshTasksCount*: uint32maxTaskWorkGroupInvocations*: uint32maxTaskWorkGroupSize*: array[3, uint32]maxTaskTotalMemorySize*: uint32maxTaskOutputCount*: uint32maxMeshWorkGroupInvocations*: uint32maxMeshWorkGroupSize*: array[3, uint32]maxMeshTotalMemorySize*: uint32maxMeshOutputVertices*: uint32maxMeshOutputPrimitives*: uint32maxMeshMultiviewViewCount*: uint32meshOutputPerVertexGranularity*: uint32meshOutputPerPrimitiveGranularity*: uint32VkDrawMeshTasksIndirectCommandNV* = objecttaskCount*: uint32firstTask*: uint32VkRayTracingShaderGroupCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointertypee*: VkRayTracingShaderGroupTypeKHRgeneralShader*: uint32closestHitShader*: uint32anyHitShader*: uint32intersectionShader*: uint32VkRayTracingShaderGroupCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointertypee*: VkRayTracingShaderGroupTypeKHRgeneralShader*: uint32closestHitShader*: uint32anyHitShader*: uint32intersectionShader*: uint32pShaderGroupCaptureReplayHandle*: pointerVkRayTracingPipelineCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCreateFlagsstageCount*: uint32pStages*: ptr VkPipelineShaderStageCreateInfogroupCount*: uint32pGroups*: ptr VkRayTracingShaderGroupCreateInfoNVmaxRecursionDepth*: uint32layout*: VkPipelineLayoutbasePipelineHandle*: VkPipelinebasePipelineIndex*: int32VkRayTracingPipelineCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCreateFlagsstageCount*: uint32pStages*: ptr VkPipelineShaderStageCreateInfogroupCount*: uint32pGroups*: ptr VkRayTracingShaderGroupCreateInfoKHRmaxRecursionDepth*: uint32libraries*: VkPipelineLibraryCreateInfoKHRpLibraryInterface*: ptr VkRayTracingPipelineInterfaceCreateInfoKHRlayout*: VkPipelineLayoutbasePipelineHandle*: VkPipelinebasePipelineIndex*: int32VkGeometryTrianglesNV* = objectsType*: VkStructureTypepNext*: pointervertexData*: VkBuffervertexOffset*: VkDeviceSizevertexCount*: uint32vertexStride*: VkDeviceSizevertexFormat*: VkFormatindexData*: VkBufferindexOffset*: VkDeviceSizeindexCount*: uint32indexType*: VkIndexTypetransformData*: VkBuffertransformOffset*: VkDeviceSizeVkGeometryAABBNV* = objectsType*: VkStructureTypepNext*: pointeraabbData*: VkBuffernumAABBs*: uint32stride*: uint32offset*: VkDeviceSizeVkGeometryDataNV* = objecttriangles*: VkGeometryTrianglesNVaabbs*: VkGeometryAABBNVVkGeometryNV* = objectsType*: VkStructureTypepNext*: pointergeometryType*: VkGeometryTypeKHRgeometry*: VkGeometryDataNVflags*: VkGeometryFlagsKHRVkAccelerationStructureInfoNV* = objectsType*: VkStructureTypepNext*: pointertypee*: VkAccelerationStructureTypeNVflags*: VkBuildAccelerationStructureFlagsNVinstanceCount*: uint32geometryCount*: uint32pGeometries*: ptr VkGeometryNVVkAccelerationStructureCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointercompactedSize*: VkDeviceSizeinfo*: VkAccelerationStructureInfoNVVkBindAccelerationStructureMemoryInfoKHR* = objectsType*: VkStructureTypepNext*: pointeraccelerationStructure*: VkAccelerationStructureKHRmemory*: VkDeviceMemorymemoryOffset*: VkDeviceSizedeviceIndexCount*: uint32pDeviceIndices*: ptr uint32VkBindAccelerationStructureMemoryInfoNV* = objectVkWriteDescriptorSetAccelerationStructureKHR* = objectsType*: VkStructureTypepNext*: pointeraccelerationStructureCount*: uint32pAccelerationStructures*: ptr VkAccelerationStructureKHRVkWriteDescriptorSetAccelerationStructureNV* = objectVkAccelerationStructureMemoryRequirementsInfoKHR* = objectsType*: VkStructureTypepNext*: pointertypee*: VkAccelerationStructureMemoryRequirementsTypeKHRbuildType*: VkAccelerationStructureBuildTypeKHRaccelerationStructure*: VkAccelerationStructureKHRVkAccelerationStructureMemoryRequirementsInfoNV* = objectsType*: VkStructureTypepNext*: pointertypee*: VkAccelerationStructureMemoryRequirementsTypeNVaccelerationStructure*: VkAccelerationStructureNVVkPhysicalDeviceRayTracingFeaturesKHR* = objectsType*: VkStructureTypepNext*: pointerrayTracing*: VkBool32rayTracingShaderGroupHandleCaptureReplay*: VkBool32rayTracingShaderGroupHandleCaptureReplayMixed*: VkBool32rayTracingAccelerationStructureCaptureReplay*: VkBool32rayTracingIndirectTraceRays*: VkBool32rayTracingIndirectAccelerationStructureBuild*: VkBool32rayTracingHostAccelerationStructureCommands*: VkBool32rayQuery*: VkBool32rayTracingPrimitiveCulling*: VkBool32VkPhysicalDeviceRayTracingPropertiesKHR* = objectsType*: VkStructureTypepNext*: pointershaderGroupHandleSize*: uint32maxRecursionDepth*: uint32maxShaderGroupStride*: uint32shaderGroupBaseAlignment*: uint32maxGeometryCount*: uint64maxInstanceCount*: uint64maxPrimitiveCount*: uint64maxDescriptorSetAccelerationStructures*: uint32shaderGroupHandleCaptureReplaySize*: uint32VkPhysicalDeviceRayTracingPropertiesNV* = objectsType*: VkStructureTypepNext*: pointershaderGroupHandleSize*: uint32maxRecursionDepth*: uint32maxShaderGroupStride*: uint32shaderGroupBaseAlignment*: uint32maxGeometryCount*: uint64maxInstanceCount*: uint64maxTriangleCount*: uint64maxDescriptorSetAccelerationStructures*: uint32VkStridedBufferRegionKHR* = objectbuffer*: VkBufferoffset*: VkDeviceSizestride*: VkDeviceSizesize*: VkDeviceSizeVkTraceRaysIndirectCommandKHR* = objectwidth*: uint32height*: uint32depth*: uint32VkDrmFormatModifierPropertiesListEXT* = objectsType*: VkStructureTypepNext*: pointerdrmFormatModifierCount*: uint32pDrmFormatModifierProperties*: ptr VkDrmFormatModifierPropertiesEXTVkDrmFormatModifierPropertiesEXT* = objectdrmFormatModifier*: uint64drmFormatModifierPlaneCount*: uint32drmFormatModifierTilingFeatures*: VkFormatFeatureFlagsVkPhysicalDeviceImageDrmFormatModifierInfoEXT* = objectsType*: VkStructureTypepNext*: pointerdrmFormatModifier*: uint64sharingMode*: VkSharingModequeueFamilyIndexCount*: uint32pQueueFamilyIndices*: ptr uint32VkImageDrmFormatModifierListCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerdrmFormatModifierCount*: uint32pDrmFormatModifiers*: ptr uint64VkImageDrmFormatModifierExplicitCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerdrmFormatModifier*: uint64drmFormatModifierPlaneCount*: uint32pPlaneLayouts*: ptr VkSubresourceLayoutVkImageDrmFormatModifierPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerdrmFormatModifier*: uint64VkImageStencilUsageCreateInfo* = objectsType*: VkStructureTypepNext*: pointerstencilUsage*: VkImageUsageFlagsVkImageStencilUsageCreateInfoEXT* = objectVkDeviceMemoryOverallocationCreateInfoAMD* = objectsType*: VkStructureTypepNext*: pointeroverallocationBehavior*: VkMemoryOverallocationBehaviorAMDVkPhysicalDeviceFragmentDensityMapFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerfragmentDensityMap*: VkBool32fragmentDensityMapDynamic*: VkBool32fragmentDensityMapNonSubsampledImages*: VkBool32VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerfragmentDensityMapDeferred*: VkBool32VkPhysicalDeviceFragmentDensityMapPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerminFragmentDensityTexelSize*: VkExtent2DmaxFragmentDensityTexelSize*: VkExtent2DfragmentDensityInvocations*: VkBool32VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* = objectsType*: VkStructureTypepNext*: pointersubsampledLoads*: VkBool32subsampledCoarseReconstructionEarlyAccess*: VkBool32maxSubsampledArrayLayers*: uint32maxDescriptorSetSubsampledSamplers*: uint32VkRenderPassFragmentDensityMapCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerfragmentDensityMapAttachment*: VkAttachmentReferenceVkPhysicalDeviceScalarBlockLayoutFeatures* = objectsType*: VkStructureTypepNext*: pointerscalarBlockLayout*: VkBool32VkPhysicalDeviceScalarBlockLayoutFeaturesEXT* = objectVkSurfaceProtectedCapabilitiesKHR* = objectsType*: VkStructureTypepNext*: pointersupportsProtected*: VkBool32VkPhysicalDeviceUniformBufferStandardLayoutFeatures* = objectsType*: VkStructureTypepNext*: pointeruniformBufferStandardLayout*: VkBool32VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR* = objectVkPhysicalDeviceDepthClipEnableFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerdepthClipEnable*: VkBool32VkPipelineRasterizationDepthClipStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineRasterizationDepthClipStateCreateFlagsEXTdepthClipEnable*: VkBool32VkPhysicalDeviceMemoryBudgetPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerheapBudget*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize]heapUsage*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize]VkPhysicalDeviceMemoryPriorityFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointermemoryPriority*: VkBool32VkMemoryPriorityAllocateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerpriority*: float32VkPhysicalDeviceBufferDeviceAddressFeatures* = objectsType*: VkStructureTypepNext*: pointerbufferDeviceAddress*: VkBool32bufferDeviceAddressCaptureReplay*: VkBool32bufferDeviceAddressMultiDevice*: VkBool32VkPhysicalDeviceBufferDeviceAddressFeaturesKHR* = objectVkPhysicalDeviceBufferDeviceAddressFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerbufferDeviceAddress*: VkBool32bufferDeviceAddressCaptureReplay*: VkBool32bufferDeviceAddressMultiDevice*: VkBool32VkPhysicalDeviceBufferAddressFeaturesEXT* = objectVkBufferDeviceAddressInfo* = objectsType*: VkStructureTypepNext*: pointerbuffer*: VkBufferVkBufferDeviceAddressInfoKHR* = objectVkBufferDeviceAddressInfoEXT* = objectVkBufferOpaqueCaptureAddressCreateInfo* = objectsType*: VkStructureTypepNext*: pointeropaqueCaptureAddress*: uint64VkBufferOpaqueCaptureAddressCreateInfoKHR* = objectVkBufferDeviceAddressCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerdeviceAddress*: VkDeviceAddressVkPhysicalDeviceImageViewImageFormatInfoEXT* = objectsType*: VkStructureTypepNext*: pointerimageViewType*: VkImageViewTypeVkFilterCubicImageViewImageFormatPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerfilterCubic*: VkBool32filterCubicMinmax*: VkBool32VkPhysicalDeviceImagelessFramebufferFeatures* = objectsType*: VkStructureTypepNext*: pointerimagelessFramebuffer*: VkBool32VkPhysicalDeviceImagelessFramebufferFeaturesKHR* = objectVkFramebufferAttachmentsCreateInfo* = objectsType*: VkStructureTypepNext*: pointerattachmentImageInfoCount*: uint32pAttachmentImageInfos*: ptr VkFramebufferAttachmentImageInfoVkFramebufferAttachmentsCreateInfoKHR* = objectVkFramebufferAttachmentImageInfo* = objectsType*: VkStructureTypepNext*: pointerflags*: VkImageCreateFlagsusage*: VkImageUsageFlagswidth*: uint32height*: uint32layerCount*: uint32viewFormatCount*: uint32pViewFormats*: ptr VkFormatVkFramebufferAttachmentImageInfoKHR* = objectVkRenderPassAttachmentBeginInfo* = objectsType*: VkStructureTypepNext*: pointerattachmentCount*: uint32pAttachments*: ptr VkImageViewVkRenderPassAttachmentBeginInfoKHR* = objectVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointertextureCompressionASTC_HDR*: VkBool32VkPhysicalDeviceCooperativeMatrixFeaturesNV* = objectsType*: VkStructureTypepNext*: pointercooperativeMatrix*: VkBool32cooperativeMatrixRobustBufferAccess*: VkBool32VkPhysicalDeviceCooperativeMatrixPropertiesNV* = objectsType*: VkStructureTypepNext*: pointercooperativeMatrixSupportedStages*: VkShaderStageFlagsVkCooperativeMatrixPropertiesNV* = objectsType*: VkStructureTypepNext*: pointerMSize*: uint32NSize*: uint32KSize*: uint32AType*: VkComponentTypeNVBType*: VkComponentTypeNVCType*: VkComponentTypeNVDType*: VkComponentTypeNVscope*: VkScopeNVVkPhysicalDeviceYcbcrImageArraysFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerycbcrImageArrays*: VkBool32VkImageViewHandleInfoNVX* = objectsType*: VkStructureTypepNext*: pointerimageView*: VkImageViewdescriptorType*: VkDescriptorTypesampler*: VkSamplerVkImageViewAddressPropertiesNVX* = objectsType*: VkStructureTypepNext*: pointerdeviceAddress*: VkDeviceAddresssize*: VkDeviceSizeVkPresentFrameTokenGGP* = objectsType*: VkStructureTypepNext*: pointerframeToken*: GgpFrameTokenVkPipelineCreationFeedbackEXT* = objectflags*: VkPipelineCreationFeedbackFlagsEXTduration*: uint64VkPipelineCreationFeedbackCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerpPipelineCreationFeedback*: ptr VkPipelineCreationFeedbackEXTpipelineStageCreationFeedbackCount*: uint32pPipelineStageCreationFeedbacks*: ptr ptr VkPipelineCreationFeedbackEXTVkSurfaceFullScreenExclusiveInfoEXT* = objectsType*: VkStructureTypepNext*: pointerfullScreenExclusive*: VkFullScreenExclusiveEXTVkSurfaceFullScreenExclusiveWin32InfoEXT* = objectsType*: VkStructureTypepNext*: pointerhmonitor*: HMONITORVkSurfaceCapabilitiesFullScreenExclusiveEXT* = objectsType*: VkStructureTypepNext*: pointerfullScreenExclusiveSupported*: VkBool32VkPhysicalDevicePerformanceQueryFeaturesKHR* = objectsType*: VkStructureTypepNext*: pointerperformanceCounterQueryPools*: VkBool32performanceCounterMultipleQueryPools*: VkBool32VkPhysicalDevicePerformanceQueryPropertiesKHR* = objectsType*: VkStructureTypepNext*: pointerallowCommandBufferQueryCopies*: VkBool32VkPerformanceCounterKHR* = objectsType*: VkStructureTypepNext*: pointerunit*: VkPerformanceCounterUnitKHRscope*: VkPerformanceCounterScopeKHRstorage*: VkPerformanceCounterStorageKHRuuid*: array[VK_UUID_SIZE, uint8]VkPerformanceCounterDescriptionKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPerformanceCounterDescriptionFlagsKHRname*: array[VK_MAX_DESCRIPTION_SIZE, char]category*: array[VK_MAX_DESCRIPTION_SIZE, char]description*: array[VK_MAX_DESCRIPTION_SIZE, char]VkQueryPoolPerformanceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerqueueFamilyIndex*: uint32counterIndexCount*: uint32pCounterIndices*: ptr uint32VkPerformanceCounterResultKHR* {.union.} = objectint32*: int32int64*: int64uint32*: uint32uint64*: uint64float32*: float32float64*: float64VkAcquireProfilingLockInfoKHR* = objectsType*: VkStructureTypepNext*: pointerflags*: VkAcquireProfilingLockFlagsKHRtimeout*: uint64VkPerformanceQuerySubmitInfoKHR* = objectsType*: VkStructureTypepNext*: pointercounterPassIndex*: uint32VkHeadlessSurfaceCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerflags*: VkHeadlessSurfaceCreateFlagsEXTVkPhysicalDeviceCoverageReductionModeFeaturesNV* = objectsType*: VkStructureTypepNext*: pointercoverageReductionMode*: VkBool32VkPipelineCoverageReductionStateCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkPipelineCoverageReductionStateCreateFlagsNVcoverageReductionMode*: VkCoverageReductionModeNVVkFramebufferMixedSamplesCombinationNV* = objectsType*: VkStructureTypepNext*: pointercoverageReductionMode*: VkCoverageReductionModeNVrasterizationSamples*: VkSampleCountFlagBitsdepthStencilSamples*: VkSampleCountFlagscolorSamples*: VkSampleCountFlagsVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* = objectsType*: VkStructureTypepNext*: pointershaderIntegerFunctions2*: VkBool32VkPerformanceValueDataINTEL* {.union.} = objectvalue32*: uint32value64*: uint64valueFloat*: float32valueBool*: VkBool32valueString*: cstringVkPerformanceValueINTEL* = objecttypee*: VkPerformanceValueTypeINTELdata*: VkPerformanceValueDataINTELVkInitializePerformanceApiInfoINTEL* = objectsType*: VkStructureTypepNext*: pointerpUserData*: pointerVkQueryPoolPerformanceQueryCreateInfoINTEL* = objectsType*: VkStructureTypepNext*: pointerperformanceCountersSampling*: VkQueryPoolSamplingModeINTELVkQueryPoolCreateInfoINTEL* = objectVkPerformanceMarkerInfoINTEL* = objectsType*: VkStructureTypepNext*: pointermarker*: uint64VkPerformanceStreamMarkerInfoINTEL* = objectsType*: VkStructureTypepNext*: pointermarker*: uint32VkPerformanceOverrideInfoINTEL* = objectsType*: VkStructureTypepNext*: pointertypee*: VkPerformanceOverrideTypeINTELenable*: VkBool32parameter*: uint64VkPerformanceConfigurationAcquireInfoINTEL* = objectsType*: VkStructureTypepNext*: pointertypee*: VkPerformanceConfigurationTypeINTELVkPhysicalDeviceShaderClockFeaturesKHR* = objectsType*: VkStructureTypepNext*: pointershaderSubgroupClock*: VkBool32shaderDeviceClock*: VkBool32VkPhysicalDeviceIndexTypeUint8FeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerindexTypeUint8*: VkBool32VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* = objectsType*: VkStructureTypepNext*: pointershaderSMCount*: uint32shaderWarpsPerSM*: uint32VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* = objectsType*: VkStructureTypepNext*: pointershaderSMBuiltins*: VkBool32VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerfragmentShaderSampleInterlock*: VkBool32fragmentShaderPixelInterlock*: VkBool32fragmentShaderShadingRateInterlock*: VkBool32VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* = objectsType*: VkStructureTypepNext*: pointerseparateDepthStencilLayouts*: VkBool32VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR* = objectVkAttachmentReferenceStencilLayout* = objectsType*: VkStructureTypepNext*: pointerstencilLayout*: VkImageLayoutVkAttachmentReferenceStencilLayoutKHR* = objectVkAttachmentDescriptionStencilLayout* = objectsType*: VkStructureTypepNext*: pointerstencilInitialLayout*: VkImageLayoutstencilFinalLayout*: VkImageLayoutVkAttachmentDescriptionStencilLayoutKHR* = objectVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* = objectsType*: VkStructureTypepNext*: pointerpipelineExecutableInfo*: VkBool32VkPipelineInfoKHR* = objectsType*: VkStructureTypepNext*: pointerpipeline*: VkPipelineVkPipelineExecutablePropertiesKHR* = objectsType*: VkStructureTypepNext*: pointerstages*: VkShaderStageFlagsname*: array[VK_MAX_DESCRIPTION_SIZE, char]description*: array[VK_MAX_DESCRIPTION_SIZE, char]subgroupSize*: uint32VkPipelineExecutableInfoKHR* = objectsType*: VkStructureTypepNext*: pointerpipeline*: VkPipelineexecutableIndex*: uint32VkPipelineExecutableStatisticValueKHR* {.union.} = objectb32*: VkBool32i64*: int64u64*: uint64f64*: float64VkPipelineExecutableStatisticKHR* = objectsType*: VkStructureTypepNext*: pointername*: array[VK_MAX_DESCRIPTION_SIZE, char]description*: array[VK_MAX_DESCRIPTION_SIZE, char]format*: VkPipelineExecutableStatisticFormatKHRvalue*: VkPipelineExecutableStatisticValueKHRVkPipelineExecutableInternalRepresentationKHR* = objectsType*: VkStructureTypepNext*: pointername*: array[VK_MAX_DESCRIPTION_SIZE, char]description*: array[VK_MAX_DESCRIPTION_SIZE, char]isText*: VkBool32dataSize*: uintpData*: pointerVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointershaderDemoteToHelperInvocation*: VkBool32VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointertexelBufferAlignment*: VkBool32VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerstorageTexelBufferOffsetAlignmentBytes*: VkDeviceSizestorageTexelBufferOffsetSingleTexelAlignment*: VkBool32uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSizeuniformTexelBufferOffsetSingleTexelAlignment*: VkBool32VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointersubgroupSizeControl*: VkBool32computeFullSubgroups*: VkBool32VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerminSubgroupSize*: uint32maxSubgroupSize*: uint32maxComputeWorkgroupSubgroups*: uint32requiredSubgroupSizeStages*: VkShaderStageFlagsVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerrequiredSubgroupSize*: uint32VkMemoryOpaqueCaptureAddressAllocateInfo* = objectsType*: VkStructureTypepNext*: pointeropaqueCaptureAddress*: uint64VkMemoryOpaqueCaptureAddressAllocateInfoKHR* = objectVkDeviceMemoryOpaqueCaptureAddressInfo* = objectsType*: VkStructureTypepNext*: pointermemory*: VkDeviceMemoryVkDeviceMemoryOpaqueCaptureAddressInfoKHR* = objectVkPhysicalDeviceLineRasterizationFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerrectangularLines*: VkBool32bresenhamLines*: VkBool32smoothLines*: VkBool32stippledRectangularLines*: VkBool32stippledBresenhamLines*: VkBool32stippledSmoothLines*: VkBool32VkPhysicalDeviceLineRasterizationPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerlineSubPixelPrecisionBits*: uint32VkPipelineRasterizationLineStateCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointerlineRasterizationMode*: VkLineRasterizationModeEXTstippledLineEnable*: VkBool32lineStippleFactor*: uint32lineStipplePattern*: uint16VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerpipelineCreationCacheControl*: VkBool32VkPhysicalDeviceVulkan11Features* = objectsType*: VkStructureTypepNext*: pointerstorageBuffer16BitAccess*: VkBool32uniformAndStorageBuffer16BitAccess*: VkBool32storagePushConstant16*: VkBool32storageInputOutput16*: VkBool32multiview*: VkBool32multiviewGeometryShader*: VkBool32multiviewTessellationShader*: VkBool32variablePointersStorageBuffer*: VkBool32variablePointers*: VkBool32protectedMemory*: VkBool32samplerYcbcrConversion*: VkBool32shaderDrawParameters*: VkBool32VkPhysicalDeviceVulkan11Properties* = objectsType*: VkStructureTypepNext*: pointerdeviceUUID*: array[VK_UUID_SIZE, uint8]driverUUID*: array[VK_UUID_SIZE, uint8]deviceLUID*: array[VK_LUID_SIZE, uint8]deviceNodeMask*: uint32deviceLUIDValid*: VkBool32subgroupSize*: uint32subgroupSupportedStages*: VkShaderStageFlagssubgroupSupportedOperations*: VkSubgroupFeatureFlagssubgroupQuadOperationsInAllStages*: VkBool32pointClippingBehavior*: VkPointClippingBehaviormaxMultiviewViewCount*: uint32maxMultiviewInstanceIndex*: uint32protectedNoFault*: VkBool32maxPerSetDescriptors*: uint32maxMemoryAllocationSize*: VkDeviceSizeVkPhysicalDeviceVulkan12Features* = objectsType*: VkStructureTypepNext*: pointersamplerMirrorClampToEdge*: VkBool32drawIndirectCount*: VkBool32storageBuffer8BitAccess*: VkBool32uniformAndStorageBuffer8BitAccess*: VkBool32storagePushConstant8*: VkBool32shaderBufferInt64Atomics*: VkBool32shaderSharedInt64Atomics*: VkBool32shaderFloat16*: VkBool32shaderInt8*: VkBool32descriptorIndexing*: VkBool32shaderInputAttachmentArrayDynamicIndexing*: VkBool32shaderUniformTexelBufferArrayDynamicIndexing*: VkBool32shaderStorageTexelBufferArrayDynamicIndexing*: VkBool32shaderUniformBufferArrayNonUniformIndexing*: VkBool32shaderSampledImageArrayNonUniformIndexing*: VkBool32shaderStorageBufferArrayNonUniformIndexing*: VkBool32shaderStorageImageArrayNonUniformIndexing*: VkBool32shaderInputAttachmentArrayNonUniformIndexing*: VkBool32shaderUniformTexelBufferArrayNonUniformIndexing*: VkBool32shaderStorageTexelBufferArrayNonUniformIndexing*: VkBool32descriptorBindingUniformBufferUpdateAfterBind*: VkBool32descriptorBindingSampledImageUpdateAfterBind*: VkBool32descriptorBindingStorageImageUpdateAfterBind*: VkBool32descriptorBindingStorageBufferUpdateAfterBind*: VkBool32descriptorBindingUniformTexelBufferUpdateAfterBind*: VkBool32descriptorBindingStorageTexelBufferUpdateAfterBind*: VkBool32descriptorBindingUpdateUnusedWhilePending*: VkBool32descriptorBindingPartiallyBound*: VkBool32descriptorBindingVariableDescriptorCount*: VkBool32runtimeDescriptorArray*: VkBool32samplerFilterMinmax*: VkBool32scalarBlockLayout*: VkBool32imagelessFramebuffer*: VkBool32uniformBufferStandardLayout*: VkBool32shaderSubgroupExtendedTypes*: VkBool32separateDepthStencilLayouts*: VkBool32hostQueryReset*: VkBool32timelineSemaphore*: VkBool32bufferDeviceAddress*: VkBool32bufferDeviceAddressCaptureReplay*: VkBool32bufferDeviceAddressMultiDevice*: VkBool32vulkanMemoryModel*: VkBool32vulkanMemoryModelDeviceScope*: VkBool32vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32shaderOutputViewportIndex*: VkBool32shaderOutputLayer*: VkBool32subgroupBroadcastDynamicId*: VkBool32VkPhysicalDeviceVulkan12Properties* = objectsType*: VkStructureTypepNext*: pointerdriverID*: VkDriverIddriverName*: array[VK_MAX_DRIVER_NAME_SIZE, char]driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char]conformanceVersion*: VkConformanceVersiondenormBehaviorIndependence*: VkShaderFloatControlsIndependenceroundingModeIndependence*: VkShaderFloatControlsIndependenceshaderSignedZeroInfNanPreserveFloat16*: VkBool32shaderSignedZeroInfNanPreserveFloat32*: VkBool32shaderSignedZeroInfNanPreserveFloat64*: VkBool32shaderDenormPreserveFloat16*: VkBool32shaderDenormPreserveFloat32*: VkBool32shaderDenormPreserveFloat64*: VkBool32shaderDenormFlushToZeroFloat16*: VkBool32shaderDenormFlushToZeroFloat32*: VkBool32shaderDenormFlushToZeroFloat64*: VkBool32shaderRoundingModeRTEFloat16*: VkBool32shaderRoundingModeRTEFloat32*: VkBool32shaderRoundingModeRTEFloat64*: VkBool32shaderRoundingModeRTZFloat16*: VkBool32shaderRoundingModeRTZFloat32*: VkBool32shaderRoundingModeRTZFloat64*: VkBool32maxUpdateAfterBindDescriptorsInAllPools*: uint32shaderUniformBufferArrayNonUniformIndexingNative*: VkBool32shaderSampledImageArrayNonUniformIndexingNative*: VkBool32shaderStorageBufferArrayNonUniformIndexingNative*: VkBool32shaderStorageImageArrayNonUniformIndexingNative*: VkBool32shaderInputAttachmentArrayNonUniformIndexingNative*: VkBool32robustBufferAccessUpdateAfterBind*: VkBool32quadDivergentImplicitLod*: VkBool32maxPerStageDescriptorUpdateAfterBindSamplers*: uint32maxPerStageDescriptorUpdateAfterBindUniformBuffers*: uint32maxPerStageDescriptorUpdateAfterBindStorageBuffers*: uint32maxPerStageDescriptorUpdateAfterBindSampledImages*: uint32maxPerStageDescriptorUpdateAfterBindStorageImages*: uint32maxPerStageDescriptorUpdateAfterBindInputAttachments*: uint32maxPerStageUpdateAfterBindResources*: uint32maxDescriptorSetUpdateAfterBindSamplers*: uint32maxDescriptorSetUpdateAfterBindUniformBuffers*: uint32maxDescriptorSetUpdateAfterBindUniformBuffersDynamic*: uint32maxDescriptorSetUpdateAfterBindStorageBuffers*: uint32maxDescriptorSetUpdateAfterBindStorageBuffersDynamic*: uint32maxDescriptorSetUpdateAfterBindSampledImages*: uint32maxDescriptorSetUpdateAfterBindStorageImages*: uint32maxDescriptorSetUpdateAfterBindInputAttachments*: uint32supportedDepthResolveModes*: VkResolveModeFlagssupportedStencilResolveModes*: VkResolveModeFlagsindependentResolveNone*: VkBool32independentResolve*: VkBool32filterMinmaxSingleComponentFormats*: VkBool32filterMinmaxImageComponentMapping*: VkBool32maxTimelineSemaphoreValueDifference*: uint64framebufferIntegerColorSampleCounts*: VkSampleCountFlagsVkPipelineCompilerControlCreateInfoAMD* = objectsType*: VkStructureTypepNext*: pointercompilerControlFlags*: VkPipelineCompilerControlFlagsAMDVkPhysicalDeviceCoherentMemoryFeaturesAMD* = objectsType*: VkStructureTypepNext*: pointerdeviceCoherentMemory*: VkBool32VkPhysicalDeviceToolPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointername*: array[VK_MAX_EXTENSION_NAME_SIZE, char]version*: array[VK_MAX_EXTENSION_NAME_SIZE, char]purposes*: VkToolPurposeFlagsEXTdescription*: array[VK_MAX_DESCRIPTION_SIZE, char]layer*: array[VK_MAX_EXTENSION_NAME_SIZE, char]VkSamplerCustomBorderColorCreateInfoEXT* = objectsType*: VkStructureTypepNext*: pointercustomBorderColor*: VkClearColorValueformat*: VkFormatVkPhysicalDeviceCustomBorderColorPropertiesEXT* = objectsType*: VkStructureTypepNext*: pointermaxCustomBorderColorSamplers*: uint32VkPhysicalDeviceCustomBorderColorFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointercustomBorderColors*: VkBool32customBorderColorWithoutFormat*: VkBool32VkDeviceOrHostAddressKHR* {.union.} = objectdeviceAddress*: VkDeviceAddresshostAddress*: pointerVkDeviceOrHostAddressConstKHR* {.union.} = objectdeviceAddress*: VkDeviceAddresshostAddress*: pointerVkAccelerationStructureGeometryTrianglesDataKHR* = objectsType*: VkStructureTypepNext*: pointervertexFormat*: VkFormatvertexData*: VkDeviceOrHostAddressConstKHRvertexStride*: VkDeviceSizeindexType*: VkIndexTypeindexData*: VkDeviceOrHostAddressConstKHRtransformData*: VkDeviceOrHostAddressConstKHRVkAccelerationStructureGeometryAabbsDataKHR* = objectsType*: VkStructureTypepNext*: pointerdata*: VkDeviceOrHostAddressConstKHRstride*: VkDeviceSizeVkAccelerationStructureGeometryInstancesDataKHR* = objectsType*: VkStructureTypepNext*: pointerarrayOfPointers*: VkBool32data*: VkDeviceOrHostAddressConstKHRVkAccelerationStructureGeometryDataKHR* {.union.} = objecttriangles*: VkAccelerationStructureGeometryTrianglesDataKHRaabbs*: VkAccelerationStructureGeometryAabbsDataKHRinstances*: VkAccelerationStructureGeometryInstancesDataKHRVkAccelerationStructureGeometryKHR* = objectsType*: VkStructureTypepNext*: pointergeometryType*: VkGeometryTypeKHRgeometry*: VkAccelerationStructureGeometryDataKHRflags*: VkGeometryFlagsKHRVkAccelerationStructureBuildGeometryInfoKHR* = objectsType*: VkStructureTypepNext*: pointertypee*: VkAccelerationStructureTypeKHRflags*: VkBuildAccelerationStructureFlagsKHRupdate*: VkBool32srcAccelerationStructure*: VkAccelerationStructureKHRdstAccelerationStructure*: VkAccelerationStructureKHRgeometryArrayOfPointers*: VkBool32geometryCount*: uint32ppGeometries*: ptr ptr VkAccelerationStructureGeometryKHRscratchData*: VkDeviceOrHostAddressKHRVkAccelerationStructureBuildOffsetInfoKHR* = objectprimitiveCount*: uint32primitiveOffset*: uint32firstVertex*: uint32transformOffset*: uint32VkAccelerationStructureCreateGeometryTypeInfoKHR* = objectsType*: VkStructureTypepNext*: pointergeometryType*: VkGeometryTypeKHRmaxPrimitiveCount*: uint32indexType*: VkIndexTypemaxVertexCount*: uint32vertexFormat*: VkFormatallowsTransforms*: VkBool32VkAccelerationStructureCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointercompactedSize*: VkDeviceSizetypee*: VkAccelerationStructureTypeKHRflags*: VkBuildAccelerationStructureFlagsKHRmaxGeometryCount*: uint32pGeometryInfos*: ptr VkAccelerationStructureCreateGeometryTypeInfoKHRdeviceAddress*: VkDeviceAddressVkAabbPositionsKHR* = objectminX*: float32minY*: float32minZ*: float32maxX*: float32maxY*: float32maxZ*: float32VkAabbPositionsNV* = objectVkTransformMatrixKHR* = objectmatrix*: array[3, float32]VkTransformMatrixNV* = objectVkAccelerationStructureInstanceKHR* = objecttransform*: VkTransformMatrixKHRinstanceCustomIndex*: uint32mask*: uint32instanceShaderBindingTableRecordOffset*: uint32flags*: VkGeometryInstanceFlagsKHRaccelerationStructureReference*: uint64VkAccelerationStructureInstanceNV* = objectVkAccelerationStructureDeviceAddressInfoKHR* = objectsType*: VkStructureTypepNext*: pointeraccelerationStructure*: VkAccelerationStructureKHRVkAccelerationStructureVersionKHR* = objectsType*: VkStructureTypepNext*: pointerversionData*: ptr uint8VkCopyAccelerationStructureInfoKHR* = objectsType*: VkStructureTypepNext*: pointersrc*: VkAccelerationStructureKHRdst*: VkAccelerationStructureKHRmode*: VkCopyAccelerationStructureModeKHRVkCopyAccelerationStructureToMemoryInfoKHR* = objectsType*: VkStructureTypepNext*: pointersrc*: VkAccelerationStructureKHRdst*: VkDeviceOrHostAddressKHRmode*: VkCopyAccelerationStructureModeKHRVkCopyMemoryToAccelerationStructureInfoKHR* = objectsType*: VkStructureTypepNext*: pointersrc*: VkDeviceOrHostAddressConstKHRdst*: VkAccelerationStructureKHRmode*: VkCopyAccelerationStructureModeKHRVkRayTracingPipelineInterfaceCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointermaxPayloadSize*: uint32maxAttributeSize*: uint32maxCallableSize*: uint32VkDeferredOperationInfoKHR* = objectsType*: VkStructureTypepNext*: pointeroperationHandle*: VkDeferredOperationKHRVkPipelineLibraryCreateInfoKHR* = objectsType*: VkStructureTypepNext*: pointerlibraryCount*: uint32pLibraries*: ptr VkPipelineVkPhysicalDeviceExtendedDynamicStateFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerextendedDynamicState*: VkBool32VkRenderPassTransformBeginInfoQCOM* = objectsType*: VkStructureTypepNext*: pointertransform*: VkSurfaceTransformFlagBitsKHRVkCommandBufferInheritanceRenderPassTransformInfoQCOM* = objectsType*: VkStructureTypepNext*: pointertransform*: VkSurfaceTransformFlagBitsKHRrenderArea*: VkRect2DVkPhysicalDeviceDiagnosticsConfigFeaturesNV* = objectsType*: VkStructureTypepNext*: pointerdiagnosticsConfig*: VkBool32VkDeviceDiagnosticsConfigCreateInfoNV* = objectsType*: VkStructureTypepNext*: pointerflags*: VkDeviceDiagnosticsConfigFlagsNVVkPhysicalDeviceRobustness2FeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerrobustBufferAccess2*: VkBool32robustImageAccess2*: VkBool32nullDescriptor*: VkBool32VkPhysicalDeviceRobustness2PropertiesEXT* = objectsType*: VkStructureTypepNext*: pointerrobustStorageBufferAccessSizeAlignment*: VkDeviceSizerobustUniformBufferAccessSizeAlignment*: VkDeviceSizeVkPhysicalDeviceImageRobustnessFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerrobustImageAccess*: VkBool32VkPhysicalDevice4444FormatsFeaturesEXT* = objectsType*: VkStructureTypepNext*: pointerformatA4R4G4B4*: VkBool32formatA4B4G4R4*: VkBool32# Constructorsproc newVkOffset2D*(x: int32, y: int32): VkOffset2D =result.x = xresult.y = yproc newVkOffset3D*(x: int32, y: int32, z: int32): VkOffset3D =result.x = xresult.y = yresult.z = zproc newVkExtent2D*(width: uint32, height: uint32): VkExtent2D =result.width = widthresult.height = heightproc newVkExtent3D*(width: uint32, height: uint32, depth: uint32): VkExtent3D =result.width = widthresult.height = heightresult.depth = depthproc newVkViewport*(x: float32, y: float32, width: float32, height: float32, minDepth: float32, maxDepth: float32): VkViewport =result.x = xresult.y = yresult.width = widthresult.height = heightresult.minDepth = minDepthresult.maxDepth = maxDepthproc newVkRect2D*(offset: VkOffset2D, extent: VkExtent2D): VkRect2D =result.offset = offsetresult.extent = extentproc newVkClearRect*(rect: VkRect2D, baseArrayLayer: uint32, layerCount: uint32): VkClearRect =result.rect = rectresult.baseArrayLayer = baseArrayLayerresult.layerCount = layerCountproc newVkComponentMapping*(r: VkComponentSwizzle, g: VkComponentSwizzle, b: VkComponentSwizzle, a: VkComponentSwizzle): VkComponentMapping =result.r = rresult.g = gresult.b = bresult.a = aproc newVkPhysicalDeviceProperties*(apiVersion: uint32, driverVersion: uint32, vendorID: uint32, deviceID: uint32, deviceType: VkPhysicalDeviceType, deviceName: array[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE, char], pipelineCacheUUID: array[VK_UUID_SIZE, uint8], limits: VkPhysicalDeviceLimits, sparseProperties: VkPhysicalDeviceSparseProperties): VkPhysicalDeviceProperties =result.apiVersion = apiVersionresult.driverVersion = driverVersionresult.vendorID = vendorIDresult.deviceID = deviceIDresult.deviceType = deviceTyperesult.deviceName = deviceNameresult.pipelineCacheUUID = pipelineCacheUUIDresult.limits = limitsresult.sparseProperties = sparsePropertiesproc newVkExtensionProperties*(extensionName: array[VK_MAX_EXTENSION_NAME_SIZE, char], specVersion: uint32): VkExtensionProperties =result.extensionName = extensionNameresult.specVersion = specVersionproc newVkLayerProperties*(layerName: array[VK_MAX_EXTENSION_NAME_SIZE, char], specVersion: uint32, implementationVersion: uint32, description: array[VK_MAX_DESCRIPTION_SIZE, char]): VkLayerProperties =result.layerName = layerNameresult.specVersion = specVersionresult.implementationVersion = implementationVersionresult.description = descriptionproc newVkApplicationInfo*(sType: VkStructureType = VkStructureTypeApplicationInfo, pNext: pointer = nil, pApplicationName: cstring, applicationVersion: uint32, pEngineName: cstring, engineVersion: uint32, apiVersion: uint32): VkApplicationInfo =result.sType = sTyperesult.pNext = pNextresult.pApplicationName = pApplicationNameresult.applicationVersion = applicationVersionresult.pEngineName = pEngineNameresult.engineVersion = engineVersionresult.apiVersion = apiVersionproc newVkAllocationCallbacks*(pUserData: pointer = nil, pfnAllocation: PFN_vkAllocationFunction, pfnReallocation: PFN_vkReallocationFunction, pfnFree: PFN_vkFreeFunction, pfnInternalAllocation: PFN_vkInternalAllocationNotification, pfnInternalFree: PFN_vkInternalFreeNotification): VkAllocationCallbacks =result.pUserData = pUserDataresult.pfnAllocation = pfnAllocationresult.pfnReallocation = pfnReallocationresult.pfnFree = pfnFreeresult.pfnInternalAllocation = pfnInternalAllocationresult.pfnInternalFree = pfnInternalFreeproc newVkDeviceQueueCreateInfo*(sType: VkStructureType = VkStructureTypeDeviceQueueCreateInfo, pNext: pointer = nil, flags: VkDeviceQueueCreateFlags = 0.VkDeviceQueueCreateFlags, queueFamilyIndex: uint32, queueCount: uint32, pQueuePriorities: ptr float32): VkDeviceQueueCreateInfo =result.sType = sTyperesult.pNext = pNextresult.flags = flagsresult.queueFamilyIndex = queueFamilyIndexresult.queueCount = queueCountresult.pQueuePriorities = pQueuePrioritiesproc newVkDeviceCreateInfo*(sType: VkStructureType = VkStructureTypeDeviceCreateInfo, pNext: pointer = nil, flags: VkDeviceCreateFlags = 0.VkDeviceCreateFlags, queueCreateInfoCount: uint32, pQueueCreateInfos: ptr VkDeviceQueueCreateInfo, enabledLayerCount: uint32, ppEnabledLayerNames: cstringArray, enabledExtensionCount: uint32, ppEnabledExtensionNames: cstringArray, pEnabledFeatures: ptr VkPhysicalDeviceFeatures): VkDeviceCreateInfo =result.sType = sTyperesult.pNext = pNextresult.flags = flagsresult.queueCreateInfoCount = queueCreateInfoCountresult.pQueueCreateInfos = pQueueCreateInfosresult.enabledLayerCount = enabledLayerCountresult.ppEnabledLayerNames = ppEnabledLayerNamesresult.enabledExtensionCount = enabledExtensionCountresult.ppEnabledExtensionNames = ppEnabledExtensionNamesresult.pEnabledFeatures = pEnabledFeaturesproc newVkInstanceCreateInfo*( sType: VkStructureType = VkStructureTypeInstanceCreateInfo, pNext: pointer = nil, flags: VkInstanceCreateFlags = 0.VkInstanceCreateFlags, pApplicationInfo: ptr VkApplicationInfo, enabledExtensionCount: uint32, ppEnabledExtensionNames: cstringArray = allocCStringArray([]), enabled_layer_count: uint32 = 0, ppEnabledLayerNames: cstringArray = allocCStringArray([])): VkInstanceCreateInfo =result.sType = sTyperesult.pNext = pNextresult.flags = flagsresult.pApplicationInfo = pApplicationInforesult.enabledLayerCount = enabledLayerCountresult.ppEnabledLayerNames = ppEnabledLayerNamesresult.enabledExtensionCount = enabledExtensionCountresult.ppEnabledExtensionNames = ppEnabledExtensionNamesproc newVkQueueFamilyProperties*(queueFlags: VkQueueFlags, queueCount: uint32, timestampValidBits: uint32, minImageTransferGranularity: VkExtent3D): VkQueueFamilyProperties =result.queueFlags = queueFlagsresult.queueCount = queueCountresult.timestampValidBits = timestampValidBitsresult.minImageTransferGranularity = minImageTransferGranularityproc newVkPhysicalDeviceMemoryProperties*(memoryTypeCount: uint32, memoryTypes: array[VK_MAX_MEMORY_TYPES, VkMemoryType], memoryHeapCount: uint32, memoryHeaps: array[VK_MAX_MEMORY_HEAPS, VkMemoryHeap]): VkPhysicalDeviceMemoryProperties =result.memoryTypeCount = memoryTypeCountresult.memoryTypes = memoryTypesresult.memoryHeapCount = memoryHeapCountresult.memoryHeaps = memoryHeapsproc newVkMemoryAllocateInfo*(sType: VkStructureType = VkStructureTypeMemoryAllocateInfo, pNext: pointer = nil, allocationSize: VkDeviceSize, memoryTypeIndex: uint32): VkMemoryAllocateInfo =result.sType = sTyperesult.pNext = pNextresult.allocationSize = allocationSizeresult.memoryTypeIndex = memoryTypeIndexproc newVkMemoryRequirements*(size: VkDeviceSize, alignment: VkDeviceSize, memoryTypeBits: uint32): VkMemoryRequirements =result.size = sizeresult.alignment = alignmentresult.memoryTypeBits = memoryTypeBitsproc newVkSparseImageFormatProperties*(aspectMask: VkImageAspectFlags, imageGranularity: VkExtent3D, flags: VkSparseImageFormatFlags = 0.VkSparseImageFormatFlags): VkSparseImageFormatProperties =result.aspectMask = aspectMaskresult.imageGranularity = imageGranularityresult.flags = flagsproc newVkSparseImageMemoryRequirements*(formatProperties: VkSparseImageFormatProperties, imageMipTailFirstLod: uint32, imageMipTailSize: VkDeviceSize, imageMipTailOffset: VkDeviceSize, imageMipTailStride: VkDeviceSize): VkSparseImageMemoryRequirements =result.formatProperties = formatPropertiesresult.imageMipTailFirstLod = imageMipTailFirstLodresult.imageMipTailSize = imageMipTailSizeresult.imageMipTailOffset = imageMipTailOffsetresult.imageMipTailStride = imageMipTailStrideproc newVkMemoryType*(propertyFlags: VkMemoryPropertyFlags, heapIndex: uint32): VkMemoryType =result.propertyFlags = propertyFlagsresult.heapIndex = heapIndexproc newVkMemoryHeap*(size: VkDeviceSize, flags: VkMemoryHeapFlags = 0.VkMemoryHeapFlags): VkMemoryHeap =result.size = sizeresult.flags = flagsproc newVkFormatProperties*(linearTilingFeatures: VkFormatFeatureFlags, optimalTilingFeatures: VkFormatFeatureFlags, bufferFeatures: VkFormatFeatureFlags): VkFormatProperties =result.linearTilingFeatures = linearTilingFeaturesresult.optimalTilingFeatures = optimalTilingFeaturesresult.bufferFeatures = bufferFeaturesproc newVkImageFormatProperties*(maxExtent: VkExtent3D, maxMipLevels: uint32, maxArrayLayers: uint32, sampleCounts: VkSampleCountFlags, maxResourceSize: VkDeviceSize): VkImageFormatProperties =result.maxExtent = maxExtentresult.maxMipLevels = maxMipLevelsresult.maxArrayLayers = maxArrayLayersresult.sampleCounts = sampleCountsresult.maxResourceSize = maxResourceSizeproc newVkDescriptorBufferInfo*(buffer: VkBuffer, offset: VkDeviceSize, range: VkDeviceSize): VkDescriptorBufferInfo =result.buffer = bufferresult.offset = offsetresult.range = rangeproc newVkDescriptorImageInfo*(sampler: VkSampler, imageView: VkImageView, imageLayout: VkImageLayout): VkDescriptorImageInfo =result.sampler = samplerresult.imageView = imageViewresult.imageLayout = imageLayoutproc newVkWriteDescriptorSet*(sType: VkStructureType = VkStructureTypeWriteDescriptorSet, pNext: pointer = nil, dstSet: VkDescriptorSet, dstBinding: uint32, dstArrayElement: uint32, descriptorCount: uint32, descriptorType: VkDescriptorType, pImageInfo: ptr VkDescriptorImageInfo, pBufferInfo: ptr ptr VkDescriptorBufferInfo, pTexelBufferView: ptr VkBufferView): VkWriteDescriptorSet =result.sType = sTyperesult.pNext = pNextresult.dstSet = dstSetresult.dstBinding = dstBindingresult.dstArrayElement = dstArrayElementresult.descriptorCount = descriptorCountresult.descriptorType = descriptorTyperesult.pImageInfo = pImageInforesult.pBufferInfo = pBufferInforesult.pTexelBufferView = pTexelBufferViewproc newVkCopyDescriptorSet*(sType: VkStructureType = VkStructureTypeCopyDescriptorSet, pNext: pointer = nil, srcSet: VkDescriptorSet, srcBinding: uint32, srcArrayElement: uint32, dstSet: VkDescriptorSet, dstBinding: uint32, dstArrayElement: uint32, descriptorCount: uint32): VkCopyDescriptorSet =result.sType = sTyperesult.pNext = pNextresult.srcSet = srcSetresult.srcBinding = srcBindingresult.srcArrayElement = srcArrayElementresult.dstSet = dstSetresult.dstBinding = dstBindingresult.dstArrayElement = dstArrayElementresult.descriptorCount = descriptorCountproc newVkBufferCreateInfo*(sType: VkStructureType = VkStructureTypeBufferCreateInfo, pNext: pointer = nil, flags: VkBufferCreateFlags = 0.VkBufferCreateFlags, size: VkDeviceSize, usage: VkBufferUsageFlags, sharingMode: VkSharingMode, queueFamilyIndexCount: uint32, pQueueFamilyIndices: ptr uint32): VkBufferCreateInfo =result.sType = sTyperesult.pNext = pNextresult.flags = flagsresult.size = sizeresult.usage = usageresult.sharingMode = sharingModeresult.queueFamilyIndexCount = queueFamilyIndexCountresult.pQueueFamilyIndices = pQueueFamilyIndicesproc newVkBufferViewCreateInfo*(sType: VkStructureType = VkStructureTypeBufferViewCreateInfo, pNext: pointer = nil, flags: VkBufferViewCreateFlags = 0.VkBufferViewCreateFlags, buffer: VkBuffer, format: VkFormat, offset: VkDeviceSize, range: VkDeviceSize): VkBufferViewCreateInfo =result.sType = sTyperesult.pNext = pNextresult.flags = flagsresult.buffer = bufferresult.format = formatresult.offset = offsetresult.range = rangeproc newVkImageSubresource*(aspectMask: VkImageAspectFlags, mipLevel: uint32, arrayLayer: uint32): VkImageSubresource =result.aspectMask = aspectMaskresult.mipLevel = mipLevelresult.arrayLayer = arrayLayerproc newVkImageSubresourceLayers*(aspectMask: VkImageAspectFlags, mipLevel: uint32, baseArrayLayer: uint32, layerCount: uint32): VkImageSubresourceLayers =result.aspectMask = aspectMaskresult.mipLevel = mipLevelresult.baseArrayLayer = baseArrayLayerresult.layerCount = layerCountproc newVkImageSubresourceRange*(aspectMask: VkImageAspectFlags, baseMipLevel: uint32, levelCount: uint32, baseArrayLayer: uint32, layerCount: uint32): VkImageSubresourceRange =result.aspectMask = aspectMaskresult.baseMipLevel = baseMipLevelresult.levelCount = levelCountresult.baseArrayLayer = baseArrayLayerresult.layerCount = layerCountproc newVkMemoryBarrier*(sType: VkStructureType = VkStructureTypeMemoryBarrier, pNext: pointer = nil, srcAccessMask: VkAccessFlags, dstAccessMask: VkAccessFlags): VkMemoryBarrier =result.sType = sTyperesult.pNext = pNextresult.srcAccessMask = srcAccessMaskresult.dstAccessMask = dstAccessMaskproc newVkBufferMemoryBarrier*(sType: VkStructureType = VkStructureTypeBufferMemoryBarrier, pNext: pointer = nil, srcAccessMask: VkAccessFlags, dstAccessMask: VkAccessFlags, srcQueueFamilyIndex: uint32, dstQueueFamilyIndex: uint32, buffer: VkBuffer, offset: VkDeviceSize, size: VkDeviceSize): VkBufferMemoryBarrier =result.sType = sTyperesult.pNext = pNextresult.srcAccessMask = srcAccessMaskresult.dstAccessMask = dstAccessMaskresult.srcQueueFamilyIndex = srcQueueFamilyIndexresult.dstQueueFamilyIndex = dstQueueFamilyIndexresult.buffer = bufferresult.offset = offsetresult.size = sizeproc newVkImageMemoryBarrier*(sType: VkStructureType = VkStructureTypeImageMemoryBarrier, pNext: pointer = nil, srcAccessMask: VkAccessFlags, dstAccessMask: VkAccessFlags, oldLayout: VkImageLayout, newLayout: VkImageLayout, srcQueueFamilyIndex: uint32, dstQueueFamilyIndex: uint32, image: VkImage, subresourceRange: VkImageSubresourceRange): VkImageMemoryBarrier =result.sType = sTyperesult.pNext = pNextresult.srcAccessMask = srcAccessMaskresult.dstAccessMask = dstAccessMaskresult.oldLayout = oldLayoutresult.newLayout = newLayoutresult.srcQueueFamilyIndex = srcQueueFamilyIndexresult.dstQueueFamilyIndex = dstQueueFamilyIndexresult.image = imageresult.subresourceRange = subresourceRange# ProcsvarvkCreateInstance*: proc(pCreateInfo: ptr VkInstanceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pInstance: ptr VkInstance ): VkResult {.stdcall.}vkDestroyInstance*: proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkEnumeratePhysicalDevices*: proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32 , pPhysicalDevices: ptr VkPhysicalDevice ): VkResult {.stdcall.}vkGetDeviceProcAddr*: proc(device: VkDevice, pName: cstring ): PFN_vkVoidFunction {.stdcall.}vkGetInstanceProcAddr*: proc(instance: VkInstance, pName: cstring ): PFN_vkVoidFunction {.stdcall.}vkGetPhysicalDeviceProperties*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties ): void {.stdcall.}vkGetPhysicalDeviceQueueFamilyProperties*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties ): void {.stdcall.}vkGetPhysicalDeviceMemoryProperties*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties ): void {.stdcall.}vkGetPhysicalDeviceFeatures*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures ): void {.stdcall.}vkGetPhysicalDeviceFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties ): void {.stdcall.}vkGetPhysicalDeviceImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties ): VkResult {.stdcall.}vkCreateDevice*: proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDevice: ptr VkDevice ): VkResult {.stdcall.}vkDestroyDevice*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkEnumerateInstanceVersion*: proc(pApiVersion: ptr uint32 ): VkResult {.stdcall.}vkEnumerateInstanceLayerProperties*: proc(pPropertyCount: ptr uint32 , pProperties: ptr VkLayerProperties ): VkResult {.stdcall.}vkEnumerateInstanceExtensionProperties*: proc(pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}vkEnumerateDeviceLayerProperties*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkLayerProperties ): VkResult {.stdcall.}vkEnumerateDeviceExtensionProperties*: proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}vkGetDeviceQueue*: proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue ): void {.stdcall.}vkQueueSubmit*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo , fence: VkFence): VkResult {.stdcall.}vkQueueWaitIdle*: proc(queue: VkQueue): VkResult {.stdcall.}vkDeviceWaitIdle*: proc(device: VkDevice): VkResult {.stdcall.}vkAllocateMemory*: proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo , pAllocator: ptr VkAllocationCallbacks , pMemory: ptr VkDeviceMemory ): VkResult {.stdcall.}vkFreeMemory*: proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkMapMemory*: proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer ): VkResult {.stdcall.}vkUnmapMemory*: proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}vkFlushMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange ): VkResult {.stdcall.}vkInvalidateMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange ): VkResult {.stdcall.}vkGetDeviceMemoryCommitment*: proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize ): void {.stdcall.}vkGetBufferMemoryRequirements*: proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}vkBindBufferMemory*: proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}vkGetImageMemoryRequirements*: proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}vkBindImageMemory*: proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}vkGetImageSparseMemoryRequirements*: proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32 , pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements ): void {.stdcall.}vkGetPhysicalDeviceSparseImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32 , pProperties: ptr VkSparseImageFormatProperties ): void {.stdcall.}vkQueueBindSparse*: proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo , fence: VkFence): VkResult {.stdcall.}vkCreateFence*: proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}vkDestroyFence*: proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkResetFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence ): VkResult {.stdcall.}vkGetFenceStatus*: proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}vkWaitForFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence , waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.}vkCreateSemaphore*: proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSemaphore: ptr VkSemaphore ): VkResult {.stdcall.}vkDestroySemaphore*: proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateEvent*: proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo , pAllocator: ptr VkAllocationCallbacks , pEvent: ptr VkEvent ): VkResult {.stdcall.}vkDestroyEvent*: proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetEventStatus*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}vkSetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}vkResetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}vkCreateQueryPool*: proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pQueryPool: ptr VkQueryPool ): VkResult {.stdcall.}vkDestroyQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetQueryPoolResults*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: uint, pData: pointer , stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.}vkResetQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}vkCreateBuffer*: proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo , pAllocator: ptr VkAllocationCallbacks , pBuffer: ptr VkBuffer ): VkResult {.stdcall.}vkDestroyBuffer*: proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateBufferView*: proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkBufferView ): VkResult {.stdcall.}vkDestroyBufferView*: proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateImage*: proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo , pAllocator: ptr VkAllocationCallbacks , pImage: ptr VkImage ): VkResult {.stdcall.}vkDestroyImage*: proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetImageSubresourceLayout*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource , pLayout: ptr VkSubresourceLayout ): void {.stdcall.}vkCreateImageView*: proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkImageView ): VkResult {.stdcall.}vkDestroyImageView*: proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateShaderModule*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo , pAllocator: ptr VkAllocationCallbacks , pShaderModule: ptr VkShaderModule ): VkResult {.stdcall.}vkDestroyShaderModule*: proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreatePipelineCache*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelineCache: ptr VkPipelineCache ): VkResult {.stdcall.}vkDestroyPipelineCache*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetPipelineCacheData*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr uint , pData: pointer ): VkResult {.stdcall.}vkMergePipelineCaches*: proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache ): VkResult {.stdcall.}vkCreateGraphicsPipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}vkCreateComputePipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}vkDestroyPipeline*: proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreatePipelineLayout*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelineLayout: ptr VkPipelineLayout ): VkResult {.stdcall.}vkDestroyPipelineLayout*: proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateSampler*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSampler: ptr VkSampler ): VkResult {.stdcall.}vkDestroySampler*: proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateDescriptorSetLayout*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSetLayout: ptr VkDescriptorSetLayout ): VkResult {.stdcall.}vkDestroyDescriptorSetLayout*: proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateDescriptorPool*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDescriptorPool: ptr VkDescriptorPool ): VkResult {.stdcall.}vkDestroyDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkResetDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.}vkAllocateDescriptorSets*: proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo , pDescriptorSets: ptr VkDescriptorSet ): VkResult {.stdcall.}vkFreeDescriptorSets*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet ): VkResult {.stdcall.}vkUpdateDescriptorSets*: proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet , descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet ): void {.stdcall.}vkCreateFramebuffer*: proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFramebuffer: ptr VkFramebuffer ): VkResult {.stdcall.}vkDestroyFramebuffer*: proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkCreateRenderPass*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo , pAllocator: ptr VkAllocationCallbacks , pRenderPass: ptr VkRenderPass ): VkResult {.stdcall.}vkDestroyRenderPass*: proc(device: VkDevice, render_pass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetRenderAreaGranularity*: proc(device: VkDevice, render_pass: VkRenderPass, pGranularity: ptr VkExtent2D ): void {.stdcall.}vkCreateCommandPool*: proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pCommandPool: ptr VkCommandPool ): VkResult {.stdcall.}vkDestroyCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkResetCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.}vkAllocateCommandBuffers*: proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo , pCommandBuffers: ptr VkCommandBuffer ): VkResult {.stdcall.}vkFreeCommandBuffers*: proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer ): void {.stdcall.}vkBeginCommandBuffer*: proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo ): VkResult {.stdcall.}vkEndCommandBuffer*: proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}vkResetCommandBuffer*: proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.}vkCmdBindPipeline*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.}vkCmdSetViewport*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport ): void {.stdcall.}vkCmdSetScissor*: proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D ): void {.stdcall.}vkCmdSetLineWidth*: proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.}vkCmdSetDepthBias*: proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.}vkCmdSetBlendConstants*: proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.}vkCmdSetDepthBounds*: proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.}vkCmdSetStencilCompareMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.}vkCmdSetStencilWriteMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.}vkCmdSetStencilReference*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.}vkCmdBindDescriptorSets*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet , dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32 ): void {.stdcall.}vkCmdBindIndexBuffer*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.}vkCmdBindVertexBuffers*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize ): void {.stdcall.}vkCmdDraw*: proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.}vkCmdDrawIndexed*: proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.}vkCmdDrawIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}vkCmdDrawIndexedIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}vkCmdDispatch*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}vkCmdDispatchIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}vkCmdCopyBuffer*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy ): void {.stdcall.}vkCmdCopyImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy ): void {.stdcall.}vkCmdBlitImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit , filter: VkFilter): void {.stdcall.}vkCmdCopyBufferToImage*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy ): void {.stdcall.}vkCmdCopyImageToBuffer*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy ): void {.stdcall.}vkCmdUpdateBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer ): void {.stdcall.}vkCmdFillBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.}vkCmdClearColorImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue , rangeCount: uint32, pRanges: ptr VkImageSubresourceRange ): void {.stdcall.}vkCmdClearDepthStencilImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue , rangeCount: uint32, pRanges: ptr VkImageSubresourceRange ): void {.stdcall.}vkCmdClearAttachments*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment , rectCount: uint32, pRects: ptr VkClearRect ): void {.stdcall.}vkCmdResolveImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve ): void {.stdcall.}vkCmdSetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}vkCmdResetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}vkCmdWaitEvents*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent , srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier , bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier , imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier ): void {.stdcall.}vkCmdPipelineBarrier*: proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier , bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier , imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier ): void {.stdcall.}vkCmdBeginQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.}vkCmdEndQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.}vkCmdBeginConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT ): void {.stdcall.}vkCmdEndConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.}vkCmdResetQueryPool*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}vkCmdWriteTimestamp*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.}vkCmdCopyQueryPoolResults*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.}vkCmdPushConstants*: proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer ): void {.stdcall.}vkCmdBeginRenderPass*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo , contents: VkSubpassContents): void {.stdcall.}vkCmdNextSubpass*: proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.}vkCmdEndRenderPass*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.}vkCmdExecuteCommands*: proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer ): void {.stdcall.}vkCreateAndroidSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkAndroidSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceDisplayPropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayPropertiesKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceDisplayPlanePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayPlanePropertiesKHR ): VkResult {.stdcall.}vkGetDisplayPlaneSupportedDisplaysKHR*: proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32 , pDisplays: ptr VkDisplayKHR ): VkResult {.stdcall.}vkGetDisplayModePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayModePropertiesKHR ): VkResult {.stdcall.}vkCreateDisplayModeKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pMode: ptr VkDisplayModeKHR ): VkResult {.stdcall.}vkGetDisplayPlaneCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR ): VkResult {.stdcall.}vkCreateDisplayPlaneSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCreateSharedSwapchainsKHR*: proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSwapchains: ptr VkSwapchainKHR ): VkResult {.stdcall.}vkDestroySurfaceKHR*: proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetPhysicalDeviceSurfaceSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32 ): VkResult {.stdcall.}vkGetPhysicalDeviceSurfaceCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceSurfaceFormatsKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32 , pSurfaceFormats: ptr VkSurfaceFormatKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceSurfacePresentModesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32 , pPresentModes: ptr VkPresentModeKHR ): VkResult {.stdcall.}vkCreateSwapchainKHR*: proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSwapchain: ptr VkSwapchainKHR ): VkResult {.stdcall.}vkDestroySwapchainKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetSwapchainImagesKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32 , pSwapchainImages: ptr VkImage ): VkResult {.stdcall.}vkAcquireNextImageKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32 ): VkResult {.stdcall.}vkQueuePresentKHR*: proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR ): VkResult {.stdcall.}vkCreateViSurfaceNN*: proc(instance: VkInstance, pCreateInfo: ptr VkViSurfaceCreateInfoNN , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCreateWaylandSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkWaylandSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceWaylandPresentationSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, display: ptr wl_display ): VkBool32 {.stdcall.}vkCreateWin32SurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceWin32PresentationSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32): VkBool32 {.stdcall.}vkCreateXlibSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkXlibSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceXlibPresentationSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, dpy: ptr Display , visualID: VisualID): VkBool32 {.stdcall.}vkCreateXcbSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkXcbSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceXcbPresentationSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, connection: ptr xcb_connection_t , visual_id: xcb_visualid_t): VkBool32 {.stdcall.}vkCreateDirectFBSurfaceEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDirectFBSurfaceCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceDirectFBPresentationSupportEXT*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, dfb: ptr IDirectFB ): VkBool32 {.stdcall.}vkCreateImagePipeSurfaceFUCHSIA*: proc(instance: VkInstance, pCreateInfo: ptr VkImagePipeSurfaceCreateInfoFUCHSIA , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCreateStreamDescriptorSurfaceGGP*: proc(instance: VkInstance, pCreateInfo: ptr VkStreamDescriptorSurfaceCreateInfoGGP , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCreateDebugReportCallbackEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pCallback: ptr VkDebugReportCallbackEXT ): VkResult {.stdcall.}vkDestroyDebugReportCallbackEXT*: proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkDebugReportMessageEXT*: proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, `object`: uint64, location: uint, messageCode: int32, pLayerPrefix: cstring , pMessage: cstring ): void {.stdcall.}vkDebugMarkerSetObjectNameEXT*: proc(device: VkDevice, pNameInfo: ptr VkDebugMarkerObjectNameInfoEXT ): VkResult {.stdcall.}vkDebugMarkerSetObjectTagEXT*: proc(device: VkDevice, pTagInfo: ptr VkDebugMarkerObjectTagInfoEXT ): VkResult {.stdcall.}vkCmdDebugMarkerBeginEXT*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkDebugMarkerMarkerInfoEXT ): void {.stdcall.}vkCmdDebugMarkerEndEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.}vkCmdDebugMarkerInsertEXT*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkDebugMarkerMarkerInfoEXT ): void {.stdcall.}vkGetPhysicalDeviceExternalImageFormatPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV ): VkResult {.stdcall.}vkGetMemoryWin32HandleNV*: proc(device: VkDevice, memory: VkDeviceMemory, handleType: VkExternalMemoryHandleTypeFlagsNV, pHandle: ptr HANDLE ): VkResult {.stdcall.}vkCmdExecuteGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV ): void {.stdcall.}vkCmdPreprocessGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV ): void {.stdcall.}vkCmdBindPipelineShaderGroupNV*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.}vkGetGeneratedCommandsMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}vkCreateIndirectCommandsLayoutNV*: proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV , pAllocator: ptr VkAllocationCallbacks , pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV ): VkResult {.stdcall.}vkDestroyIndirectCommandsLayoutNV*: proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetPhysicalDeviceFeatures2*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2 ): void {.stdcall.}vkGetPhysicalDeviceProperties2*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2 ): void {.stdcall.}vkGetPhysicalDeviceFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2 ): void {.stdcall.}vkGetPhysicalDeviceImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2 , pImageFormatProperties: ptr VkImageFormatProperties2 ): VkResult {.stdcall.}vkGetPhysicalDeviceQueueFamilyProperties2*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties2 ): void {.stdcall.}vkGetPhysicalDeviceMemoryProperties2*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2 ): void {.stdcall.}vkGetPhysicalDeviceSparseImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2 , pPropertyCount: ptr uint32 , pProperties: ptr VkSparseImageFormatProperties2 ): void {.stdcall.}vkCmdPushDescriptorSetKHR*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet ): void {.stdcall.}vkTrimCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.}vkGetPhysicalDeviceExternalBufferProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo , pExternalBufferProperties: ptr VkExternalBufferProperties ): void {.stdcall.}vkGetMemoryWin32HandleKHR*: proc(device: VkDevice, pGetWin32HandleInfo: ptr VkMemoryGetWin32HandleInfoKHR , pHandle: ptr HANDLE ): VkResult {.stdcall.}vkGetMemoryWin32HandlePropertiesKHR*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, handle: HANDLE, pMemoryWin32HandleProperties: ptr VkMemoryWin32HandlePropertiesKHR ): VkResult {.stdcall.}vkGetMemoryFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR , pFd: ptr int ): VkResult {.stdcall.}vkGetMemoryFdPropertiesKHR*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: int, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceExternalSemaphoreProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo , pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties ): void {.stdcall.}vkGetSemaphoreWin32HandleKHR*: proc(device: VkDevice, pGetWin32HandleInfo: ptr VkSemaphoreGetWin32HandleInfoKHR , pHandle: ptr HANDLE ): VkResult {.stdcall.}vkImportSemaphoreWin32HandleKHR*: proc(device: VkDevice, pImportSemaphoreWin32HandleInfo: ptr VkImportSemaphoreWin32HandleInfoKHR ): VkResult {.stdcall.}vkGetSemaphoreFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR , pFd: ptr int ): VkResult {.stdcall.}vkImportSemaphoreFdKHR*: proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceExternalFenceProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo , pExternalFenceProperties: ptr VkExternalFenceProperties ): void {.stdcall.}vkGetFenceWin32HandleKHR*: proc(device: VkDevice, pGetWin32HandleInfo: ptr VkFenceGetWin32HandleInfoKHR , pHandle: ptr HANDLE ): VkResult {.stdcall.}vkImportFenceWin32HandleKHR*: proc(device: VkDevice, pImportFenceWin32HandleInfo: ptr VkImportFenceWin32HandleInfoKHR ): VkResult {.stdcall.}vkGetFenceFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR , pFd: ptr int ): VkResult {.stdcall.}vkImportFenceFdKHR*: proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR ): VkResult {.stdcall.}vkReleaseDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.}vkAcquireXlibDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, dpy: ptr Display , display: VkDisplayKHR): VkResult {.stdcall.}vkGetRandROutputDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, dpy: ptr Display , rrOutput: RROutput, pDisplay: ptr VkDisplayKHR ): VkResult {.stdcall.}vkDisplayPowerControlEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT ): VkResult {.stdcall.}vkRegisterDeviceEventEXT*: proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}vkRegisterDisplayEventEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}vkGetSwapchainCounterEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64 ): VkResult {.stdcall.}vkGetPhysicalDeviceSurfaceCapabilities2EXT*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT ): VkResult {.stdcall.}vkEnumeratePhysicalDeviceGroups*: proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32 , pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties ): VkResult {.stdcall.}vkGetDeviceGroupPeerMemoryFeatures*: proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags ): void {.stdcall.}vkBindBufferMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo ): VkResult {.stdcall.}vkBindImageMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo ): VkResult {.stdcall.}vkCmdSetDeviceMask*: proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.}vkGetDeviceGroupPresentCapabilitiesKHR*: proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR ): VkResult {.stdcall.}vkGetDeviceGroupSurfacePresentModesKHR*: proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}vkAcquireNextImage2KHR*: proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR , pImageIndex: ptr uint32 ): VkResult {.stdcall.}vkCmdDispatchBase*: proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}vkGetPhysicalDevicePresentRectanglesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32 , pRects: ptr VkRect2D ): VkResult {.stdcall.}vkCreateDescriptorUpdateTemplate*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate ): VkResult {.stdcall.}vkDestroyDescriptorUpdateTemplate*: proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkUpdateDescriptorSetWithTemplate*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer ): void {.stdcall.}vkCmdPushDescriptorSetWithTemplateKHR*: proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer ): void {.stdcall.}vkSetHdrMetadataEXT*: proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR , pMetadata: ptr VkHdrMetadataEXT ): void {.stdcall.}vkGetSwapchainStatusKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}vkGetRefreshCycleDurationGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE ): VkResult {.stdcall.}vkGetPastPresentationTimingGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32 , pPresentationTimings: ptr VkPastPresentationTimingGOOGLE ): VkResult {.stdcall.}vkCreateIOSSurfaceMVK*: proc(instance: VkInstance, pCreateInfo: ptr VkIOSSurfaceCreateInfoMVK , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCreateMacOSSurfaceMVK*: proc(instance: VkInstance, pCreateInfo: ptr VkMacOSSurfaceCreateInfoMVK , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCreateMetalSurfaceEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkMetalSurfaceCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkCmdSetViewportWScalingNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV ): void {.stdcall.}vkCmdSetDiscardRectangleEXT*: proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D ): void {.stdcall.}vkCmdSetSampleLocationsEXT*: proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT ): void {.stdcall.}vkGetPhysicalDeviceMultisamplePropertiesEXT*: proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT ): void {.stdcall.}vkGetPhysicalDeviceSurfaceCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR ): VkResult {.stdcall.}vkGetPhysicalDeviceSurfaceFormats2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pSurfaceFormatCount: ptr uint32 , pSurfaceFormats: ptr VkSurfaceFormat2KHR ): VkResult {.stdcall.}vkGetPhysicalDeviceDisplayProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayProperties2KHR ): VkResult {.stdcall.}vkGetPhysicalDeviceDisplayPlaneProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayPlaneProperties2KHR ): VkResult {.stdcall.}vkGetDisplayModeProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayModeProperties2KHR ): VkResult {.stdcall.}vkGetDisplayPlaneCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR , pCapabilities: ptr VkDisplayPlaneCapabilities2KHR ): VkResult {.stdcall.}vkGetBufferMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2 , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}vkGetImageMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2 , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}vkGetImageSparseMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2 , pSparseMemoryRequirementCount: ptr uint32 , pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2 ): void {.stdcall.}vkCreateSamplerYcbcrConversion*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo , pAllocator: ptr VkAllocationCallbacks , pYcbcrConversion: ptr VkSamplerYcbcrConversion ): VkResult {.stdcall.}vkDestroySamplerYcbcrConversion*: proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetDeviceQueue2*: proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2 , pQueue: ptr VkQueue ): void {.stdcall.}vkCreateValidationCacheEXT*: proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pValidationCache: ptr VkValidationCacheEXT ): VkResult {.stdcall.}vkDestroyValidationCacheEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetValidationCacheDataEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr uint , pData: pointer ): VkResult {.stdcall.}vkMergeValidationCachesEXT*: proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT ): VkResult {.stdcall.}vkGetDescriptorSetLayoutSupport*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo , pSupport: ptr VkDescriptorSetLayoutSupport ): void {.stdcall.}vkGetSwapchainGrallocUsageANDROID*: proc(device: VkDevice, format: VkFormat, imageUsage: VkImageUsageFlags, grallocUsage: ptr int ): VkResult {.stdcall.}vkGetSwapchainGrallocUsage2ANDROID*: proc(device: VkDevice, format: VkFormat, imageUsage: VkImageUsageFlags, swapchainImageUsage: VkSwapchainImageUsageFlagsANDROID, grallocConsumerUsage: ptr uint64 , grallocProducerUsage: ptr uint64 ): VkResult {.stdcall.}vkAcquireImageANDROID*: proc(device: VkDevice, image: VkImage, nativeFenceFd: int, semaphore: VkSemaphore, fence: VkFence): VkResult {.stdcall.}vkQueueSignalReleaseImageANDROID*: proc(queue: VkQueue, waitSemaphoreCount: uint32, pWaitSemaphores: ptr VkSemaphore , image: VkImage, pNativeFenceFd: ptr int ): VkResult {.stdcall.}vkGetShaderInfoAMD*: proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr uint , pInfo: pointer ): VkResult {.stdcall.}vkSetLocalDimmingAMD*: proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.}vkGetPhysicalDeviceCalibrateableTimeDomainsEXT*: proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32 , pTimeDomains: ptr VkTimeDomainEXT ): VkResult {.stdcall.}vkGetCalibratedTimestampsEXT*: proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT , pTimestamps: ptr uint64 , pMaxDeviation: ptr uint64 ): VkResult {.stdcall.}vkSetDebugUtilsObjectNameEXT*: proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT ): VkResult {.stdcall.}vkSetDebugUtilsObjectTagEXT*: proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT ): VkResult {.stdcall.}vkQueueBeginDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}vkQueueEndDebugUtilsLabelEXT*: proc(queue: VkQueue): void {.stdcall.}vkQueueInsertDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}vkCmdBeginDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}vkCmdEndDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.}vkCmdInsertDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}vkCreateDebugUtilsMessengerEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pMessenger: ptr VkDebugUtilsMessengerEXT ): VkResult {.stdcall.}vkDestroyDebugUtilsMessengerEXT*: proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkSubmitDebugUtilsMessageEXT*: proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT ): void {.stdcall.}vkGetMemoryHostPointerPropertiesEXT*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer , pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT ): VkResult {.stdcall.}vkCmdWriteBufferMarkerAMD*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.}vkCreateRenderPass2*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2 , pAllocator: ptr VkAllocationCallbacks , pRenderPass: ptr VkRenderPass ): VkResult {.stdcall.}vkCmdBeginRenderPass2*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo , pSubpassBeginInfo: ptr VkSubpassBeginInfo ): void {.stdcall.}vkCmdNextSubpass2*: proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo , pSubpassEndInfo: ptr VkSubpassEndInfo ): void {.stdcall.}vkCmdEndRenderPass2*: proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo ): void {.stdcall.}vkGetSemaphoreCounterValue*: proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64 ): VkResult {.stdcall.}vkWaitSemaphores*: proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo , timeout: uint64): VkResult {.stdcall.}vkSignalSemaphore*: proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo ): VkResult {.stdcall.}vkGetAndroidHardwareBufferPropertiesANDROID*: proc(device: VkDevice, buffer: ptr AHardwareBuffer , pProperties: ptr VkAndroidHardwareBufferPropertiesANDROID ): VkResult {.stdcall.}vkGetMemoryAndroidHardwareBufferANDROID*: proc(device: VkDevice, pInfo: ptr VkMemoryGetAndroidHardwareBufferInfoANDROID , pBuffer: ptr ptr AHardwareBuffer ): VkResult {.stdcall.}vkCmdDrawIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}vkCmdDrawIndexedIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}vkCmdSetCheckpointNV*: proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer ): void {.stdcall.}vkGetQueueCheckpointDataNV*: proc(queue: VkQueue, pCheckpointDataCount: ptr uint32 , pCheckpointData: ptr VkCheckpointDataNV ): void {.stdcall.}vkCmdBindTransformFeedbackBuffersEXT*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize , pSizes: ptr VkDeviceSize ): void {.stdcall.}vkCmdBeginTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer , pCounterBufferOffsets: ptr VkDeviceSize ): void {.stdcall.}vkCmdEndTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer , pCounterBufferOffsets: ptr VkDeviceSize ): void {.stdcall.}vkCmdBeginQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.}vkCmdEndQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.}vkCmdDrawIndirectByteCountEXT*: proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.}vkCmdSetExclusiveScissorNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D ): void {.stdcall.}vkCmdBindShadingRateImageNV*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}vkCmdSetViewportShadingRatePaletteNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV ): void {.stdcall.}vkCmdSetCoarseSampleOrderNV*: proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV ): void {.stdcall.}vkCmdDrawMeshTasksNV*: proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.}vkCmdDrawMeshTasksIndirectNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}vkCmdDrawMeshTasksIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}vkCompileDeferredNV*: proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.}vkCreateAccelerationStructureNV*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV , pAllocator: ptr VkAllocationCallbacks , pAccelerationStructure: ptr VkAccelerationStructureNV ): VkResult {.stdcall.}vkDestroyAccelerationStructureKHR*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetAccelerationStructureMemoryRequirementsKHR*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoKHR , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}vkGetAccelerationStructureMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV , pMemoryRequirements: ptr VkMemoryRequirements2KHR ): void {.stdcall.}vkBindAccelerationStructureMemoryKHR*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoKHR ): VkResult {.stdcall.}vkCmdCopyAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureKHR, src: VkAccelerationStructureKHR, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.}vkCmdCopyAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR ): void {.stdcall.}vkCopyAccelerationStructureKHR*: proc(device: VkDevice, pInfo: ptr VkCopyAccelerationStructureInfoKHR ): VkResult {.stdcall.}vkCmdCopyAccelerationStructureToMemoryKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR ): void {.stdcall.}vkCopyAccelerationStructureToMemoryKHR*: proc(device: VkDevice, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR ): VkResult {.stdcall.}vkCmdCopyMemoryToAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR ): void {.stdcall.}vkCopyMemoryToAccelerationStructureKHR*: proc(device: VkDevice, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR ): VkResult {.stdcall.}vkCmdWriteAccelerationStructuresPropertiesKHR*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR , queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}vkCmdBuildAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV , instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureKHR, src: VkAccelerationStructureKHR, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.}vkWriteAccelerationStructuresPropertiesKHR*: proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR , queryType: VkQueryType, dataSize: uint, pData: pointer , stride: uint): VkResult {.stdcall.}vkCmdTraceRaysKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedBufferRegionKHR , pMissShaderBindingTable: ptr VkStridedBufferRegionKHR , pHitShaderBindingTable: ptr VkStridedBufferRegionKHR , pCallableShaderBindingTable: ptr VkStridedBufferRegionKHR , width: uint32, height: uint32, depth: uint32): void {.stdcall.}vkCmdTraceRaysNV*: proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.}vkGetRayTracingShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: uint, pData: pointer ): VkResult {.stdcall.}vkGetRayTracingCaptureReplayShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: uint, pData: pointer ): VkResult {.stdcall.}vkGetAccelerationStructureHandleNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, dataSize: uint, pData: pointer ): VkResult {.stdcall.}vkCreateRayTracingPipelinesNV*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}vkCreateRayTracingPipelinesKHR*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}vkGetPhysicalDeviceCooperativeMatrixPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkCooperativeMatrixPropertiesNV ): VkResult {.stdcall.}vkCmdTraceRaysIndirectKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedBufferRegionKHR , pMissShaderBindingTable: ptr VkStridedBufferRegionKHR , pHitShaderBindingTable: ptr VkStridedBufferRegionKHR , pCallableShaderBindingTable: ptr VkStridedBufferRegionKHR , buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}vkGetDeviceAccelerationStructureCompatibilityKHR*: proc(device: VkDevice, version: ptr VkAccelerationStructureVersionKHR ): VkResult {.stdcall.}vkGetImageViewHandleNVX*: proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX ): uint32 {.stdcall.}vkGetImageViewAddressNVX*: proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX ): VkResult {.stdcall.}vkGetPhysicalDeviceSurfacePresentModes2EXT*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pPresentModeCount: ptr uint32 , pPresentModes: ptr VkPresentModeKHR ): VkResult {.stdcall.}vkGetDeviceGroupSurfacePresentModes2EXT*: proc(device: VkDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}vkAcquireFullScreenExclusiveModeEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}vkReleaseFullScreenExclusiveModeEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32 , pCounters: ptr VkPerformanceCounterKHR , pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR*: proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR , pNumPasses: ptr uint32 ): void {.stdcall.}vkAcquireProfilingLockKHR*: proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR ): VkResult {.stdcall.}vkReleaseProfilingLockKHR*: proc(device: VkDevice): void {.stdcall.}vkGetImageDrmFormatModifierPropertiesEXT*: proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT ): VkResult {.stdcall.}vkGetBufferOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo ): uint64 {.stdcall.}vkGetBufferDeviceAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo ): VkDeviceAddress {.stdcall.}vkCreateHeadlessSurfaceEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV*: proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32 , pCombinations: ptr VkFramebufferMixedSamplesCombinationNV ): VkResult {.stdcall.}vkInitializePerformanceApiINTEL*: proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL ): VkResult {.stdcall.}vkUninitializePerformanceApiINTEL*: proc(device: VkDevice): void {.stdcall.}vkCmdSetPerformanceMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL ): VkResult {.stdcall.}vkCmdSetPerformanceStreamMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL ): VkResult {.stdcall.}vkCmdSetPerformanceOverrideINTEL*: proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL ): VkResult {.stdcall.}vkAcquirePerformanceConfigurationINTEL*: proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL , pConfiguration: ptr VkPerformanceConfigurationINTEL ): VkResult {.stdcall.}vkReleasePerformanceConfigurationINTEL*: proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}vkQueueSetPerformanceConfigurationINTEL*: proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}vkGetPerformanceParameterINTEL*: proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL ): VkResult {.stdcall.}vkGetDeviceMemoryOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo ): uint64 {.stdcall.}vkGetPipelineExecutablePropertiesKHR*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR , pExecutableCount: ptr uint32 , pProperties: ptr VkPipelineExecutablePropertiesKHR ): VkResult {.stdcall.}vkGetPipelineExecutableStatisticsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR , pStatisticCount: ptr uint32 , pStatistics: ptr VkPipelineExecutableStatisticKHR ): VkResult {.stdcall.}vkGetPipelineExecutableInternalRepresentationsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR , pInternalRepresentationCount: ptr uint32 , pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR ): VkResult {.stdcall.}vkCmdSetLineStippleEXT*: proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.}vkGetPhysicalDeviceToolPropertiesEXT*: proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32 , pToolProperties: ptr VkPhysicalDeviceToolPropertiesEXT ): VkResult {.stdcall.}vkCreateAccelerationStructureKHR*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pAccelerationStructure: ptr VkAccelerationStructureKHR ): VkResult {.stdcall.}vkCmdBuildAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR , ppOffsetInfos: ptr ptr VkAccelerationStructureBuildOffsetInfoKHR ): void {.stdcall.}vkCmdBuildAccelerationStructureIndirectKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR , indirectBuffer: VkBuffer, indirectOffset: VkDeviceSize, indirectStride: uint32): void {.stdcall.}vkBuildAccelerationStructureKHR*: proc(device: VkDevice, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR , ppOffsetInfos: ptr ptr VkAccelerationStructureBuildOffsetInfoKHR ): VkResult {.stdcall.}vkGetAccelerationStructureDeviceAddressKHR*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR ): VkDeviceAddress {.stdcall.}vkCreateDeferredOperationKHR*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks , pDeferredOperation: ptr VkDeferredOperationKHR ): VkResult {.stdcall.}vkDestroyDeferredOperationKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkGetDeferredOperationMaxConcurrencyKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.}vkGetDeferredOperationResultKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}vkDeferredOperationJoinKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}vkCmdSetCullModeEXT*: proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.}vkCmdSetFrontFaceEXT*: proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.}vkCmdSetPrimitiveTopologyEXT*: proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.}vkCmdSetViewportWithCountEXT*: proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport ): void {.stdcall.}vkCmdSetScissorWithCountEXT*: proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D ): void {.stdcall.}vkCmdBindVertexBuffers2EXT*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize , pSizes: ptr VkDeviceSize , pStrides: ptr VkDeviceSize ): void {.stdcall.}vkCmdSetDepthTestEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.}vkCmdSetDepthWriteEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.}vkCmdSetDepthCompareOpEXT*: proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.}vkCmdSetDepthBoundsTestEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.}vkCmdSetStencilTestEnableEXT*: proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.}vkCmdSetStencilOpEXT*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.}vkCreatePrivateDataSlotEXT*: proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pPrivateDataSlot: ptr VkPrivateDataSlotEXT ): VkResult {.stdcall.}vkDestroyPrivateDataSlotEXT*: proc(device: VkDevice, privateDataSlot: VkPrivateDataSlotEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}vkSetPrivateDataEXT*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlotEXT, data: uint64): VkResult {.stdcall.}vkGetPrivateDataEXT*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlotEXT, pData: ptr uint64 ): void {.stdcall.}# Vulkan 1_0proc vkLoad1_0*() =when defined linux:vkCreateInstance = cast[proc(pCreateInfo: ptr VkInstanceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pInstance: ptr VkInstance ): VkResult {.stdcall.}](vkGetProc("vkCreateInstance"))vkDestroyInstance = cast[proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyInstance"))vkEnumeratePhysicalDevices = cast[proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32 , pPhysicalDevices: ptr VkPhysicalDevice ): VkResult {.stdcall.}](vkGetProc("vkEnumeratePhysicalDevices"))vkGetPhysicalDeviceFeatures = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceFeatures"))vkGetPhysicalDeviceFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceFormatProperties"))vkGetPhysicalDeviceImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceImageFormatProperties"))vkGetPhysicalDeviceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceProperties"))vkGetPhysicalDeviceQueueFamilyProperties = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceQueueFamilyProperties"))vkGetPhysicalDeviceMemoryProperties = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceMemoryProperties"))vkGetInstanceProcAddr = cast[proc(instance: VkInstance, pName: cstring ): PFN_vkVoidFunction {.stdcall.}](vkGetProc("vkGetInstanceProcAddr"))vkGetDeviceProcAddr = cast[proc(device: VkDevice, pName: cstring ): PFN_vkVoidFunction {.stdcall.}](vkGetProc("vkGetDeviceProcAddr"))vkCreateDevice = cast[proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDevice: ptr VkDevice ): VkResult {.stdcall.}](vkGetProc("vkCreateDevice"))vkDestroyDevice = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDevice"))vkEnumerateInstanceExtensionProperties = cast[proc(pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateInstanceExtensionProperties"))vkEnumerateDeviceExtensionProperties = cast[proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateDeviceExtensionProperties"))vkEnumerateInstanceLayerProperties = cast[proc(pPropertyCount: ptr uint32 , pProperties: ptr VkLayerProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateInstanceLayerProperties"))vkEnumerateDeviceLayerProperties = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkLayerProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateDeviceLayerProperties"))vkGetDeviceQueue = cast[proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue ): void {.stdcall.}](vkGetProc("vkGetDeviceQueue"))vkQueueSubmit = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo , fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkQueueSubmit"))vkQueueWaitIdle = cast[proc(queue: VkQueue): VkResult {.stdcall.}](vkGetProc("vkQueueWaitIdle"))vkDeviceWaitIdle = cast[proc(device: VkDevice): VkResult {.stdcall.}](vkGetProc("vkDeviceWaitIdle"))vkAllocateMemory = cast[proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo , pAllocator: ptr VkAllocationCallbacks , pMemory: ptr VkDeviceMemory ): VkResult {.stdcall.}](vkGetProc("vkAllocateMemory"))vkFreeMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkFreeMemory"))vkMapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer ): VkResult {.stdcall.}](vkGetProc("vkMapMemory"))vkUnmapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}](vkGetProc("vkUnmapMemory"))vkFlushMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange ): VkResult {.stdcall.}](vkGetProc("vkFlushMappedMemoryRanges"))vkInvalidateMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange ): VkResult {.stdcall.}](vkGetProc("vkInvalidateMappedMemoryRanges"))vkGetDeviceMemoryCommitment = cast[proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkGetDeviceMemoryCommitment"))vkBindBufferMemory = cast[proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetProc("vkBindBufferMemory"))vkBindImageMemory = cast[proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetProc("vkBindImageMemory"))vkGetBufferMemoryRequirements = cast[proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}](vkGetProc("vkGetBufferMemoryRequirements"))vkGetImageMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}](vkGetProc("vkGetImageMemoryRequirements"))vkGetImageSparseMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32 , pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements ): void {.stdcall.}](vkGetProc("vkGetImageSparseMemoryRequirements"))vkGetPhysicalDeviceSparseImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32 , pProperties: ptr VkSparseImageFormatProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSparseImageFormatProperties"))vkQueueBindSparse = cast[proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo , fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkQueueBindSparse"))vkCreateFence = cast[proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}](vkGetProc("vkCreateFence"))vkDestroyFence = cast[proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyFence"))vkResetFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence ): VkResult {.stdcall.}](vkGetProc("vkResetFences"))vkGetFenceStatus = cast[proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkGetFenceStatus"))vkWaitForFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence , waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.}](vkGetProc("vkWaitForFences"))vkCreateSemaphore = cast[proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSemaphore: ptr VkSemaphore ): VkResult {.stdcall.}](vkGetProc("vkCreateSemaphore"))vkDestroySemaphore = cast[proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySemaphore"))vkCreateEvent = cast[proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo , pAllocator: ptr VkAllocationCallbacks , pEvent: ptr VkEvent ): VkResult {.stdcall.}](vkGetProc("vkCreateEvent"))vkDestroyEvent = cast[proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyEvent"))vkGetEventStatus = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetProc("vkGetEventStatus"))vkSetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetProc("vkSetEvent"))vkResetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetProc("vkResetEvent"))vkCreateQueryPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pQueryPool: ptr VkQueryPool ): VkResult {.stdcall.}](vkGetProc("vkCreateQueryPool"))vkDestroyQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyQueryPool"))vkGetQueryPoolResults = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: uint, pData: pointer , stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.}](vkGetProc("vkGetQueryPoolResults"))vkCreateBuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo , pAllocator: ptr VkAllocationCallbacks , pBuffer: ptr VkBuffer ): VkResult {.stdcall.}](vkGetProc("vkCreateBuffer"))vkDestroyBuffer = cast[proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyBuffer"))vkCreateBufferView = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkBufferView ): VkResult {.stdcall.}](vkGetProc("vkCreateBufferView"))vkDestroyBufferView = cast[proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyBufferView"))vkCreateImage = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo , pAllocator: ptr VkAllocationCallbacks , pImage: ptr VkImage ): VkResult {.stdcall.}](vkGetProc("vkCreateImage"))vkDestroyImage = cast[proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyImage"))vkGetImageSubresourceLayout = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource , pLayout: ptr VkSubresourceLayout ): void {.stdcall.}](vkGetProc("vkGetImageSubresourceLayout"))vkCreateImageView = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkImageView ): VkResult {.stdcall.}](vkGetProc("vkCreateImageView"))vkDestroyImageView = cast[proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyImageView"))vkCreateShaderModule = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo , pAllocator: ptr VkAllocationCallbacks , pShaderModule: ptr VkShaderModule ): VkResult {.stdcall.}](vkGetProc("vkCreateShaderModule"))vkDestroyShaderModule = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyShaderModule"))vkCreatePipelineCache = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelineCache: ptr VkPipelineCache ): VkResult {.stdcall.}](vkGetProc("vkCreatePipelineCache"))vkDestroyPipelineCache = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPipelineCache"))vkGetPipelineCacheData = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr uint , pData: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetPipelineCacheData"))vkMergePipelineCaches = cast[proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache ): VkResult {.stdcall.}](vkGetProc("vkMergePipelineCaches"))vkCreateGraphicsPipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}](vkGetProc("vkCreateGraphicsPipelines"))vkCreateComputePipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}](vkGetProc("vkCreateComputePipelines"))vkDestroyPipeline = cast[proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPipeline"))vkCreatePipelineLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelineLayout: ptr VkPipelineLayout ): VkResult {.stdcall.}](vkGetProc("vkCreatePipelineLayout"))vkDestroyPipelineLayout = cast[proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPipelineLayout"))vkCreateSampler = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSampler: ptr VkSampler ): VkResult {.stdcall.}](vkGetProc("vkCreateSampler"))vkDestroySampler = cast[proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySampler"))vkCreateDescriptorSetLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSetLayout: ptr VkDescriptorSetLayout ): VkResult {.stdcall.}](vkGetProc("vkCreateDescriptorSetLayout"))vkDestroyDescriptorSetLayout = cast[proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDescriptorSetLayout"))vkCreateDescriptorPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDescriptorPool: ptr VkDescriptorPool ): VkResult {.stdcall.}](vkGetProc("vkCreateDescriptorPool"))vkDestroyDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDescriptorPool"))vkResetDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.}](vkGetProc("vkResetDescriptorPool"))vkAllocateDescriptorSets = cast[proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo , pDescriptorSets: ptr VkDescriptorSet ): VkResult {.stdcall.}](vkGetProc("vkAllocateDescriptorSets"))vkFreeDescriptorSets = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet ): VkResult {.stdcall.}](vkGetProc("vkFreeDescriptorSets"))vkUpdateDescriptorSets = cast[proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet , descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet ): void {.stdcall.}](vkGetProc("vkUpdateDescriptorSets"))vkCreateFramebuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFramebuffer: ptr VkFramebuffer ): VkResult {.stdcall.}](vkGetProc("vkCreateFramebuffer"))vkDestroyFramebuffer = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyFramebuffer"))vkCreateRenderPass = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo , pAllocator: ptr VkAllocationCallbacks , pRenderPass: ptr VkRenderPass ): VkResult {.stdcall.}](vkGetProc("vkCreateRenderPass"))vkDestroyRenderPass = cast[proc(device: VkDevice, render_pass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyRenderPass"))vkGetRenderAreaGranularity = cast[proc(device: VkDevice, render_pass: VkRenderPass, pGranularity: ptr VkExtent2D ): void {.stdcall.}](vkGetProc("vkGetRenderAreaGranularity"))vkCreateCommandPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pCommandPool: ptr VkCommandPool ): VkResult {.stdcall.}](vkGetProc("vkCreateCommandPool"))vkDestroyCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyCommandPool"))vkResetCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.}](vkGetProc("vkResetCommandPool"))vkAllocateCommandBuffers = cast[proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo , pCommandBuffers: ptr VkCommandBuffer ): VkResult {.stdcall.}](vkGetProc("vkAllocateCommandBuffers"))vkFreeCommandBuffers = cast[proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer ): void {.stdcall.}](vkGetProc("vkFreeCommandBuffers"))vkBeginCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo ): VkResult {.stdcall.}](vkGetProc("vkBeginCommandBuffer"))vkEndCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}](vkGetProc("vkEndCommandBuffer"))vkResetCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.}](vkGetProc("vkResetCommandBuffer"))vkCmdBindPipeline = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.}](vkGetProc("vkCmdBindPipeline"))vkCmdSetViewport = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport ): void {.stdcall.}](vkGetProc("vkCmdSetViewport"))vkCmdSetScissor = cast[proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D ): void {.stdcall.}](vkGetProc("vkCmdSetScissor"))vkCmdSetLineWidth = cast[proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.}](vkGetProc("vkCmdSetLineWidth"))vkCmdSetDepthBias = cast[proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.}](vkGetProc("vkCmdSetDepthBias"))vkCmdSetBlendConstants = cast[proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.}](vkGetProc("vkCmdSetBlendConstants"))vkCmdSetDepthBounds = cast[proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.}](vkGetProc("vkCmdSetDepthBounds"))vkCmdSetStencilCompareMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.}](vkGetProc("vkCmdSetStencilCompareMask"))vkCmdSetStencilWriteMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.}](vkGetProc("vkCmdSetStencilWriteMask"))vkCmdSetStencilReference = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.}](vkGetProc("vkCmdSetStencilReference"))vkCmdBindDescriptorSets = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet , dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32 ): void {.stdcall.}](vkGetProc("vkCmdBindDescriptorSets"))vkCmdBindIndexBuffer = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.}](vkGetProc("vkCmdBindIndexBuffer"))vkCmdBindVertexBuffers = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkCmdBindVertexBuffers"))vkCmdDraw = cast[proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.}](vkGetProc("vkCmdDraw"))vkCmdDrawIndexed = cast[proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndexed"))vkCmdDrawIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndirect"))vkCmdDrawIndexedIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndexedIndirect"))vkCmdDispatch = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetProc("vkCmdDispatch"))vkCmdDispatchIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetProc("vkCmdDispatchIndirect"))vkCmdCopyBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyBuffer"))vkCmdCopyImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyImage"))vkCmdBlitImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit , filter: VkFilter): void {.stdcall.}](vkGetProc("vkCmdBlitImage"))vkCmdCopyBufferToImage = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyBufferToImage"))vkCmdCopyImageToBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyImageToBuffer"))vkCmdUpdateBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer ): void {.stdcall.}](vkGetProc("vkCmdUpdateBuffer"))vkCmdFillBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.}](vkGetProc("vkCmdFillBuffer"))vkCmdClearColorImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue , rangeCount: uint32, pRanges: ptr VkImageSubresourceRange ): void {.stdcall.}](vkGetProc("vkCmdClearColorImage"))vkCmdClearDepthStencilImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue , rangeCount: uint32, pRanges: ptr VkImageSubresourceRange ): void {.stdcall.}](vkGetProc("vkCmdClearDepthStencilImage"))vkCmdClearAttachments = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment , rectCount: uint32, pRects: ptr VkClearRect ): void {.stdcall.}](vkGetProc("vkCmdClearAttachments"))vkCmdResolveImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve ): void {.stdcall.}](vkGetProc("vkCmdResolveImage"))vkCmdSetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetProc("vkCmdSetEvent"))vkCmdResetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetProc("vkCmdResetEvent"))vkCmdWaitEvents = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent , srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier , bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier , imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier ): void {.stdcall.}](vkGetProc("vkCmdWaitEvents"))vkCmdPipelineBarrier = cast[proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier , bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier , imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier ): void {.stdcall.}](vkGetProc("vkCmdPipelineBarrier"))vkCmdBeginQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.}](vkGetProc("vkCmdBeginQuery"))vkCmdEndQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetProc("vkCmdEndQuery"))vkCmdResetQueryPool = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetProc("vkCmdResetQueryPool"))vkCmdWriteTimestamp = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetProc("vkCmdWriteTimestamp"))vkCmdCopyQueryPoolResults = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.}](vkGetProc("vkCmdCopyQueryPoolResults"))vkCmdPushConstants = cast[proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer ): void {.stdcall.}](vkGetProc("vkCmdPushConstants"))vkCmdBeginRenderPass = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo , contents: VkSubpassContents): void {.stdcall.}](vkGetProc("vkCmdBeginRenderPass"))vkCmdNextSubpass = cast[proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.}](vkGetProc("vkCmdNextSubpass"))vkCmdEndRenderPass = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetProc("vkCmdEndRenderPass"))vkCmdExecuteCommands = cast[proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer ): void {.stdcall.}](vkGetProc("vkCmdExecuteCommands"))when defined windows:vkCreateInstance = cast[proc(pCreateInfo: ptr VkInstanceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pInstance: ptr VkInstance ): VkResult {.stdcall.}](vkGetProcAddress("vkCreateInstance"))vkGetInstanceProcAddr = cast[proc(instance: VkInstance, pName: cstring ): PFN_vkVoidFunction {.stdcall.}](vkGetProcAddress("vkGetInstanceProcAddr"))#[ vkDestroyInstance = cast[proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyInstance"))vkGetPhysicalDeviceFeatures = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceFeatures"))vkGetPhysicalDeviceFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceFormatProperties"))vkGetPhysicalDeviceImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceImageFormatProperties"))vkGetPhysicalDeviceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceProperties"))vkGetPhysicalDeviceMemoryProperties = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceMemoryProperties"))vkGetDeviceProcAddr = cast[proc(device: VkDevice, pName: cstring ): PFN_vkVoidFunction {.stdcall.}](vkGetProc("vkGetDeviceProcAddr"))vkCreateDevice = cast[proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDevice: ptr VkDevice ): VkResult {.stdcall.}](vkGetProc("vkCreateDevice"))vkDestroyDevice = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDevice"))vkEnumerateDeviceExtensionProperties = cast[proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateDeviceExtensionProperties"))vkEnumerateInstanceLayerProperties = cast[proc(pPropertyCount: ptr uint32 , pProperties: ptr VkLayerProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateInstanceLayerProperties"))vkEnumerateDeviceLayerProperties = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkLayerProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumerateDeviceLayerProperties"))vkGetDeviceQueue = cast[proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue ): void {.stdcall.}](vkGetProc("vkGetDeviceQueue"))vkQueueSubmit = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo , fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkQueueSubmit"))vkQueueWaitIdle = cast[proc(queue: VkQueue): VkResult {.stdcall.}](vkGetProc("vkQueueWaitIdle"))vkDeviceWaitIdle = cast[proc(device: VkDevice): VkResult {.stdcall.}](vkGetProc("vkDeviceWaitIdle"))vkAllocateMemory = cast[proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo , pAllocator: ptr VkAllocationCallbacks , pMemory: ptr VkDeviceMemory ): VkResult {.stdcall.}](vkGetProc("vkAllocateMemory"))vkFreeMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkFreeMemory"))vkMapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer ): VkResult {.stdcall.}](vkGetProc("vkMapMemory"))vkUnmapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}](vkGetProc("vkUnmapMemory"))vkFlushMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange ): VkResult {.stdcall.}](vkGetProc("vkFlushMappedMemoryRanges"))vkInvalidateMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange ): VkResult {.stdcall.}](vkGetProc("vkInvalidateMappedMemoryRanges"))vkGetDeviceMemoryCommitment = cast[proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkGetDeviceMemoryCommitment"))vkBindBufferMemory = cast[proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetProc("vkBindBufferMemory"))vkBindImageMemory = cast[proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetProc("vkBindImageMemory"))vkGetBufferMemoryRequirements = cast[proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}](vkGetProc("vkGetBufferMemoryRequirements"))vkGetImageMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}](vkGetProc("vkGetImageMemoryRequirements"))vkGetImageSparseMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32 , pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements ): void {.stdcall.}](vkGetProc("vkGetImageSparseMemoryRequirements"))vkGetPhysicalDeviceSparseImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32 , pProperties: ptr VkSparseImageFormatProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSparseImageFormatProperties"))vkQueueBindSparse = cast[proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo , fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkQueueBindSparse"))vkCreateFence = cast[proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}](vkGetProc("vkCreateFence"))vkDestroyFence = cast[proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyFence"))vkResetFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence ): VkResult {.stdcall.}](vkGetProc("vkResetFences"))vkGetFenceStatus = cast[proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkGetFenceStatus"))vkWaitForFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence , waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.}](vkGetProc("vkWaitForFences"))vkDestroySemaphore = cast[proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySemaphore"))vkCreateEvent = cast[proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo , pAllocator: ptr VkAllocationCallbacks , pEvent: ptr VkEvent ): VkResult {.stdcall.}](vkGetProc("vkCreateEvent"))vkDestroyEvent = cast[proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyEvent"))vkGetEventStatus = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetProc("vkGetEventStatus"))vkSetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetProc("vkSetEvent"))vkResetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetProc("vkResetEvent"))vkCreateQueryPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pQueryPool: ptr VkQueryPool ): VkResult {.stdcall.}](vkGetProc("vkCreateQueryPool"))vkDestroyQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyQueryPool"))vkGetQueryPoolResults = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: uint, pData: pointer , stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.}](vkGetProc("vkGetQueryPoolResults"))vkCreateBuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo , pAllocator: ptr VkAllocationCallbacks , pBuffer: ptr VkBuffer ): VkResult {.stdcall.}](vkGetProc("vkCreateBuffer"))vkDestroyBuffer = cast[proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyBuffer"))vkCreateBufferView = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkBufferView ): VkResult {.stdcall.}](vkGetProc("vkCreateBufferView"))vkDestroyBufferView = cast[proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyBufferView"))vkCreateImage = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo , pAllocator: ptr VkAllocationCallbacks , pImage: ptr VkImage ): VkResult {.stdcall.}](vkGetProc("vkCreateImage"))vkDestroyImage = cast[proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyImage"))vkGetImageSubresourceLayout = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource , pLayout: ptr VkSubresourceLayout ): void {.stdcall.}](vkGetProc("vkGetImageSubresourceLayout"))vkCreateImageView = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkImageView ): VkResult {.stdcall.}](vkGetProc("vkCreateImageView"))vkDestroyImageView = cast[proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyImageView"))vkCreateShaderModule = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo , pAllocator: ptr VkAllocationCallbacks , pShaderModule: ptr VkShaderModule ): VkResult {.stdcall.}](vkGetProc("vkCreateShaderModule"))vkDestroyShaderModule = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyShaderModule"))vkCreatePipelineCache = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelineCache: ptr VkPipelineCache ): VkResult {.stdcall.}](vkGetProc("vkCreatePipelineCache"))vkDestroyPipelineCache = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPipelineCache"))vkGetPipelineCacheData = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr uint , pData: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetPipelineCacheData"))vkMergePipelineCaches = cast[proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache ): VkResult {.stdcall.}](vkGetProc("vkMergePipelineCaches"))vkCreateGraphicsPipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}](vkGetProc("vkCreateGraphicsPipelines"))vkCreateComputePipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}](vkGetProc("vkCreateComputePipelines"))vkDestroyPipeline = cast[proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPipeline"))vkCreatePipelineLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo , pAllocator: ptr VkAllocationCallbacks , pPipelineLayout: ptr VkPipelineLayout ): VkResult {.stdcall.}](vkGetProc("vkCreatePipelineLayout"))vkDestroyPipelineLayout = cast[proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPipelineLayout"))vkCreateSampler = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSampler: ptr VkSampler ): VkResult {.stdcall.}](vkGetProc("vkCreateSampler"))vkDestroySampler = cast[proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySampler"))vkCreateDescriptorSetLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSetLayout: ptr VkDescriptorSetLayout ): VkResult {.stdcall.}](vkGetProc("vkCreateDescriptorSetLayout"))vkDestroyDescriptorSetLayout = cast[proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDescriptorSetLayout"))vkCreateDescriptorPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDescriptorPool: ptr VkDescriptorPool ): VkResult {.stdcall.}](vkGetProc("vkCreateDescriptorPool"))vkDestroyDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDescriptorPool"))vkResetDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.}](vkGetProc("vkResetDescriptorPool"))vkAllocateDescriptorSets = cast[proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo , pDescriptorSets: ptr VkDescriptorSet ): VkResult {.stdcall.}](vkGetProc("vkAllocateDescriptorSets"))vkFreeDescriptorSets = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet ): VkResult {.stdcall.}](vkGetProc("vkFreeDescriptorSets"))vkUpdateDescriptorSets = cast[proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet , descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet ): void {.stdcall.}](vkGetProc("vkUpdateDescriptorSets"))vkCreateFramebuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFramebuffer: ptr VkFramebuffer ): VkResult {.stdcall.}](vkGetProc("vkCreateFramebuffer"))vkDestroyFramebuffer = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyFramebuffer"))vkCreateRenderPass = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo , pAllocator: ptr VkAllocationCallbacks , pRenderPass: ptr VkRenderPass ): VkResult {.stdcall.}](vkGetProc("vkCreateRenderPass"))vkDestroyRenderPass = cast[proc(device: VkDevice, render_pass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyRenderPass"))vkGetRenderAreaGranularity = cast[proc(device: VkDevice, render_pass: VkRenderPass, pGranularity: ptr VkExtent2D ): void {.stdcall.}](vkGetProc("vkGetRenderAreaGranularity"))vkCreateCommandPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pCommandPool: ptr VkCommandPool ): VkResult {.stdcall.}](vkGetProc("vkCreateCommandPool"))vkDestroyCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyCommandPool"))vkResetCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.}](vkGetProc("vkResetCommandPool"))vkAllocateCommandBuffers = cast[proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo , pCommandBuffers: ptr VkCommandBuffer ): VkResult {.stdcall.}](vkGetProc("vkAllocateCommandBuffers"))vkFreeCommandBuffers = cast[proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer ): void {.stdcall.}](vkGetProc("vkFreeCommandBuffers"))vkBeginCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo ): VkResult {.stdcall.}](vkGetProc("vkBeginCommandBuffer"))vkEndCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}](vkGetProc("vkEndCommandBuffer"))vkResetCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.}](vkGetProc("vkResetCommandBuffer"))vkCmdBindPipeline = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.}](vkGetProc("vkCmdBindPipeline"))vkCmdSetViewport = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport ): void {.stdcall.}](vkGetProc("vkCmdSetViewport"))vkCmdSetScissor = cast[proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D ): void {.stdcall.}](vkGetProc("vkCmdSetScissor"))vkCmdSetLineWidth = cast[proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.}](vkGetProc("vkCmdSetLineWidth"))vkCmdSetDepthBias = cast[proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.}](vkGetProc("vkCmdSetDepthBias"))vkCmdSetBlendConstants = cast[proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.}](vkGetProc("vkCmdSetBlendConstants"))vkCmdSetDepthBounds = cast[proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.}](vkGetProc("vkCmdSetDepthBounds"))vkCmdSetStencilCompareMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.}](vkGetProc("vkCmdSetStencilCompareMask"))vkCmdSetStencilWriteMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.}](vkGetProc("vkCmdSetStencilWriteMask"))vkCmdSetStencilReference = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.}](vkGetProc("vkCmdSetStencilReference"))vkCmdBindDescriptorSets = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet , dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32 ): void {.stdcall.}](vkGetProc("vkCmdBindDescriptorSets"))vkCmdBindIndexBuffer = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.}](vkGetProc("vkCmdBindIndexBuffer"))vkCmdBindVertexBuffers = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkCmdBindVertexBuffers"))vkCmdDraw = cast[proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.}](vkGetProc("vkCmdDraw"))vkCmdDrawIndexed = cast[proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndexed"))vkCmdDrawIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndirect"))vkCmdDrawIndexedIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndexedIndirect"))vkCmdDispatch = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetProc("vkCmdDispatch"))vkCmdDispatchIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetProc("vkCmdDispatchIndirect"))vkCmdCopyBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyBuffer"))vkCmdCopyImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyImage"))vkCmdBlitImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit , filter: VkFilter): void {.stdcall.}](vkGetProc("vkCmdBlitImage"))vkCmdCopyBufferToImage = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyBufferToImage"))vkCmdCopyImageToBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy ): void {.stdcall.}](vkGetProc("vkCmdCopyImageToBuffer"))vkCmdUpdateBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer ): void {.stdcall.}](vkGetProc("vkCmdUpdateBuffer"))vkCmdFillBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.}](vkGetProc("vkCmdFillBuffer"))vkCmdClearColorImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue , rangeCount: uint32, pRanges: ptr VkImageSubresourceRange ): void {.stdcall.}](vkGetProc("vkCmdClearColorImage"))vkCmdClearDepthStencilImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue , rangeCount: uint32, pRanges: ptr VkImageSubresourceRange ): void {.stdcall.}](vkGetProc("vkCmdClearDepthStencilImage"))vkCmdClearAttachments = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment , rectCount: uint32, pRects: ptr VkClearRect ): void {.stdcall.}](vkGetProc("vkCmdClearAttachments"))vkCmdResolveImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve ): void {.stdcall.}](vkGetProc("vkCmdResolveImage"))vkCmdSetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetProc("vkCmdSetEvent"))vkCmdResetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetProc("vkCmdResetEvent"))vkCmdWaitEvents = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent , srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier , bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier , imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier ): void {.stdcall.}](vkGetProc("vkCmdWaitEvents"))vkCmdPipelineBarrier = cast[proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier , bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier , imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier ): void {.stdcall.}](vkGetProc("vkCmdPipelineBarrier"))vkCmdBeginQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.}](vkGetProc("vkCmdBeginQuery"))vkCmdEndQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetProc("vkCmdEndQuery"))vkCmdResetQueryPool = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetProc("vkCmdResetQueryPool"))vkCmdWriteTimestamp = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetProc("vkCmdWriteTimestamp"))vkCmdCopyQueryPoolResults = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.}](vkGetProc("vkCmdCopyQueryPoolResults"))vkCmdPushConstants = cast[proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer ): void {.stdcall.}](vkGetProc("vkCmdPushConstants"))vkCmdBeginRenderPass = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo , contents: VkSubpassContents): void {.stdcall.}](vkGetProc("vkCmdBeginRenderPass"))vkCmdNextSubpass = cast[proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.}](vkGetProc("vkCmdNextSubpass"))vkCmdEndRenderPass = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetProc("vkCmdEndRenderPass"))vkCmdExecuteCommands = cast[proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer ): void {.stdcall.}](vkGetProc("vkCmdExecuteCommands")) ]#proc load_vulkan_functions_for_gpu*(instance: VkInstance) =vkEnumeratePhysicalDevices = cast[proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32 , pPhysicalDevices: ptr VkPhysicalDevice ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices"))vkGetPhysicalDeviceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties"))vkGetPhysicalDeviceFeatures = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures"))vkGetPhysicalDeviceMemoryProperties = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties"))vkGetPhysicalDeviceQueueFamilyProperties = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties"))vkGetPhysicalDeviceFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties"))# Vulkan 1_1proc vkLoad1_1*() =when defined linux:vkEnumerateInstanceVersion = cast[proc(pApiVersion: ptr uint32 ): VkResult {.stdcall.}](vkGetProc("vkEnumerateInstanceVersion"))vkBindBufferMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo ): VkResult {.stdcall.}](vkGetProc("vkBindBufferMemory2"))vkBindImageMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo ): VkResult {.stdcall.}](vkGetProc("vkBindImageMemory2"))vkGetDeviceGroupPeerMemoryFeatures = cast[proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags ): void {.stdcall.}](vkGetProc("vkGetDeviceGroupPeerMemoryFeatures"))vkCmdSetDeviceMask = cast[proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.}](vkGetProc("vkCmdSetDeviceMask"))vkCmdDispatchBase = cast[proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetProc("vkCmdDispatchBase"))vkEnumeratePhysicalDeviceGroups = cast[proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32 , pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties ): VkResult {.stdcall.}](vkGetProc("vkEnumeratePhysicalDeviceGroups"))vkGetImageMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2 , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}](vkGetProc("vkGetImageMemoryRequirements2"))vkGetBufferMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2 , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}](vkGetProc("vkGetBufferMemoryRequirements2"))vkGetImageSparseMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2 , pSparseMemoryRequirementCount: ptr uint32 , pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2 ): void {.stdcall.}](vkGetProc("vkGetImageSparseMemoryRequirements2"))vkGetPhysicalDeviceFeatures2 = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceFeatures2"))vkGetPhysicalDeviceProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceProperties2"))vkGetPhysicalDeviceFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceFormatProperties2"))vkGetPhysicalDeviceImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2 , pImageFormatProperties: ptr VkImageFormatProperties2 ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceImageFormatProperties2"))vkGetPhysicalDeviceQueueFamilyProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties2 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceQueueFamilyProperties2"))vkGetPhysicalDeviceMemoryProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceMemoryProperties2"))vkGetPhysicalDeviceSparseImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2 , pPropertyCount: ptr uint32 , pProperties: ptr VkSparseImageFormatProperties2 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSparseImageFormatProperties2"))vkTrimCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.}](vkGetProc("vkTrimCommandPool"))vkGetDeviceQueue2 = cast[proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2 , pQueue: ptr VkQueue ): void {.stdcall.}](vkGetProc("vkGetDeviceQueue2"))vkCreateSamplerYcbcrConversion = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo , pAllocator: ptr VkAllocationCallbacks , pYcbcrConversion: ptr VkSamplerYcbcrConversion ): VkResult {.stdcall.}](vkGetProc("vkCreateSamplerYcbcrConversion"))vkDestroySamplerYcbcrConversion = cast[proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySamplerYcbcrConversion"))vkCreateDescriptorUpdateTemplate = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate ): VkResult {.stdcall.}](vkGetProc("vkCreateDescriptorUpdateTemplate"))vkDestroyDescriptorUpdateTemplate = cast[proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDescriptorUpdateTemplate"))vkUpdateDescriptorSetWithTemplate = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer ): void {.stdcall.}](vkGetProc("vkUpdateDescriptorSetWithTemplate"))vkGetPhysicalDeviceExternalBufferProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo , pExternalBufferProperties: ptr VkExternalBufferProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceExternalBufferProperties"))vkGetPhysicalDeviceExternalFenceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo , pExternalFenceProperties: ptr VkExternalFenceProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceExternalFenceProperties"))vkGetPhysicalDeviceExternalSemaphoreProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo , pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceExternalSemaphoreProperties"))vkGetDescriptorSetLayoutSupport = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo , pSupport: ptr VkDescriptorSetLayoutSupport ): void {.stdcall.}](vkGetProc("vkGetDescriptorSetLayoutSupport"))when defined windows:vkEnumerateInstanceVersion = cast[proc(pApiVersion: ptr uint32 ): VkResult {.stdcall.}](vkGetProcAddress("vkEnumerateInstanceVersion"))vkBindBufferMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo ): VkResult {.stdcall.}](vkGetProcAddress("vkBindBufferMemory2"))vkBindImageMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo ): VkResult {.stdcall.}](vkGetProcAddress("vkBindImageMemory2"))vkGetDeviceGroupPeerMemoryFeatures = cast[proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags ): void {.stdcall.}](vkGetProcAddress("vkGetDeviceGroupPeerMemoryFeatures"))vkCmdSetDeviceMask = cast[proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.}](vkGetProcAddress("vkCmdSetDeviceMask"))vkCmdDispatchBase = cast[proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetProcAddress("vkCmdDispatchBase"))vkEnumeratePhysicalDeviceGroups = cast[proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32 , pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties ): VkResult {.stdcall.}](vkGetProcAddress("vkEnumeratePhysicalDeviceGroups"))vkGetImageMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2 , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}](vkGetProcAddress("vkGetImageMemoryRequirements2"))vkGetBufferMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2 , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}](vkGetProcAddress("vkGetBufferMemoryRequirements2"))vkGetImageSparseMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2 , pSparseMemoryRequirementCount: ptr uint32 , pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2 ): void {.stdcall.}](vkGetProcAddress("vkGetImageSparseMemoryRequirements2"))vkGetPhysicalDeviceFeatures2 = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2 ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceFeatures2"))vkGetPhysicalDeviceProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2 ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceProperties2"))vkGetPhysicalDeviceFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2 ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceFormatProperties2"))vkGetPhysicalDeviceImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2 , pImageFormatProperties: ptr VkImageFormatProperties2 ): VkResult {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceImageFormatProperties2"))vkGetPhysicalDeviceQueueFamilyProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties2 ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceQueueFamilyProperties2"))vkGetPhysicalDeviceMemoryProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2 ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceMemoryProperties2"))vkGetPhysicalDeviceSparseImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2 , pPropertyCount: ptr uint32 , pProperties: ptr VkSparseImageFormatProperties2 ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceSparseImageFormatProperties2"))vkTrimCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.}](vkGetProcAddress("vkTrimCommandPool"))vkGetDeviceQueue2 = cast[proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2 , pQueue: ptr VkQueue ): void {.stdcall.}](vkGetProcAddress("vkGetDeviceQueue2"))vkCreateSamplerYcbcrConversion = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo , pAllocator: ptr VkAllocationCallbacks , pYcbcrConversion: ptr VkSamplerYcbcrConversion ): VkResult {.stdcall.}](vkGetProcAddress("vkCreateSamplerYcbcrConversion"))vkDestroySamplerYcbcrConversion = cast[proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProcAddress("vkDestroySamplerYcbcrConversion"))vkCreateDescriptorUpdateTemplate = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate ): VkResult {.stdcall.}](vkGetProcAddress("vkCreateDescriptorUpdateTemplate"))vkDestroyDescriptorUpdateTemplate = cast[proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProcAddress("vkDestroyDescriptorUpdateTemplate"))vkUpdateDescriptorSetWithTemplate = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer ): void {.stdcall.}](vkGetProcAddress("vkUpdateDescriptorSetWithTemplate"))vkGetPhysicalDeviceExternalBufferProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo , pExternalBufferProperties: ptr VkExternalBufferProperties ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceExternalBufferProperties"))vkGetPhysicalDeviceExternalFenceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo , pExternalFenceProperties: ptr VkExternalFenceProperties ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceExternalFenceProperties"))vkGetPhysicalDeviceExternalSemaphoreProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo , pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties ): void {.stdcall.}](vkGetProcAddress("vkGetPhysicalDeviceExternalSemaphoreProperties"))vkGetDescriptorSetLayoutSupport = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo , pSupport: ptr VkDescriptorSetLayoutSupport ): void {.stdcall.}](vkGetProcAddress("vkGetDescriptorSetLayoutSupport"))# Vulkan 1_2proc vkLoad1_2*() =vkCmdDrawIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndirectCount"))vkCmdDrawIndexedIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndexedIndirectCount"))vkCreateRenderPass2 = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2 , pAllocator: ptr VkAllocationCallbacks , pRenderPass: ptr VkRenderPass ): VkResult {.stdcall.}](vkGetProc("vkCreateRenderPass2"))vkCmdBeginRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo , pSubpassBeginInfo: ptr VkSubpassBeginInfo ): void {.stdcall.}](vkGetProc("vkCmdBeginRenderPass2"))vkCmdNextSubpass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo , pSubpassEndInfo: ptr VkSubpassEndInfo ): void {.stdcall.}](vkGetProc("vkCmdNextSubpass2"))vkCmdEndRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo ): void {.stdcall.}](vkGetProc("vkCmdEndRenderPass2"))vkResetQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetProc("vkResetQueryPool"))vkGetSemaphoreCounterValue = cast[proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64 ): VkResult {.stdcall.}](vkGetProc("vkGetSemaphoreCounterValue"))vkWaitSemaphores = cast[proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo , timeout: uint64): VkResult {.stdcall.}](vkGetProc("vkWaitSemaphores"))vkSignalSemaphore = cast[proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo ): VkResult {.stdcall.}](vkGetProc("vkSignalSemaphore"))vkGetBufferDeviceAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo ): VkDeviceAddress {.stdcall.}](vkGetProc("vkGetBufferDeviceAddress"))vkGetBufferOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo ): uint64 {.stdcall.}](vkGetProc("vkGetBufferOpaqueCaptureAddress"))vkGetDeviceMemoryOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo ): uint64 {.stdcall.}](vkGetProc("vkGetDeviceMemoryOpaqueCaptureAddress"))# Load VK_KHR_surfaceproc loadVK_KHR_surface*( instance: VkInstance) =when defined linux:vkDestroySurfaceKHR = cast[proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySurfaceKHR"))vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32 ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfaceSupportKHR"))vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))vkGetPhysicalDeviceSurfaceFormatsKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32 , pSurfaceFormats: ptr VkSurfaceFormatKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfaceFormatsKHR"))vkGetPhysicalDeviceSurfacePresentModesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32 , pPresentModes: ptr VkPresentModeKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfacePresentModesKHR"))when defined windows:vkDestroySurfaceKHR = cast[proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR"))vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32 ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR"))vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))vkGetPhysicalDeviceSurfacePresentModesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32 , pPresentModes: ptr VkPresentModeKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR"))vkCreateImage = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo , pAllocator: ptr VkAllocationCallbacks , pImage: ptr VkImage ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImage"))vkCreateImageView = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo , pAllocator: ptr VkAllocationCallbacks , pView: ptr VkImageView ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImageView"))vkGetImageMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements"))vkAllocateMemory = cast[proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo , pAllocator: ptr VkAllocationCallbacks , pMemory: ptr VkDeviceMemory ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateMemory"))vkBindImageMemory = cast[proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory"))vkEnumerateDeviceExtensionProperties = cast[proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties"))vkCreateDevice = cast[proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pDevice: ptr VkDevice ): VkResult {.stdcall.}](vkGetInstanceProcAddr( instance, "vkCreateDevice"))vkCreateCommandPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo , pAllocator: ptr VkAllocationCallbacks , pCommandPool: ptr VkCommandPool ): VkResult {.stdcall.}](vkGetInstanceProcAddr( instance, "vkCreateCommandPool"))vkCreateSemaphore = cast[proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo , pAllocator: ptr VkAllocationCallbacks , pSemaphore: ptr VkSemaphore ): VkResult {.stdcall.}](vkGetInstanceProcAddr( instance, "vkCreateSemaphore"))vkAllocateCommandBuffers = cast[proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo , pCommandBuffers: ptr VkCommandBuffer ): VkResult {.stdcall.}](vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers"))vkCreateFence = cast[proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}](vkGetInstanceProcAddr( instance, "vkCreateFence"))# Load VK_KHR_swapchainproc loadVK_KHR_swapchain*( instance: VkInstance) =when defined linux:vkCreateSwapchainKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSwapchain: ptr VkSwapchainKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateSwapchainKHR"))vkDestroySwapchainKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroySwapchainKHR"))vkGetSwapchainImagesKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32 , pSwapchainImages: ptr VkImage ): VkResult {.stdcall.}](vkGetProc("vkGetSwapchainImagesKHR"))vkAcquireNextImageKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32 ): VkResult {.stdcall.}](vkGetProc("vkAcquireNextImageKHR"))vkQueuePresentKHR = cast[proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkQueuePresentKHR"))vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceGroupPresentCapabilitiesKHR"))vkGetDeviceGroupSurfacePresentModesKHR = cast[proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceGroupSurfacePresentModesKHR"))vkGetPhysicalDevicePresentRectanglesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32 , pRects: ptr VkRect2D ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDevicePresentRectanglesKHR"))vkAcquireNextImage2KHR = cast[proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR , pImageIndex: ptr uint32 ): VkResult {.stdcall.}](vkGetProc("vkAcquireNextImage2KHR"))when defined windows:vkCreateSwapchainKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSwapchain: ptr VkSwapchainKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR"))vkDestroySwapchainKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR"))vkGetSwapchainImagesKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32 , pSwapchainImages: ptr VkImage ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR"))vkAcquireNextImageKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32 ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR"))vkQueuePresentKHR = cast[proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueuePresentKHR"))vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPresentCapabilitiesKHR"))vkGetDeviceGroupSurfacePresentModesKHR = cast[proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModesKHR"))vkGetPhysicalDevicePresentRectanglesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32 , pRects: ptr VkRect2D ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDevicePresentRectanglesKHR"))vkAcquireNextImage2KHR = cast[proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR , pImageIndex: ptr uint32 ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR"))# Load VK_KHR_displayproc loadVK_KHR_display*() =vkGetPhysicalDeviceDisplayPropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayPropertiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceDisplayPropertiesKHR"))vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayPlanePropertiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))vkGetDisplayPlaneSupportedDisplaysKHR = cast[proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32 , pDisplays: ptr VkDisplayKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDisplayPlaneSupportedDisplaysKHR"))vkGetDisplayModePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayModePropertiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDisplayModePropertiesKHR"))vkCreateDisplayModeKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pMode: ptr VkDisplayModeKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateDisplayModeKHR"))vkGetDisplayPlaneCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDisplayPlaneCapabilitiesKHR"))vkCreateDisplayPlaneSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateDisplayPlaneSurfaceKHR"))# Load VK_KHR_display_swapchainproc loadVK_KHR_display_swapchain*() =vkCreateSharedSwapchainsKHR = cast[proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSwapchains: ptr VkSwapchainKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateSharedSwapchainsKHR"))# Load VK_KHR_xlib_surfaceproc loadVK_KHR_xlib_surface*() =vkCreateXlibSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkXlibSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateXlibSurfaceKHR"))vkGetPhysicalDeviceXlibPresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, dpy: ptr Display , visualID: VisualID): VkBool32 {.stdcall.}](vkGetProc("vkGetPhysicalDeviceXlibPresentationSupportKHR"))# Load VK_KHR_xcb_surfaceproc loadVK_KHR_xcb_surface*() =vkCreateXcbSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkXcbSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateXcbSurfaceKHR"))vkGetPhysicalDeviceXcbPresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, connection: ptr xcb_connection_t , visual_id: xcb_visualid_t): VkBool32 {.stdcall.}](vkGetProc("vkGetPhysicalDeviceXcbPresentationSupportKHR"))# Load VK_KHR_wayland_surfaceproc loadVK_KHR_wayland_surface*() =vkCreateWaylandSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkWaylandSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateWaylandSurfaceKHR"))vkGetPhysicalDeviceWaylandPresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, display: ptr wl_display ): VkBool32 {.stdcall.}](vkGetProc("vkGetPhysicalDeviceWaylandPresentationSupportKHR"))# Load VK_KHR_android_surfaceproc loadVK_KHR_android_surface*() =vkCreateAndroidSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkAndroidSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateAndroidSurfaceKHR"))# Load VK_KHR_win32_surfaceproc loadVK_KHR_win32_surface*() =vkCreateWin32SurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateWin32SurfaceKHR"))vkGetPhysicalDeviceWin32PresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32): VkBool32 {.stdcall.}](vkGetProc("vkGetPhysicalDeviceWin32PresentationSupportKHR"))# Load VK_ANDROID_native_bufferproc loadVK_ANDROID_native_buffer*() =vkGetSwapchainGrallocUsageANDROID = cast[proc(device: VkDevice, format: VkFormat, imageUsage: VkImageUsageFlags, grallocUsage: ptr int ): VkResult {.stdcall.}](vkGetProc("vkGetSwapchainGrallocUsageANDROID"))vkAcquireImageANDROID = cast[proc(device: VkDevice, image: VkImage, nativeFenceFd: int, semaphore: VkSemaphore, fence: VkFence): VkResult {.stdcall.}](vkGetProc("vkAcquireImageANDROID"))vkQueueSignalReleaseImageANDROID = cast[proc(queue: VkQueue, waitSemaphoreCount: uint32, pWaitSemaphores: ptr VkSemaphore , image: VkImage, pNativeFenceFd: ptr int ): VkResult {.stdcall.}](vkGetProc("vkQueueSignalReleaseImageANDROID"))vkGetSwapchainGrallocUsage2ANDROID = cast[proc(device: VkDevice, format: VkFormat, imageUsage: VkImageUsageFlags, swapchainImageUsage: VkSwapchainImageUsageFlagsANDROID, grallocConsumerUsage: ptr uint64 , grallocProducerUsage: ptr uint64 ): VkResult {.stdcall.}](vkGetProc("vkGetSwapchainGrallocUsage2ANDROID"))# Load VK_EXT_debug_reportproc loadVK_EXT_debug_report*() =vkCreateDebugReportCallbackEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pCallback: ptr VkDebugReportCallbackEXT ): VkResult {.stdcall.}](vkGetProc("vkCreateDebugReportCallbackEXT"))vkDestroyDebugReportCallbackEXT = cast[proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDebugReportCallbackEXT"))vkDebugReportMessageEXT = cast[proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, `object`: uint64, location: uint, messageCode: int32, pLayerPrefix: cstring , pMessage: cstring ): void {.stdcall.}](vkGetProc("vkDebugReportMessageEXT"))# Load VK_EXT_debug_markerproc loadVK_EXT_debug_marker*() =vkDebugMarkerSetObjectTagEXT = cast[proc(device: VkDevice, pTagInfo: ptr VkDebugMarkerObjectTagInfoEXT ): VkResult {.stdcall.}](vkGetProc("vkDebugMarkerSetObjectTagEXT"))vkDebugMarkerSetObjectNameEXT = cast[proc(device: VkDevice, pNameInfo: ptr VkDebugMarkerObjectNameInfoEXT ): VkResult {.stdcall.}](vkGetProc("vkDebugMarkerSetObjectNameEXT"))vkCmdDebugMarkerBeginEXT = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkDebugMarkerMarkerInfoEXT ): void {.stdcall.}](vkGetProc("vkCmdDebugMarkerBeginEXT"))vkCmdDebugMarkerEndEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetProc("vkCmdDebugMarkerEndEXT"))vkCmdDebugMarkerInsertEXT = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkDebugMarkerMarkerInfoEXT ): void {.stdcall.}](vkGetProc("vkCmdDebugMarkerInsertEXT"))# Load VK_EXT_transform_feedbackproc loadVK_EXT_transform_feedback*() =vkCmdBindTransformFeedbackBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize , pSizes: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkCmdBindTransformFeedbackBuffersEXT"))vkCmdBeginTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer , pCounterBufferOffsets: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkCmdBeginTransformFeedbackEXT"))vkCmdEndTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer , pCounterBufferOffsets: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkCmdEndTransformFeedbackEXT"))vkCmdBeginQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.}](vkGetProc("vkCmdBeginQueryIndexedEXT"))vkCmdEndQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.}](vkGetProc("vkCmdEndQueryIndexedEXT"))vkCmdDrawIndirectByteCountEXT = cast[proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawIndirectByteCountEXT"))# Load VK_NVX_image_view_handleproc loadVK_NVX_image_view_handle*() =vkGetImageViewHandleNVX = cast[proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX ): uint32 {.stdcall.}](vkGetProc("vkGetImageViewHandleNVX"))vkGetImageViewAddressNVX = cast[proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX ): VkResult {.stdcall.}](vkGetProc("vkGetImageViewAddressNVX"))# Load VK_AMD_shader_infoproc loadVK_AMD_shader_info*() =vkGetShaderInfoAMD = cast[proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr uint , pInfo: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetShaderInfoAMD"))# Load VK_GGP_stream_descriptor_surfaceproc loadVK_GGP_stream_descriptor_surface*() =vkCreateStreamDescriptorSurfaceGGP = cast[proc(instance: VkInstance, pCreateInfo: ptr VkStreamDescriptorSurfaceCreateInfoGGP , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateStreamDescriptorSurfaceGGP"))# Load VK_NV_external_memory_capabilitiesproc loadVK_NV_external_memory_capabilities*() =vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, typee: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))# Load VK_NV_external_memory_win32proc loadVK_NV_external_memory_win32*() =vkGetMemoryWin32HandleNV = cast[proc(device: VkDevice, memory: VkDeviceMemory, handleType: VkExternalMemoryHandleTypeFlagsNV, pHandle: ptr HANDLE ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryWin32HandleNV"))# Load VK_KHR_device_groupproc loadVK_KHR_device_group*() =vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceGroupPresentCapabilitiesKHR"))vkGetDeviceGroupSurfacePresentModesKHR = cast[proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceGroupSurfacePresentModesKHR"))vkGetPhysicalDevicePresentRectanglesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32 , pRects: ptr VkRect2D ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDevicePresentRectanglesKHR"))vkAcquireNextImage2KHR = cast[proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR , pImageIndex: ptr uint32 ): VkResult {.stdcall.}](vkGetProc("vkAcquireNextImage2KHR"))# Load VK_NN_vi_surfaceproc loadVK_NN_vi_surface*() =vkCreateViSurfaceNN = cast[proc(instance: VkInstance, pCreateInfo: ptr VkViSurfaceCreateInfoNN , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateViSurfaceNN"))# Load VK_KHR_external_memory_win32proc loadVK_KHR_external_memory_win32*() =vkGetMemoryWin32HandleKHR = cast[proc(device: VkDevice, pGetWin32HandleInfo: ptr VkMemoryGetWin32HandleInfoKHR , pHandle: ptr HANDLE ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryWin32HandleKHR"))vkGetMemoryWin32HandlePropertiesKHR = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, handle: HANDLE, pMemoryWin32HandleProperties: ptr VkMemoryWin32HandlePropertiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryWin32HandlePropertiesKHR"))# Load VK_KHR_external_memory_fdproc loadVK_KHR_external_memory_fd*() =vkGetMemoryFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR , pFd: ptr int ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryFdKHR"))vkGetMemoryFdPropertiesKHR = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: int, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryFdPropertiesKHR"))# Load VK_KHR_external_semaphore_win32proc loadVK_KHR_external_semaphore_win32*() =vkImportSemaphoreWin32HandleKHR = cast[proc(device: VkDevice, pImportSemaphoreWin32HandleInfo: ptr VkImportSemaphoreWin32HandleInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkImportSemaphoreWin32HandleKHR"))vkGetSemaphoreWin32HandleKHR = cast[proc(device: VkDevice, pGetWin32HandleInfo: ptr VkSemaphoreGetWin32HandleInfoKHR , pHandle: ptr HANDLE ): VkResult {.stdcall.}](vkGetProc("vkGetSemaphoreWin32HandleKHR"))# Load VK_KHR_external_semaphore_fdproc loadVK_KHR_external_semaphore_fd*() =vkImportSemaphoreFdKHR = cast[proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkImportSemaphoreFdKHR"))vkGetSemaphoreFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR , pFd: ptr int ): VkResult {.stdcall.}](vkGetProc("vkGetSemaphoreFdKHR"))# Load VK_KHR_push_descriptorproc loadVK_KHR_push_descriptor*() =vkCmdPushDescriptorSetKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet ): void {.stdcall.}](vkGetProc("vkCmdPushDescriptorSetKHR"))vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer ): void {.stdcall.}](vkGetProc("vkCmdPushDescriptorSetWithTemplateKHR"))vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer ): void {.stdcall.}](vkGetProc("vkCmdPushDescriptorSetWithTemplateKHR"))# Load VK_EXT_conditional_renderingproc loadVK_EXT_conditional_rendering*() =vkCmdBeginConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT ): void {.stdcall.}](vkGetProc("vkCmdBeginConditionalRenderingEXT"))vkCmdEndConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetProc("vkCmdEndConditionalRenderingEXT"))# Load VK_KHR_descriptor_update_templateproc loadVK_KHR_descriptor_update_template*() =vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer ): void {.stdcall.}](vkGetProc("vkCmdPushDescriptorSetWithTemplateKHR"))# Load VK_NV_clip_space_w_scalingproc loadVK_NV_clip_space_w_scaling*() =vkCmdSetViewportWScalingNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV ): void {.stdcall.}](vkGetProc("vkCmdSetViewportWScalingNV"))# Load VK_EXT_direct_mode_displayproc loadVK_EXT_direct_mode_display*() =vkReleaseDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetProc("vkReleaseDisplayEXT"))# Load VK_EXT_acquire_xlib_displayproc loadVK_EXT_acquire_xlib_display*() =vkAcquireXlibDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, dpy: ptr Display , display: VkDisplayKHR): VkResult {.stdcall.}](vkGetProc("vkAcquireXlibDisplayEXT"))vkGetRandROutputDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, dpy: ptr Display , rrOutput: RROutput, pDisplay: ptr VkDisplayKHR ): VkResult {.stdcall.}](vkGetProc("vkGetRandROutputDisplayEXT"))# Load VK_EXT_display_surface_counterproc loadVK_EXT_display_surface_counter*() =vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfaceCapabilities2EXT"))# Load VK_EXT_display_controlproc loadVK_EXT_display_control*() =vkDisplayPowerControlEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT ): VkResult {.stdcall.}](vkGetProc("vkDisplayPowerControlEXT"))vkRegisterDeviceEventEXT = cast[proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}](vkGetProc("vkRegisterDeviceEventEXT"))vkRegisterDisplayEventEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT , pAllocator: ptr VkAllocationCallbacks , pFence: ptr VkFence ): VkResult {.stdcall.}](vkGetProc("vkRegisterDisplayEventEXT"))vkGetSwapchainCounterEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64 ): VkResult {.stdcall.}](vkGetProc("vkGetSwapchainCounterEXT"))# Load VK_GOOGLE_display_timingproc loadVK_GOOGLE_display_timing*() =vkGetRefreshCycleDurationGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE ): VkResult {.stdcall.}](vkGetProc("vkGetRefreshCycleDurationGOOGLE"))vkGetPastPresentationTimingGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32 , pPresentationTimings: ptr VkPastPresentationTimingGOOGLE ): VkResult {.stdcall.}](vkGetProc("vkGetPastPresentationTimingGOOGLE"))# Load VK_EXT_discard_rectanglesproc loadVK_EXT_discard_rectangles*() =vkCmdSetDiscardRectangleEXT = cast[proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D ): void {.stdcall.}](vkGetProc("vkCmdSetDiscardRectangleEXT"))# Load VK_EXT_hdr_metadataproc loadVK_EXT_hdr_metadata*() =vkSetHdrMetadataEXT = cast[proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR , pMetadata: ptr VkHdrMetadataEXT ): void {.stdcall.}](vkGetProc("vkSetHdrMetadataEXT"))# Load VK_KHR_shared_presentable_imageproc loadVK_KHR_shared_presentable_image*() =vkGetSwapchainStatusKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetProc("vkGetSwapchainStatusKHR"))# Load VK_KHR_external_fence_win32proc loadVK_KHR_external_fence_win32*() =vkImportFenceWin32HandleKHR = cast[proc(device: VkDevice, pImportFenceWin32HandleInfo: ptr VkImportFenceWin32HandleInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkImportFenceWin32HandleKHR"))vkGetFenceWin32HandleKHR = cast[proc(device: VkDevice, pGetWin32HandleInfo: ptr VkFenceGetWin32HandleInfoKHR , pHandle: ptr HANDLE ): VkResult {.stdcall.}](vkGetProc("vkGetFenceWin32HandleKHR"))# Load VK_KHR_external_fence_fdproc loadVK_KHR_external_fence_fd*() =vkImportFenceFdKHR = cast[proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkImportFenceFdKHR"))vkGetFenceFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR , pFd: ptr int ): VkResult {.stdcall.}](vkGetProc("vkGetFenceFdKHR"))# Load VK_KHR_performance_queryproc loadVK_KHR_performance_query*() =vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32 , pCounters: ptr VkPerformanceCounterKHR , pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR ): VkResult {.stdcall.}](vkGetProc("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"))vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR , pNumPasses: ptr uint32 ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"))vkAcquireProfilingLockKHR = cast[proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkAcquireProfilingLockKHR"))vkReleaseProfilingLockKHR = cast[proc(device: VkDevice): void {.stdcall.}](vkGetProc("vkReleaseProfilingLockKHR"))# Load VK_KHR_get_surface_capabilities2proc loadVK_KHR_get_surface_capabilities2*() =vkGetPhysicalDeviceSurfaceCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfaceCapabilities2KHR"))vkGetPhysicalDeviceSurfaceFormats2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pSurfaceFormatCount: ptr uint32 , pSurfaceFormats: ptr VkSurfaceFormat2KHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfaceFormats2KHR"))# Load VK_KHR_get_display_properties2proc loadVK_KHR_get_display_properties2*() =vkGetPhysicalDeviceDisplayProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayProperties2KHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceDisplayProperties2KHR"))vkGetPhysicalDeviceDisplayPlaneProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayPlaneProperties2KHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))vkGetDisplayModeProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32 , pProperties: ptr VkDisplayModeProperties2KHR ): VkResult {.stdcall.}](vkGetProc("vkGetDisplayModeProperties2KHR"))vkGetDisplayPlaneCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR , pCapabilities: ptr VkDisplayPlaneCapabilities2KHR ): VkResult {.stdcall.}](vkGetProc("vkGetDisplayPlaneCapabilities2KHR"))# Load VK_MVK_ios_surfaceproc loadVK_MVK_ios_surface*() =vkCreateIOSSurfaceMVK = cast[proc(instance: VkInstance, pCreateInfo: ptr VkIOSSurfaceCreateInfoMVK , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateIOSSurfaceMVK"))# Load VK_MVK_macos_surfaceproc loadVK_MVK_macos_surface*() =vkCreateMacOSSurfaceMVK = cast[proc(instance: VkInstance, pCreateInfo: ptr VkMacOSSurfaceCreateInfoMVK , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateMacOSSurfaceMVK"))# Load VK_EXT_debug_utilsproc loadVK_EXT_debug_utils*() =vkSetDebugUtilsObjectNameEXT = cast[proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT ): VkResult {.stdcall.}](vkGetProc("vkSetDebugUtilsObjectNameEXT"))vkSetDebugUtilsObjectTagEXT = cast[proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT ): VkResult {.stdcall.}](vkGetProc("vkSetDebugUtilsObjectTagEXT"))vkQueueBeginDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}](vkGetProc("vkQueueBeginDebugUtilsLabelEXT"))vkQueueEndDebugUtilsLabelEXT = cast[proc(queue: VkQueue): void {.stdcall.}](vkGetProc("vkQueueEndDebugUtilsLabelEXT"))vkQueueInsertDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}](vkGetProc("vkQueueInsertDebugUtilsLabelEXT"))vkCmdBeginDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}](vkGetProc("vkCmdBeginDebugUtilsLabelEXT"))vkCmdEndDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetProc("vkCmdEndDebugUtilsLabelEXT"))vkCmdInsertDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT ): void {.stdcall.}](vkGetProc("vkCmdInsertDebugUtilsLabelEXT"))vkCreateDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pMessenger: ptr VkDebugUtilsMessengerEXT ): VkResult {.stdcall.}](vkGetProc("vkCreateDebugUtilsMessengerEXT"))vkDestroyDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDebugUtilsMessengerEXT"))vkSubmitDebugUtilsMessageEXT = cast[proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT ): void {.stdcall.}](vkGetProc("vkSubmitDebugUtilsMessageEXT"))# Load VK_ANDROID_external_memory_android_hardware_bufferproc loadVK_ANDROID_external_memory_android_hardware_buffer*() =vkGetAndroidHardwareBufferPropertiesANDROID = cast[proc(device: VkDevice, buffer: ptr AHardwareBuffer , pProperties: ptr VkAndroidHardwareBufferPropertiesANDROID ): VkResult {.stdcall.}](vkGetProc("vkGetAndroidHardwareBufferPropertiesANDROID"))vkGetMemoryAndroidHardwareBufferANDROID = cast[proc(device: VkDevice, pInfo: ptr VkMemoryGetAndroidHardwareBufferInfoANDROID , pBuffer: ptr ptr AHardwareBuffer ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryAndroidHardwareBufferANDROID"))# Load VK_EXT_sample_locationsproc loadVK_EXT_sample_locations*() =vkCmdSetSampleLocationsEXT = cast[proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT ): void {.stdcall.}](vkGetProc("vkCmdSetSampleLocationsEXT"))vkGetPhysicalDeviceMultisamplePropertiesEXT = cast[proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT ): void {.stdcall.}](vkGetProc("vkGetPhysicalDeviceMultisamplePropertiesEXT"))# Load VK_KHR_ray_tracingproc loadVK_KHR_ray_tracing*() =vkCreateAccelerationStructureKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pAccelerationStructure: ptr VkAccelerationStructureKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateAccelerationStructureKHR"))vkDestroyAccelerationStructureKHR = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyAccelerationStructureKHR"))vkGetAccelerationStructureMemoryRequirementsKHR = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoKHR , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}](vkGetProc("vkGetAccelerationStructureMemoryRequirementsKHR"))vkBindAccelerationStructureMemoryKHR = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkBindAccelerationStructureMemoryKHR"))vkCmdBuildAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR , ppOffsetInfos: ptr ptr VkAccelerationStructureBuildOffsetInfoKHR ): void {.stdcall.}](vkGetProc("vkCmdBuildAccelerationStructureKHR"))vkCmdBuildAccelerationStructureIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR , indirectBuffer: VkBuffer, indirectOffset: VkDeviceSize, indirectStride: uint32): void {.stdcall.}](vkGetProc("vkCmdBuildAccelerationStructureIndirectKHR"))vkBuildAccelerationStructureKHR = cast[proc(device: VkDevice, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR , ppOffsetInfos: ptr ptr VkAccelerationStructureBuildOffsetInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkBuildAccelerationStructureKHR"))vkCopyAccelerationStructureKHR = cast[proc(device: VkDevice, pInfo: ptr VkCopyAccelerationStructureInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkCopyAccelerationStructureKHR"))vkCopyAccelerationStructureToMemoryKHR = cast[proc(device: VkDevice, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkCopyAccelerationStructureToMemoryKHR"))vkCopyMemoryToAccelerationStructureKHR = cast[proc(device: VkDevice, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR ): VkResult {.stdcall.}](vkGetProc("vkCopyMemoryToAccelerationStructureKHR"))vkWriteAccelerationStructuresPropertiesKHR = cast[proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR , queryType: VkQueryType, dataSize: uint, pData: pointer , stride: uint): VkResult {.stdcall.}](vkGetProc("vkWriteAccelerationStructuresPropertiesKHR"))vkCmdCopyAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR ): void {.stdcall.}](vkGetProc("vkCmdCopyAccelerationStructureKHR"))vkCmdCopyAccelerationStructureToMemoryKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR ): void {.stdcall.}](vkGetProc("vkCmdCopyAccelerationStructureToMemoryKHR"))vkCmdCopyMemoryToAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR ): void {.stdcall.}](vkGetProc("vkCmdCopyMemoryToAccelerationStructureKHR"))vkCmdTraceRaysKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedBufferRegionKHR , pMissShaderBindingTable: ptr VkStridedBufferRegionKHR , pHitShaderBindingTable: ptr VkStridedBufferRegionKHR , pCallableShaderBindingTable: ptr VkStridedBufferRegionKHR , width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetProc("vkCmdTraceRaysKHR"))vkCreateRayTracingPipelinesKHR = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}](vkGetProc("vkCreateRayTracingPipelinesKHR"))vkGetRayTracingShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: uint, pData: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetRayTracingShaderGroupHandlesKHR"))vkGetAccelerationStructureDeviceAddressKHR = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR ): VkDeviceAddress {.stdcall.}](vkGetProc("vkGetAccelerationStructureDeviceAddressKHR"))vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: uint, pData: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"))vkCmdWriteAccelerationStructuresPropertiesKHR = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR , queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetProc("vkCmdWriteAccelerationStructuresPropertiesKHR"))vkCmdTraceRaysIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedBufferRegionKHR , pMissShaderBindingTable: ptr VkStridedBufferRegionKHR , pHitShaderBindingTable: ptr VkStridedBufferRegionKHR , pCallableShaderBindingTable: ptr VkStridedBufferRegionKHR , buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetProc("vkCmdTraceRaysIndirectKHR"))vkGetDeviceAccelerationStructureCompatibilityKHR = cast[proc(device: VkDevice, version: ptr VkAccelerationStructureVersionKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceAccelerationStructureCompatibilityKHR"))# Load VK_EXT_image_drm_format_modifierproc loadVK_EXT_image_drm_format_modifier*() =vkGetImageDrmFormatModifierPropertiesEXT = cast[proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT ): VkResult {.stdcall.}](vkGetProc("vkGetImageDrmFormatModifierPropertiesEXT"))# Load VK_EXT_validation_cacheproc loadVK_EXT_validation_cache*() =vkCreateValidationCacheEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pValidationCache: ptr VkValidationCacheEXT ): VkResult {.stdcall.}](vkGetProc("vkCreateValidationCacheEXT"))vkDestroyValidationCacheEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyValidationCacheEXT"))vkMergeValidationCachesEXT = cast[proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT ): VkResult {.stdcall.}](vkGetProc("vkMergeValidationCachesEXT"))vkGetValidationCacheDataEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr uint , pData: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetValidationCacheDataEXT"))# Load VK_NV_shading_rate_imageproc loadVK_NV_shading_rate_image*() =vkCmdBindShadingRateImageNV = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetProc("vkCmdBindShadingRateImageNV"))vkCmdSetViewportShadingRatePaletteNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV ): void {.stdcall.}](vkGetProc("vkCmdSetViewportShadingRatePaletteNV"))vkCmdSetCoarseSampleOrderNV = cast[proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV ): void {.stdcall.}](vkGetProc("vkCmdSetCoarseSampleOrderNV"))# Load VK_NV_ray_tracingproc loadVK_NV_ray_tracing*() =vkCreateAccelerationStructureNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV , pAllocator: ptr VkAllocationCallbacks , pAccelerationStructure: ptr VkAccelerationStructureNV ): VkResult {.stdcall.}](vkGetProc("vkCreateAccelerationStructureNV"))vkGetAccelerationStructureMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV , pMemoryRequirements: ptr VkMemoryRequirements2KHR ): void {.stdcall.}](vkGetProc("vkGetAccelerationStructureMemoryRequirementsNV"))vkCmdBuildAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV , instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureKHR, src: VkAccelerationStructureKHR, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.}](vkGetProc("vkCmdBuildAccelerationStructureNV"))vkCmdCopyAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureKHR, src: VkAccelerationStructureKHR, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.}](vkGetProc("vkCmdCopyAccelerationStructureNV"))vkCmdTraceRaysNV = cast[proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetProc("vkCmdTraceRaysNV"))vkCreateRayTracingPipelinesNV = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV , pAllocator: ptr VkAllocationCallbacks , pPipelines: ptr VkPipeline ): VkResult {.stdcall.}](vkGetProc("vkCreateRayTracingPipelinesNV"))vkGetAccelerationStructureHandleNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, dataSize: uint, pData: pointer ): VkResult {.stdcall.}](vkGetProc("vkGetAccelerationStructureHandleNV"))vkCompileDeferredNV = cast[proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.}](vkGetProc("vkCompileDeferredNV"))# Load VK_EXT_external_memory_hostproc loadVK_EXT_external_memory_host*() =vkGetMemoryHostPointerPropertiesEXT = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer , pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT ): VkResult {.stdcall.}](vkGetProc("vkGetMemoryHostPointerPropertiesEXT"))# Load VK_AMD_buffer_markerproc loadVK_AMD_buffer_marker*() =vkCmdWriteBufferMarkerAMD = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.}](vkGetProc("vkCmdWriteBufferMarkerAMD"))# Load VK_EXT_calibrated_timestampsproc loadVK_EXT_calibrated_timestamps*() =vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = cast[proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32 , pTimeDomains: ptr VkTimeDomainEXT ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"))vkGetCalibratedTimestampsEXT = cast[proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT , pTimestamps: ptr uint64 , pMaxDeviation: ptr uint64 ): VkResult {.stdcall.}](vkGetProc("vkGetCalibratedTimestampsEXT"))# Load VK_NV_mesh_shaderproc loadVK_NV_mesh_shader*() =vkCmdDrawMeshTasksNV = cast[proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawMeshTasksNV"))vkCmdDrawMeshTasksIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawMeshTasksIndirectNV"))vkCmdDrawMeshTasksIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetProc("vkCmdDrawMeshTasksIndirectCountNV"))# Load VK_NV_scissor_exclusiveproc loadVK_NV_scissor_exclusive*() =vkCmdSetExclusiveScissorNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D ): void {.stdcall.}](vkGetProc("vkCmdSetExclusiveScissorNV"))# Load VK_NV_device_diagnostic_checkpointsproc loadVK_NV_device_diagnostic_checkpoints*() =vkCmdSetCheckpointNV = cast[proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer ): void {.stdcall.}](vkGetProc("vkCmdSetCheckpointNV"))vkGetQueueCheckpointDataNV = cast[proc(queue: VkQueue, pCheckpointDataCount: ptr uint32 , pCheckpointData: ptr VkCheckpointDataNV ): void {.stdcall.}](vkGetProc("vkGetQueueCheckpointDataNV"))# Load VK_INTEL_performance_queryproc loadVK_INTEL_performance_query*() =vkInitializePerformanceApiINTEL = cast[proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL ): VkResult {.stdcall.}](vkGetProc("vkInitializePerformanceApiINTEL"))vkUninitializePerformanceApiINTEL = cast[proc(device: VkDevice): void {.stdcall.}](vkGetProc("vkUninitializePerformanceApiINTEL"))vkCmdSetPerformanceMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL ): VkResult {.stdcall.}](vkGetProc("vkCmdSetPerformanceMarkerINTEL"))vkCmdSetPerformanceStreamMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL ): VkResult {.stdcall.}](vkGetProc("vkCmdSetPerformanceStreamMarkerINTEL"))vkCmdSetPerformanceOverrideINTEL = cast[proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL ): VkResult {.stdcall.}](vkGetProc("vkCmdSetPerformanceOverrideINTEL"))vkAcquirePerformanceConfigurationINTEL = cast[proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL , pConfiguration: ptr VkPerformanceConfigurationINTEL ): VkResult {.stdcall.}](vkGetProc("vkAcquirePerformanceConfigurationINTEL"))vkReleasePerformanceConfigurationINTEL = cast[proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetProc("vkReleasePerformanceConfigurationINTEL"))vkQueueSetPerformanceConfigurationINTEL = cast[proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetProc("vkQueueSetPerformanceConfigurationINTEL"))vkGetPerformanceParameterINTEL = cast[proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL ): VkResult {.stdcall.}](vkGetProc("vkGetPerformanceParameterINTEL"))# Load VK_AMD_display_native_hdrproc loadVK_AMD_display_native_hdr*() =vkSetLocalDimmingAMD = cast[proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.}](vkGetProc("vkSetLocalDimmingAMD"))# Load VK_FUCHSIA_imagepipe_surfaceproc loadVK_FUCHSIA_imagepipe_surface*() =vkCreateImagePipeSurfaceFUCHSIA = cast[proc(instance: VkInstance, pCreateInfo: ptr VkImagePipeSurfaceCreateInfoFUCHSIA , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateImagePipeSurfaceFUCHSIA"))# Load VK_EXT_metal_surfaceproc loadVK_EXT_metal_surface*() =vkCreateMetalSurfaceEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkMetalSurfaceCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateMetalSurfaceEXT"))# Load VK_EXT_tooling_infoproc loadVK_EXT_tooling_info*() =vkGetPhysicalDeviceToolPropertiesEXT = cast[proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32 , pToolProperties: ptr VkPhysicalDeviceToolPropertiesEXT ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceToolPropertiesEXT"))# Load VK_NV_cooperative_matrixproc loadVK_NV_cooperative_matrix*() =vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32 , pProperties: ptr VkCooperativeMatrixPropertiesNV ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"))# Load VK_NV_coverage_reduction_modeproc loadVK_NV_coverage_reduction_mode*() =vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = cast[proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32 , pCombinations: ptr VkFramebufferMixedSamplesCombinationNV ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"))# Load VK_EXT_full_screen_exclusiveproc loadVK_EXT_full_screen_exclusive*() =vkGetPhysicalDeviceSurfacePresentModes2EXT = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pPresentModeCount: ptr uint32 , pPresentModes: ptr VkPresentModeKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPhysicalDeviceSurfacePresentModes2EXT"))vkAcquireFullScreenExclusiveModeEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetProc("vkAcquireFullScreenExclusiveModeEXT"))vkReleaseFullScreenExclusiveModeEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetProc("vkReleaseFullScreenExclusiveModeEXT"))vkGetDeviceGroupSurfacePresentModes2EXT = cast[proc(device: VkDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceGroupSurfacePresentModes2EXT"))vkGetDeviceGroupSurfacePresentModes2EXT = cast[proc(device: VkDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR , pModes: ptr VkDeviceGroupPresentModeFlagsKHR ): VkResult {.stdcall.}](vkGetProc("vkGetDeviceGroupSurfacePresentModes2EXT"))# Load VK_EXT_headless_surfaceproc loadVK_EXT_headless_surface*() =vkCreateHeadlessSurfaceEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateHeadlessSurfaceEXT"))# Load VK_EXT_line_rasterizationproc loadVK_EXT_line_rasterization*() =vkCmdSetLineStippleEXT = cast[proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.}](vkGetProc("vkCmdSetLineStippleEXT"))# Load VK_EXT_extended_dynamic_stateproc loadVK_EXT_extended_dynamic_state*() =vkCmdSetCullModeEXT = cast[proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.}](vkGetProc("vkCmdSetCullModeEXT"))vkCmdSetFrontFaceEXT = cast[proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.}](vkGetProc("vkCmdSetFrontFaceEXT"))vkCmdSetPrimitiveTopologyEXT = cast[proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.}](vkGetProc("vkCmdSetPrimitiveTopologyEXT"))vkCmdSetViewportWithCountEXT = cast[proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport ): void {.stdcall.}](vkGetProc("vkCmdSetViewportWithCountEXT"))vkCmdSetScissorWithCountEXT = cast[proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D ): void {.stdcall.}](vkGetProc("vkCmdSetScissorWithCountEXT"))vkCmdBindVertexBuffers2EXT = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer , pOffsets: ptr VkDeviceSize , pSizes: ptr VkDeviceSize , pStrides: ptr VkDeviceSize ): void {.stdcall.}](vkGetProc("vkCmdBindVertexBuffers2EXT"))vkCmdSetDepthTestEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.}](vkGetProc("vkCmdSetDepthTestEnableEXT"))vkCmdSetDepthWriteEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.}](vkGetProc("vkCmdSetDepthWriteEnableEXT"))vkCmdSetDepthCompareOpEXT = cast[proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.}](vkGetProc("vkCmdSetDepthCompareOpEXT"))vkCmdSetDepthBoundsTestEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.}](vkGetProc("vkCmdSetDepthBoundsTestEnableEXT"))vkCmdSetStencilTestEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.}](vkGetProc("vkCmdSetStencilTestEnableEXT"))vkCmdSetStencilOpEXT = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.}](vkGetProc("vkCmdSetStencilOpEXT"))# Load VK_KHR_deferred_host_operationsproc loadVK_KHR_deferred_host_operations*() =vkCreateDeferredOperationKHR = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks , pDeferredOperation: ptr VkDeferredOperationKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateDeferredOperationKHR"))vkDestroyDeferredOperationKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyDeferredOperationKHR"))vkGetDeferredOperationMaxConcurrencyKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.}](vkGetProc("vkGetDeferredOperationMaxConcurrencyKHR"))vkGetDeferredOperationResultKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetProc("vkGetDeferredOperationResultKHR"))vkDeferredOperationJoinKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetProc("vkDeferredOperationJoinKHR"))# Load VK_KHR_pipeline_executable_propertiesproc loadVK_KHR_pipeline_executable_properties*() =vkGetPipelineExecutablePropertiesKHR = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR , pExecutableCount: ptr uint32 , pProperties: ptr VkPipelineExecutablePropertiesKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPipelineExecutablePropertiesKHR"))vkGetPipelineExecutableStatisticsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR , pStatisticCount: ptr uint32 , pStatistics: ptr VkPipelineExecutableStatisticKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPipelineExecutableStatisticsKHR"))vkGetPipelineExecutableInternalRepresentationsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR , pInternalRepresentationCount: ptr uint32 , pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR ): VkResult {.stdcall.}](vkGetProc("vkGetPipelineExecutableInternalRepresentationsKHR"))# Load VK_NV_device_generated_commandsproc loadVK_NV_device_generated_commands*() =vkGetGeneratedCommandsMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV , pMemoryRequirements: ptr VkMemoryRequirements2 ): void {.stdcall.}](vkGetProc("vkGetGeneratedCommandsMemoryRequirementsNV"))vkCmdPreprocessGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV ): void {.stdcall.}](vkGetProc("vkCmdPreprocessGeneratedCommandsNV"))vkCmdExecuteGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV ): void {.stdcall.}](vkGetProc("vkCmdExecuteGeneratedCommandsNV"))vkCmdBindPipelineShaderGroupNV = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.}](vkGetProc("vkCmdBindPipelineShaderGroupNV"))vkCreateIndirectCommandsLayoutNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV , pAllocator: ptr VkAllocationCallbacks , pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV ): VkResult {.stdcall.}](vkGetProc("vkCreateIndirectCommandsLayoutNV"))vkDestroyIndirectCommandsLayoutNV = cast[proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyIndirectCommandsLayoutNV"))# Load VK_EXT_private_dataproc loadVK_EXT_private_data*() =vkCreatePrivateDataSlotEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pPrivateDataSlot: ptr VkPrivateDataSlotEXT ): VkResult {.stdcall.}](vkGetProc("vkCreatePrivateDataSlotEXT"))vkDestroyPrivateDataSlotEXT = cast[proc(device: VkDevice, privateDataSlot: VkPrivateDataSlotEXT, pAllocator: ptr VkAllocationCallbacks ): void {.stdcall.}](vkGetProc("vkDestroyPrivateDataSlotEXT"))vkSetPrivateDataEXT = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlotEXT, data: uint64): VkResult {.stdcall.}](vkGetProc("vkSetPrivateDataEXT"))vkGetPrivateDataEXT = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlotEXT, pData: ptr uint64 ): void {.stdcall.}](vkGetProc("vkGetPrivateDataEXT"))# Load VK_EXT_directfb_surfaceproc loadVK_EXT_directfb_surface*() =vkCreateDirectFBSurfaceEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDirectFBSurfaceCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateDirectFBSurfaceEXT"))vkGetPhysicalDeviceDirectFBPresentationSupportEXT = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, dfb: ptr IDirectFB ): VkBool32 {.stdcall.}](vkGetProc("vkGetPhysicalDeviceDirectFBPresentationSupportEXT"))proc vkInit*(load1_0: bool = true, load1_1: bool = true): bool =if load1_0:vkLoad1_0()when not defined(macosx):if load1_1:vkLoad1_1()return true
import glm# We assume all the spaces up to and including view space to feature a Y-axis pointing upwards.# Screen space in Vulkan, however, has the +Y-axis pointing downwards, +X to the left, and +Z into the screen.# We are staying in right-handed (RH) coordinate systems throughout ALL the spaces.# Therefore, we are representing the coordinates from here on -- actually exactly BETWEEN View Space and# Clip Space -- in a coordinate system which is rotated 180 around X, having Y point down, still RH.let rotateAroundXFrom_RH_Yup_to_RH_Ydown*: Mat4[float32] =mat4f( vec4f(1.float32, 0, 0, 0), -vec4f(0.float32, 1, 0, 0), -vec4f(0.float32, 0, 1, 0), vec4f(0.float32, 0, 0, 1))let rotateAroundXFrom_RH_Yup_to_RH_Ydown_Inverse* = inverse rotateAroundXFrom_RH_Yup_to_RH_Ydownproc ortho*(left, right, bottom, top, near, far: float32): Mat4f =var m = mat4[float32](1.0)letrl = right - lefttb = top - bottomfn = far - nearm[0][0] = 2.float32 / rlm[1][1] = 2.float32 / tbm[2][2] = 1.float32 / fnm[3][0] = -(right + left) / rlm[3][1] = -(top + bottom) / tbm[3][2] = -(near) / fnresult = m * rotateAroundXFrom_RH_Yup_to_RH_Ydown_Inverseproc lookAtRH*( eye, center, up: Vec3[float32]): Mat4[float32] =letf = normalize(center - eye)s = normalize(cross(f, up))u = cross(s, f)result[0][0] = s.xresult[1][0] = s.yresult[2][0] = s.zresult[0][1] = u.xresult[1][1] = u.yresult[2][1] = u.zresult[0][2] = -f.xresult[1][2] = -f.yresult[2][2] = -f.zresult[3][0] = -dot(s, eye)result[3][1] = -dot(u, eye)result[3][2] = dot(f, eye)proc perspectiveLH*[T]( fovy, aspect, zNear, zFar:T): Mat4[T] =let tanHalfFovy = tan(fovy / T(2))result = mat4[T](0.0)result[0,0] = T(1) / (aspect * tanHalfFovy)result[1,1] = T(1) / (tanHalfFovy)result[2,2] = (zFar + zNear) / (zFar - zNear)result[2,3] = T(1)result[3,2] = - (T(2) * zFar * zNear) / (zFar - zNear)proc perspectiveRH*[T]( fovy, aspect, zNear, zFar:T): Mat4f =let tanHalfFovy = tan(fovy / T(2))result = mat4[T](0.0)result[0,0] = T(1) / (aspect * tanHalfFovy)result[1,1] = T(1) / (tanHalfFovy)result[2,3] = T(-1)result[2,2] = -(zFar + zNear) / (zFar - zNear)result[3,2] = -(T(2) * zFar * zNear) / (zFar - zNear)
import vulkan as nvk, vkTypes, vulkan_record, vulkan_utils, ../utils/[lets, etc], bitops, strutils, vkTypes, swapchain, gpu, ../portal/portalObj, dbg, device, semaphores, bufferimport ../memory/[ utils]constneeded_validation_layers* = ["VK_LAYER_KHRONOS_validation"]proc check_validation_layers() =when defined windows:vkEnumerateInstanceLayerProperties = cast[proc( pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetProcAddress("vkEnumerateInstanceLayerProperties"))var layer_count: uint32 = 0discard vkEnumerateInstanceLayerProperties( addr layer_count, nil)var layers = newSeq[VkLayerProperties] (layer_count)discard vkEnumerateInstanceLayerProperties( addr layer_count, addr layers[0])for validated_layer in needed_validation_layers:var found = falsefor layer in layers:if cstring(unsafeAddr layer.layerName) == validated_layer:found = truebreakif not found:echo validated_layer & " layer is not supported"proc create_vulkan_instance*(vulkan_record: var Vulkan_Record) =varvalidationFeatureEnables: array[3, VkValidationFeatureEnableEXT] =[ VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT]validationFeatures = VkValidationFeaturesEXT( sType: VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT, pNext: nil, enabledValidationFeatureCount: 3, pEnabledValidationFeatures: addr validationFeatureEnables[0], disabledValidationFeatureCount: 0, pDisabledValidationFeatures: nil)instance: VkInstanceappInfo = newVkApplicationInfo(pApplicationName = "p0",applicationVersion = vkMakeVersion(1, 0, 0),pEngineName = "engine_p0",engineVersion = vkMakeVersion(1, 0, 0),apiVersion = vkApiVersion1_3)varexts = allocCStringArray(["VK_KHR_surface", "VK_EXT_debug_utils"])when defined linux:exts[2] = "VK_KHR_xcb_surface"when defined windows:exts[2] = "VK_KHR_win32_surface"varinstanceCreateInfo = newVkInstanceCreateInfo( pApplicationInfo = appInfo.addr, enabledExtensionCount = 3 #TODO make dynamic, ppEnabledExtensionNames = exts#, enabledLayerCount = 0#, ppEnabledLayerNames = val, pNext = addr validationFeatures)vulkan_create_instance_result = vkCreateInstance( instanceCreateInfo.addr, nil, addr instance)#echo repr vulkan_create_instance_resultvulkan_record.instance = instancewhen defined windows:vkEnumerateInstanceExtensionProperties = cast[proc(pLayerName: cstring , pPropertyCount: ptr uint32 , pProperties: ptr VkExtensionProperties ): VkResult {.stdcall.}](vkGetProcAddress("vkEnumerateInstanceExtensionProperties"))var extensionCount: uint32 = 0discard vkEnumerateInstanceExtensionProperties( nil, extensionCount.addr, nil)var extensions = newSeq[VkExtensionProperties] ( extensionCount )discard vkEnumerateInstanceExtensionProperties( nil, extensionCount.addr, extensions[0].addr)vardebugUtilsMessenger: VkDebugUtilsMessengerEXTdebugUtilsMessengerCI: VkDebugUtilsMessengerCreateInfoEXTdebugUtilsMessengerCI.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXTdebugUtilsMessengerCI.messageSeverity =VkDebugUtilsMessageSeverityFlagsEXT bitor( VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT.int, VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT.int, VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT.int)debugUtilsMessengerCI.messageType =VkDebugUtilsMessageTypeFlagsEXT bitor( VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT.int, VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT.int, VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT.int)debugUtilsMessengerCI.pfnUserCallback = debugUtilsMessengerCallbackvkCreateDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT , pAllocator: ptr VkAllocationCallbacks , pMessenger: ptr VkDebugUtilsMessengerEXT ): VkResult {.stdcall.}](vkGetInstanceProcAddr(vulkan_record.instance, "vkCreateDebugUtilsMessengerEXT"))discard vkCreateDebugUtilsMessengerEXT(vulkan_record.instance, addr debugUtilsMessengerCI, nil, addr debugUtilsMessenger)proc setup_vulkan*( portal: Portal): Vulkan_Record =result = Vulkan_Record( swapchain: Swapchain())vkLoad1_0()result.create_vulkan_instance()loadVK_KHR_surface(result.instance)loadVK_KHR_swapchain(result.instance)result.gpu = result.instance.get_gpuresult.gpu.handle.getSupportedDepthFormat result.swapchain.depthFormatresult.createLogicalDeviceresult.vk_device = result.logical_device#result.current_descriptor_pool = create_descriptor_pool( result.vk_device )when defined windows:vkGetDeviceQueue = cast[proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue ): void {.stdcall.}](vkGetInstanceProcAddr(result.instance, "vkGetDeviceQueue"))#TODO: properly check and set default(?) q index for the familyvkGetDeviceQueue( result.vk_device, result.qfi.graphics, 0, addr result.queue)#TODO: put this in a functionwhen defined linux:vkCreateXcbSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkXcbSurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetProc("vkCreateXcbSurfaceKHR"))vkGetPhysicalDeviceXcbPresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, connection: ptr xcb_connection_t , visual_id: xcb_visualid_t): VkBool32 {.stdcall.}](vkGetProc("vkGetPhysicalDeviceXcbPresentationSupportKHR"))var surfaceCreateInfo: VkXcbSurfaceCreateInfoKHRsurfaceCreateInfo.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHRsurfaceCreateInfo.connection = cast[ptr nvk.xcb_connection_t](portal.conn)surfaceCreateInfo.window = cast[nvk.xcb_window_t](portal.window)var surface_res = vkCreateXcbSurfaceKHR( result.instance, addr surfaceCreateInfo, nil, addr result.swapchain.surface)assert surface_res == VK_SUCCESS, "surface_res failed: " & $surface_reswhen defined windows:vkCreateWin32SurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR , pAllocator: ptr VkAllocationCallbacks , pSurface: ptr VkSurfaceKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(result.instance, "vkCreateWin32SurfaceKHR"))vkGetPhysicalDeviceWin32PresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32): VkBool32 {.stdcall.}](vkGetInstanceProcAddr(result.instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))var surfaceCreateInfo: VkWin32SurfaceCreateInfoKHRsurfaceCreateInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHRsurfaceCreateInfo.hinstance = cast[nvk.HINSTANCE] ( addr portal.h_instance )surfaceCreateInfo.hwnd = cast[nvk.HWND] (portal.hwnd)var surface_res = vkCreateWin32SurfaceKHR( result.instance, addr surfaceCreateInfo, nil, addr result.swapchain.surface)assert surface_res == VK_SUCCESS, "ERROR: vkCreateWin32SurfaceKHR is: " & $surface_resresult.gpu.handle.check_surface_support( result.swapchain, result.qni, result.instance)create_swapchain( result.vk_device, result.swapchain, result.gpu.handle, result.current_viewport)#TODO: actually properly check device extensions exist on the used GPUresult.gpu.handle.check_gpu_extensionsresult.create_logical_command_poolresult.draw_command_buffers = result.vk_device.create_command_buffers( result.command_pool)proc suballocate_vertex_buffer*( vulkan_record: var Vulkan_Record, vertex_data: pointer) =copymem( vertex_data, addr vulkan_record.master_vertex_buffer.data[vulkan_record.master_vertex_buffer.current_data_offset], Natural vertex_data.sizeof)# memcpy( &dst[dstIdx], &src[srcIdx], numElementsToCopy * sizeof( Element ) );vulkan_record.master_vertex_buffer.current_data_offset += vertex_data.sizeofproc suballocate_index_buffer*( vulkan_record: var Vulkan_Record, index_data: pointer) =copymem( index_data, addr vulkan_record.master_index_buffer.data[vulkan_record.master_index_buffer.current_data_offset], Natural index_data.sizeof)# memcpy( &dst[dstIdx], &src[srcIdx], numElementsToCopy * sizeof( Element ) );vulkan_record.master_index_buffer.current_data_offset += index_data.sizeofproc suballocate_uniform_buffer*( vulkan_record: var Vulkan_Record, uniform_buffer_data: pointer) =# memcpy( &dst[dstIdx], &src[srcIdx], numElementsToCopy * sizeof( Element ) );copyMem( uniform_buffer_data, addr vulkan_record.master_uniform_buffer.data[vulkan_record.master_uniform_buffer.current_data_offset], sizeof uniform_buffer_data)vulkan_record.master_uniform_buffer.current_data_offset += uniform_buffer_data.sizeof
{.experimental: "codeReordering".}{.deadCodeElim: on.}import vulkantypeBoundImage* = ref objectimage*: VkImageimageMem*: VkDeviceMemorySemaphores* = ref objectpresentComplete*: VkSemaphorerenderComplete*: VkSemaphoreSwapchain_Buffer* = objectimage*: VkImageview*: VkImageViewQueueFamily* = objectgraphics*: uint32transfer*: uint32compute*: uint32sparse*: uint32usingSparse*: boolusingCompute*: bool#[ GraphicsPipeline* = ref objectpipelineLayout*: VkPipelineLayoutpipeline*: VkPipeline ]#
import vulkan, vulkan_utilstypeUniform_Buffer_Object = object of RootObjdevice_memory*: VkDeviceMemoryvk_buffer*: VkBuffer# The descriptor set stores the resources bound to the binding points in a shader# It connects the binding points of the different shaders with the buffers and images used for those bindingsdescriptor_buffer_info*: VkDescriptorBufferInfodescriptor_set*: VkDescriptorSet# We keep a pointer to the mapped buffer, so we can easily update it's contents via a memcpydata*: pointerUniform_Buffer* = ref object of Uniform_Buffer_Objectproc a_uniform_buffer*( vk_device: VkDevice, gpu_memory_properties: VkPhysicalDeviceMemoryProperties, buffer_usage_flags: VkBufferUsageFlags, memory_flags: VkMemoryPropertyFlags, allocation_size: VkDeviceSize): Uniform_Buffer =result = Uniform_Buffer()varallocation_info = VkMemoryAllocateInfo(sType: VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)memory_allocation_flag_info = VkMemoryAllocateFlagsInfo(sType: VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR)mem_reqs: VkMemoryRequirementsbuffer_info = VkBufferCreateInfo( sType: VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, pNext: nil, size: allocation_size, usage: VkBufferUsageFlags VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT)assert vkCreateBuffer( vk_device, addr buffer_info, nil, addr result.vk_buffer) == VK_SUCCESSvkGetBufferMemoryRequirements( vk_device, result.vk_buffer, addr mem_reqs)allocation_info.allocationSize = mem_reqs.sizeallocation_info.memoryTypeIndex = gpu_memory_properties.find_memory_with_property( mem_reqs.memoryTypeBits, memory_flags)discard vkAllocateMemory( vk_device, addr allocation_info, nil, addr result.device_memory)discard vkBindBufferMemory( vk_device, result.vk_buffer, result.device_memory, VkDeviceSize 0)assert vkMapMemory( vk_device, result.device_memory, VkDeviceSize 0, allocation_size, VkMemoryMapFlags 0, addr result.data) == VK_SUCCESSreturn result
import lockstypeTimeLine* = objectsemaphore*: VkSemaphoretimeline*: uint64TimeLineLock* = objectpending*: uint64cond*: Cond
{.experimental: "codeReordering".}import vulkan, vkTypes, depth_stencil#, math, bitops#, ./utils/etc, glmimport ../portal/[portalObj]typeSwapchain_Buffer* = ref objectimage*: VkImageimage_view*: VkImageViewSwapchain* = ref objecthandle*: VkSwapchainKHRoldSwapchain*: VkSwapchainKHRcurrent_extent*: VkExtent2Dsurface*: VkSurfaceKHRimages*: seq[VkImage]buffers*: seq[Swapchain_Buffer]#auxillary infoimage_count*: uint32 # defalut = 3surfaceCaps*: VkSurfaceCapabilitiesKHRimageUsage*: VkImageUsageFlagspreTransform*: VkSurfaceTransformFlagBitsKHRcompositeAlpha*: VkCompositeAlphaFlagBitsKHRthe_presentation_mode*: VkPresentModeKHRcolorFormat*: VkFormatcolorSpace*: VkColorSpaceKHRdepth_format*: VkFormatpresentModeCount*: uint32presentModes*: seq[VkPresentModeKHR]surfaceFormat*: VkSurfaceFormatKHRarrayLayers*: uint32formats*: seq[VkSurfaceFormatKHR]surfaceFormats*: seq[VkSurfaceFormatKHR]proc check_surface_support*( gpu: VkPhysicalDevice, sc: var SwapChain, theQni: var uint32, instance: VkInstance) =varqueueCount : uint32formatCount: uint32supportsPresent: seq[VkBool32]gqni: uint32 = uint32.highpqni: uint32 = uint32.highwhen defined windows:vkGetPhysicalDeviceQueueFamilyProperties = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32 , pQueueFamilyProperties: ptr VkQueueFamilyProperties ): void {.stdcall.}](vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties"))vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32 ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR"))vkGetPhysicalDeviceSurfaceFormatsKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32 , pSurfaceFormats: ptr VkSurfaceFormatKHR ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR"))vkGetPhysicalDeviceQueueFamilyProperties(gpu, queueCount.addr, nil)var queueProperties = newSeq[VkQueueFamilyProperties](queueCount)vkGetPhysicalDeviceQueueFamilyProperties(gpu, queueCount.addr, queueProperties[0].addr)if queueCount == 0: quit "ERROR: No Queue Families were found by `vkGetPhysicalDeviceQueueFamilyProperties`. \n Which means Vulkan has no way to actually submit things to the GPU to draw."supportsPresent.setLen queueCountfor q in 0 ..< queueCount:discard vkGetPhysicalDeviceSurfaceSupportKHR( gpu, q.uint32, sc.surface, supportsPresent[q].addr)# find a q that can present and do graphicsfor i in 0..<queueCount:if bitand(queueProperties[i].queueFlags.int, VK_QUEUE_GRAPHICS_BIT.int) != 0:if gqni == uint32.high: gqni = iif supportsPresent[i].bool == true:gqni = ipqni = i# no Q supports presenting and graphics# find a separate oneif pqni == uint32.high:for i in 0..queueCount:if supportsPresent[i].bool == true: pqni = iif gqni == uint32.high orpqni == uint32.high: quit "ERROR: No valid Queue was found, so no GPU work can be done."if pqni != gqni:echo "WARNING: The present queue and graphics queue are not the same."echo "WARNING: The present queue and graphics queue are not the same."echo "WARNING: The present queue and graphics queue are not the same."echo "WARNING: The present queue and graphics queue are not the same."theQni = gqni#Find supported surface formatsdiscard vkGetPhysicalDeviceSurfaceFormatsKHR(gpu, sc.surface, formatCount.addr, nil)if formatCount == 0: quit "ERROR: No surface formats found by `vkGetPhysicalDeviceSurfaceFormatsKHR` \n Which Vulkan needs in order to organize and construct a frame for the GPU "sc.formats.setLen formatCountdiscard vkGetPhysicalDeviceSurfaceFormatsKHR(gpu, sc.surface, formatCount.addr, addr sc.formats[0])# The surface has no preferred format, so we assume VK_FORMAT_B8G8R8A8_UNORM# TODO: Something better?if formatCount == 1 and sc.formats[0].format == VK_FORMAT_UNDEFINED:sc.colorFormat = VK_FORMAT_B8G8R8A8_UNORMsc.colorSpace = sc.formats[0].colorSpaceelse:var found: boolfor sformat in sc.formats:if sformat.format == VK_FORMAT_B8G8R8A8_UNORM:sc.colorFormat = sformat.formatsc.colorSpace = sformat.colorSpacefound = truebreakif not found:echo "WARNING: NOT FOUND: VK_FORMAT_B8G8R8A8_UNORM"echo "USING: ", $sc.formats[0].formatecho "USING: ", $sc.formats[0].colorSpacesc.colorFormat = sc.formats[0].formatsc.colorSpace = sc.formats[0].colorSpaceproc create_swapchain*( device: VkDevice, sc: var Swapchain, gpu: VkPhysicalDevice, current_viewport: var VkViewport) =var oldswap = sc.oldSwapchainvar gpu_surface_capabilities_result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR( gpu, sc.surface, sc.surfaceCaps.addr)#echo "gpu_surface_capa result: " & $gpu_surface_capabilities_resultdiscard gpu.vkGetPhysicalDeviceSurfacePresentModesKHR( sc.surface, addr sc.presentModeCount, nil)assert(sc.presentModeCount > 0)sc.presentModes.setLen sc.presentModeCountdiscard gpu.vkGetPhysicalDeviceSurfacePresentModesKHR( sc.surface, addr sc.presentModeCount, addr sc.presentModes[0])sc.the_presentation_mode = VK_PRESENT_MODE_MAILBOX_KHR# vulkan special value -> the size of the surface will be set by the swapchainif sc.surfaceCaps.currentExtent.width == uint 0xFFFFFFFF:echo "0xFFFFFFFFFFFFFFFFFF"#sc.extent.width = .theWindowWidth#sc.extent.height = .theWindowHeightelse:sc.current_extent = sc.surfaceCaps.currentExtentcurrent_viewport = VkViewport( width: float32 sc.surfaceCaps.currentExtent.width, height: (float32 sc.surfaceCaps.currentExtent.height), minDepth: 0.0f, maxDepth: 1.0f)#rec.swapchain.current_extent.width = int sc.surfaceCaps.currentExtent.width#rec.swapchain.current_extent.height = int sc.surfaceCaps.currentExtent.heightvardesired_number_of_swapchain_images = sc.surfaceCaps.minImageCount + 1 #(?) 3compositeAlpha:VkCompositeAlphaFlagBitsKHR = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHRcompositeAlphaFlags = [ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR]# determine number of imagesif sc.surfaceCaps.maxImageCount > 0 anddesired_number_of_swapchain_images > sc.surfaceCaps.maxImageCount:desired_number_of_swapchain_images = sc.surfaceCaps.maxImageCount# find transform of the surfaceif bitand( sc.surfaceCaps.supportedTransforms.int, VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR.int) == 1:sc.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHRelse:echo "ERROR: bitand(scSupportDetails.capabilities.supportedTransforms.int, VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR.int) == 1 -> FAILED"sc.preTransform = sc.surfaceCaps.currentTransform# find alpha formatfor flag in compositeAlphaFlags:if bitand(sc.surfaceCaps.supportedCompositeAlpha.int, flag.int) == 1:compositeAlpha = flagbreakvar createInfo = VkSwapchainCreateInfoKHR(sType: VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR, surface: sc.surface, minImageCount: desired_number_of_swapchain_images, imageFormat: sc.colorFormat, imageColorSpace: sc.colorSpace, imageExtent: sc.current_extent, imageUsage: VkImageUsageFlags bitor( VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT.int, VK_IMAGE_USAGE_TRANSFER_SRC_BIT.int, VK_IMAGE_USAGE_TRANSFER_DST_BIT.int), preTransform: VkSurfaceTransformFlagBitsKHR sc.preTransform, imageArrayLayers: 1, imageSharingMode: VK_SHARING_MODE_EXCLUSIVE, queueFamilyIndexCount: 0, presentMode: VK_PRESENT_MODE_FIFO_KHR #TODO sc.the_presentation_mode # need to do this proper later, oldSwapChain: oldswap, clipped: VKBool32 VK_TRUE, compositeAlpha: compositeAlpha)var scres = vkCreateSwapChainKHR( device, addr createInfo, nil, addr sc.handle)if scres != VK_SUCCESS: quit $scresdiscard vkGetSwapchainImagesKHR( device, sc.handle, addr sc.image_count, nil)sc.images.setLen sc.image_countdiscard vkGetSwapchainImagesKHR( device, sc.handle, addr sc.image_count, addr sc.images[0])sc.buffers.setLen sc.image_countfor buffer in sc.buffers.mitems:buffer = Swapchain_Buffer()sc.colorFormat = VK_FORMAT_B8G8R8A8_UNORMsc.image_count = sc.image_countfor i in 0 ..< sc.image_count:var createInfo = VkImageViewCreateInfo( sType: VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, viewType: VK_IMAGE_VIEW_TYPE_2D, format: sc.colorFormat, flags: VkImageViewCreateFlags 0, components: VkComponentMapping( r: VkComponentSwizzle.VK_COMPONENT_SWIZZLE_R, g: VkComponentSwizzle.VK_COMPONENT_SWIZZLE_G, b: VkComponentSwizzle.VK_COMPONENT_SWIZZLE_B, a: VkComponentSwizzle.VK_COMPONENT_SWIZZLE_A), image: sc.images[i], subresourceRange: VkImageSubresourceRange(aspectMask: VkImageAspectFlags(VK_IMAGE_ASPECT_COLOR_BIT), baseMipLevel: 0, levelCount: 1, baseArrayLayer: 0, layerCount: 1))sc.buffers[i].image = sc.images[i]create_info.image = sc.buffers[i].imagevarimage_view_result = vkCreateImageView( device, createInfo.addr, nil, addr sc.buffers[i].image_view)assert image_view_result == VK_SUCCESS, "vkCreateImageView failed"if (sc.oldSwapchain.int != VkSwapchainKHR(0).int):for i in 0 ..< sc.image_count: vkDestroyImageView( device, sc.buffers[i].image_view, nil)vkDestroySwapchainKHR( device, sc.oldSwapchain, nil)#[ proc anImageView*( device: VkDevice, sc: var SwapChain, rebuilding: bool = false) =if rebuilding:sc.images.setLen 0discard vkGetSwapchainImagesKHR(device, sc.handle, addr sc.image_count, nil)sc.images.setLen sc.image_countdiscard vkGetSwapchainImagesKHR(device, sc.handle, sc.image_count.addr, addr sc.images[0])sc.buffers.setLen sc.image_countfor b in 0..<sc.buffers.len:sc.buffers[b] = SwapChain_Buffer()sc.colorFormat = VK_FORMAT_B8G8R8A8_UNORMsc.image_count = sc.image_countfor i in 0 ..< sc.image_count:var createInfo = VkImageViewCreateInfo( sType: VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, viewType: VK_IMAGE_VIEW_TYPE_2D, format: sc.colorFormat, flags: VkImageViewCreateFlags 0, components: VkComponentMapping( r: VK_COMPONENT_SWIZZLE_IDENTITY, g: VK_COMPONENT_SWIZZLE_IDENTITY, b: VK_COMPONENT_SWIZZLE_IDENTITY, a: VK_COMPONENT_SWIZZLE_IDENTITY), subresourceRange: VkImageSubresourceRange(aspectMask: VkImageAspectFlags(VK_IMAGE_ASPECT_COLOR_BIT), baseMipLevel: 0, levelCount: 1, baseArrayLayer: 0, layerCount: 1))sc.buffers[i].image = sc.images[i]createInfo.image = sc.buffers[i].imageif vkCreateImageView( device, createInfo.addr, nil, sc.buffers[i].view.addr) != VK_SUCCESS: quit("failed to create image view") ]#proc create_frame_buffers*( vk_device: VkDevice, frame_buffers: var seq[VkFramebuffer], render_pass: var VkRenderPass, swapchain: var Swapchain, depth_stencil: var Depth_Stencil, rebuilding = false) =if rebuilding:frame_buffers.setLen 0frame_buffers.setLen swapchain.image_count#echo frame_buffers.lenfor i in 0 ..< frame_buffers.len:var attachments: array[2, VkImageView]# Depth/Stencil attachment is the same for all frame buffersattachments[0] = swapchain.buffers[i].image_viewattachments[1] = depth_stencil.viewvar frameBufferCreateInfo = VkFramebufferCreateInfo(sType: VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, pNext: nil, render_pass: render_pass, attachmentCount: uint32 attachments.len, pAttachments: addr attachments[0], width: uint32 swapchain.current_extent.width, height: uint32 swapchain.current_extent.height, layers: 1)assert vkCreateFramebuffer( vk_device, addr frameBufferCreateInfo, nil, addr frame_buffers[i]) == VK_SUCCESS#echo repr frame_buffers#TODO: we need to somehow get Scene in this without recursive dep errors# so we can rebuild render_Pass_Begin_info tooooproc rebuild*( vk_device: VkDevice, frame_buffers: var seq[VkFramebuffer], render_pass: var VkRenderPass, swapchain: var Swapchain, depth_stencil: var Depth_Stencil, gpu_memory_properties: VkPhysicalDeviceMemoryProperties) =vk_device.destroyDepthStencil depth_stencil#[ depth_stencil = create_depth_stencil( vk_device, swapchain.color_format, swapchain.current_extent, gpu_memory_properties) ]#frame_buffers.setLen 0frame_buffers.setLen swapchain.image_countfor i in 0 ..< frame_buffers.len:var attachments: array[2, VkImageView]# Depth/Stencil attachment is the same for all frame buffersattachments[0] = swapchain.buffers[i].image_viewattachments[1] = depth_stencil.viewvar frameBufferCreateInfo = VkFramebufferCreateInfo(sType: VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, pNext: nil, render_pass: render_pass, attachmentCount: 2, pAttachments: addr attachments[0], width: swapchain.current_extent.width, height: swapchain.current_extent.height, layers: 1)if vkCreateFramebuffer( vk_device, addr frameBufferCreateInfo, nil, addr frame_buffers[i]) != VK_SUCCESS: quit "bad framebiuffer create"#[ for shape in scene.shapes.mitems:#rec.setupDescrSetLayout shapeshapes.prepPipeline( rec, scene.render_pass, shape.graphicsPipeline, shape.hollow, shape.kind)for text in scene.texts.mitems:rec.setupDescrSetLayout texttextM.prepPipeline( rec, render_pass, text.graphicsPipeline) ]##rec.build scene
import vulkan, vkTypesproc create_vulkan_semaphores*( vulkan_device: VkDevice, the_present_semaphores: var array[2, VkSemaphore], the_render_semaphores: var array[2, VkSemaphore]) =varsemaphore_create_info = VkSemaphoreCreateInfo( sType: VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, pNext: nil)for i in 0..1:discard vkCreateSemaphore( vulkan_device, addr semaphore_create_info, nil, addr the_present_semaphores[i])discard vkCreateSemaphore( vulkan_device, addr semaphore_create_info, nil, addr the_render_semaphores[i])
import vulkan, bitops, render_passproc create_color_only_render_pass*( device: VkDevice, color_format: VkFormat): Render_Pass =result = A_Render_Pass()varcolor_attachment = VkAttachmentDescription( format: color_format, samples: VK_SAMPLE_COUNT_1_BIT, loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, storeOp: VK_ATTACHMENT_STORE_OP_STORE, stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, finalLayout: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR)color_attachment_reference = VkAttachmentReference( attachment: 0, layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)subpass = VkSubpassDescription( pipelineBindPoint: VK_PIPELINE_BIND_POINT_GRAPHICS, colorAttachmentCount: 1, pColorAttachments: addr color_attachment_reference)render_pass_info = VkRenderPassCreateInfo( sType: VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, attachmentCount: 1, pAttachments: addr color_attachment, subpassCount: 1, pSubpasses: addr subpass, dependencyCount: 1)dependency = VkSubpassDependency( srcSubpass: VK_SUBPASS_EXTERNAL #External means outside of the render pipeline, in srcPass, it means before the render pipeline, dstSubpass: 0 #must be higher than srcSubpass, srcStageMask: VkPipelineStageFlags VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, srcAccessMask: VkAccessFlags 0, dstStageMask: VkPipelineStageFlags VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, dstAccessMask: VkAccessFlags bitor( VK_ACCESS_COLOR_ATTACHMENT_READ_BIT.ord, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT.ord))render_pass_info.pDependencies = addr dependencyvarres: VkResult = vkCreateRenderPass( device, addr render_pass_info, nil, addr result.vk_handle)assert res == VK_SUCCESS, "create_color_only_render_pass FAILED: " & $resproc create_basic_shape_render_pass*( device: VkDevice, color_format: VkFormat, depth_format: VkFormat): Render_Pass =result = A_Render_Pass()varattachments: array[2,VkAttachmentDescription]subpass_dependencies: array[2,VkSubpassDependency]color_attachment_reference = VkAttachmentReference( attachment: 0, layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)depth_attachment_reference = VkAttachmentReference( attachment: 1, layout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL)subpass = VkSubpassDescription( pipelineBindPoint: VK_PIPELINE_BIND_POINT_GRAPHICS, colorAttachmentCount: 1, pColorAttachments: addr color_attachment_reference, pDepthStencilAttachment: addr depth_attachment_reference # Reference to the depth attachment in slot 1, inputAttachmentCount: 0 # Input attachments can be used to sample from contents of a previous subpass, pInputAttachments: nil # (Input attachments not used by this example), preserveAttachmentCount: 0 # Preserved attachments can be used to loop (and preserve) attachments through subpasses, pPreserveAttachments: nil # (Preserve attachments not used by this example), pResolveAttachments: nil # Resolve attachments are resolved at the end of a sub pass and can be used for e.g. multi sampling)attachment_description = VkAttachmentDescription( format: color_format, samples: VK_SAMPLE_COUNT_1_BIT, loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, storeOp: VK_ATTACHMENT_STORE_OP_STORE, stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, finalLayout: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR)# depthsubpass_dependencies[0] = VkSubpassDependency( srcSubpass: VK_SUBPASS_EXTERNAL #External means outside of the render pipeline, in srcPass, it means before the render pipeline, dstSubpass: 0 #must be higher than srcSubpass, srcStageMask: VkPipelineStageFlags bitor( VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT.ord, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT.ord), dstStageMask: VkPipelineStageFlags bitor( VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT.ord, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT.ord), srcAccessMask: VkAccessFlags VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstAccessMask: VkAccessFlags bitor( VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT.ord, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT.ord))subpass_dependencies[1] = VkSubpassDependency( srcSubpass: VK_SUBPASS_EXTERNAL, dstSubpass: 0, srcStageMask: VkPipelineStageFlags VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, dstStageMask: VkPipelineStageFlags VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, srcAccessMask: VkAccessFlags 0, dstAccessMask: VkAccessFlags bitor( VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT.ord, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT.ord), dependencyFlags: VkDependencyFlags 0)# Color attachmentattachments[0].format = colorFormat # Use the color format selected by the swapchainattachments[0].samples = VK_SAMPLE_COUNT_1_BIT # We don't use multi sampling in this exampleattachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR # Clear this attachment at the start of the render passattachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE # Keep its contents after the render pass is finished (for displaying it)attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE # We don't use stencil, so don't care for loadattachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE # Same for storeattachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED # Layout at render pass start. Initial doesn't matter, so we use undefinedattachments[0].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR # Layout to which the attachment is transitioned when the render pass is finished# As we want to present the color buffer to the swapchain, we transition to PRESENT_KHR# Depth attachmentattachments[1].format = depthFormat # A proper depth format is selected in the example baseattachments[1].samples = VK_SAMPLE_COUNT_1_BITattachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR # Clear depth at start of first subpassattachments[1].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE # We don't need depth after render pass has finished (DONT_CARE may result in better performance)attachments[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE # No stencilattachments[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE # No Stencilattachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED # Layout at render pass start. Initial doesn't matter, so we use undefinedattachments[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL # Transition to depth/stencil attachmentvar render_pass_info = VkRenderPassCreateInfo( sType: VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, attachmentCount: 2, subpassCount: 1, pSubpasses: addr subpass, dependencyCount: 1, pAttachments: addr attachments[0], pDependencies: addr subpass_dependencies[0])render_pass_info.pDependencies = addr subpass_dependencies[0]var res: VkResult = vkCreateRenderPass( device, addr render_pass_info, nil, addr result.vk_handle)assert res == VK_SUCCESS, "create_color_only_render_pass FAILED: " & $res
import vulkantypeRender_Pass* = ref objectvk_handle*: VkRenderPassproc A_Render_Pass*(): Render_Pass =result = Render_Pass()
import vulkan, vulkan_record, pipeline_record, graphics_pipelineproc show*( vulkan_record: var Vulkan_Record, pipeline_record: Pipeline_Record) =varcmdBufInfo = VkCommandBufferBeginInfo(sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)scissor: VkRect2DclearValues: array[2,VkClearValue]renderPassBeginInfo: VkRenderPassBeginInfoimageRange = VkImageSubresourceRange( aspectMask: VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BIT, levelCount: 1, layerCount: 1)discard vkResetFences( vulkan_record.vk_device, 1, addr vulkan_record.fences[vulkan_record.current_frame])if vulkan_record.current_frame_buffer > 1:vulkan_record.current_frame_buffer = 1discard vkResetCommandBuffer( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], VkCommandBufferResetFlags 0)scissor.extent.width = uint32 vulkan_record.swapchain.current_extent.widthscissor.extent.height = uint32 vulkan_record.swapchain.current_extent.height#scissor.offset.x = 0#scissor.offset.y = 0clearValues[0].color = VkClearColorValue(float32: [1f, 0f, 0f, 1f])clearValues[1].depth_stencil = VkClearDepthStencilValue(depth: 1.0f, stencil: 0 )renderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFOrenderPassBeginInfo.pNext = nilrenderPassBeginInfo.renderArea.offset.x = 0renderPassBeginInfo.renderArea.offset.y = 0renderPassBeginInfo.renderArea.extent.width = uint32 vulkan_record.swapchain.current_extent.widthrenderPassBeginInfo.renderArea.extent.height = uint32 vulkan_record.swapchain.current_extent.heightrenderPassBeginInfo.clearValueCount = 2renderPassBeginInfo.pClearValues = addr clearValues[0]renderPassBeginInfo.renderPass = vulkan_record.current_render_pass.vk_handlerenderPassBeginInfo.framebuffer = vulkan_record.frame_buffers[vulkan_record.current_image_index]discard vkBeginCommandBuffer( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], addr cmdBufInfo)vkCmdSetViewport( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], 0, 1, addr vulkan_record.current_viewport)vkCmdSetScissor( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], 0, 1, addr scissor)vkCmdClearColorImage( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], vulkan_record.swapchain.images[vulkan_record.current_frame_buffer], VK_IMAGE_LAYOUT_GENERAL, addr clearValues[0].color, 1, addr imageRange)vkCmdBeginRenderPass( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], addr renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE)varoffsets = VkDeviceSize 0#[ vkCmdBindDescriptorSets( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_record.pipelines["test"].pipeline_layout, 0, 1, addr descriptor_set, 0, nil)]#vkCmdEndRenderPass vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer]discard vkEndCommandBuffer vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer]vulkan_record.ready_frame = trueproc submit_frame*( image_index: var uint32, render_complete_semaphore: VkSemaphore, queue: VkQueue, current_swapchain_handle: VkSwapchainKHR) =varpresentInfo: VkPresentInfoKHRpresentInfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHRpresentInfo.pNext = nilpresentInfo.waitSemaphoreCount = 1presentInfo.pWaitSemaphores = addr render_complete_semaphorepresentInfo.swapchainCount = 1presentInfo.pSwapchains = addr current_swapchain_handlepresent_info.pImageIndices = addr image_index# Check if a wait semaphore has been specified to wait for# before presenting the imageif (render_complete_semaphore.int != 0):presentInfo.pWaitSemaphores = addr render_complete_semaphorepresentInfo.waitSemaphoreCount = 1#TODO: WHY DOES THIS MEMORY LEAK EVERY FRAMEvar preres = vkQueuePresentKHR( queue, addr presentInfo)#if preres == VK_SUBOPTIMAL_KHR: quit "bad vkQueuePresentKHR"# vulkan_record.windowResize scene# scene.rebuild vulkan_record# discard vkDeviceWaitIdle vulkan_record.vk_device# vulkan_record.ready_frame = trueproc send_frame*( vulkan_record: var Vulkan_Record) =#prep framediscard vkWaitForFences( vulkan_record.vk_device, 1, addr vulkan_record.fences[vulkan_record.current_frame], VKBool32 true, uint64.high)varres = vkAcquireNextImageKHR( vulkan_record.vk_device, vulkan_record.swap_chain.handle, uint64.high, vulkan_record.present_semaphores[vulkan_record.current_frame], VkFence 0, addr vulkan_record.current_image_index)if res == VK_ERROR_OUT_OF_DATE_KHR: discard#resize_screen()# show l#discard vkResetFences( vulkan_record.vk_device, 1, addr vulkan_record.fences[vulkan_record.current_frame])discard vkResetCommandBuffer( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], VkCommandBufferResetFlags 0)varcmdBufInfo = VkCommandBufferBeginInfo(sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)scissor: VkRect2DclearValues: array[2,VkClearValue]renderPassBeginInfo: VkRenderPassBeginInfoimageRange = VkImageSubresourceRange( aspectMask: VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BIT, levelCount: 1, layerCount: 1)scissor.extent.width = uint32 vulkan_record.swapchain.current_extent.widthscissor.extent.height = uint32 vulkan_record.swapchain.current_extent.height#scissor.offset.x = 0#scissor.offset.y = 0clearValues[0].color = VkClearColorValue(float32: [1f, 0f, 0f, 1f])clearValues[1].depth_stencil = VkClearDepthStencilValue(depth: 1.0f, stencil: 0 )renderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFOrenderPassBeginInfo.pNext = nilrenderPassBeginInfo.renderArea.offset.x = 0renderPassBeginInfo.renderArea.offset.y = 0renderPassBeginInfo.renderArea.extent.width = uint32 vulkan_record.swapchain.current_extent.widthrenderPassBeginInfo.renderArea.extent.height = uint32 vulkan_record.swapchain.current_extent.heightrenderPassBeginInfo.clearValueCount = 2renderPassBeginInfo.pClearValues = addr clearValues[0]renderPassBeginInfo.renderPass = vulkan_record.current_render_pass.vk_handlerenderPassBeginInfo.framebuffer = vulkan_record.frame_buffers[vulkan_record.current_image_index]discard vkBeginCommandBuffer( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], addr cmdBufInfo)vkCmdBeginRenderPass( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], addr renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE)vkCmdSetViewport( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], 0, 1, addr vulkan_record.current_viewport)vkCmdSetScissor( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], 0, 1, addr scissor)vkCmdBindDescriptorSets( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], VK_PIPELINE_BIND_POINT_GRAPHICS, vulkan_record.current_graphics_pipeline.pipelineLayout, 0, 1, addr vulkan_record.uniform_buffers[vulkan_record.current_frame_buffer].descriptor_set, 0, nil)# Bind the rendering pipeline# The pipeline (state object) contains all states of the rendering pipeline, binding it will set all the states specified at pipeline creation timevkCmdBindPipeline( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], VK_PIPELINE_BIND_POINT_GRAPHICS, vulkan_record.current_graphics_pipeline.pipeline)# Bind triangle vertex buffer (contains position and colors)var offsets: array[1, VkDeviceSize] = [VkDeviceSize 0]#[ vkCmdBindVertexBuffers(vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], 0, 1, &vertices.buffer, offsets)# Bind triangle index buffervkCmdBindIndexBuffer( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], indices.buffer, 0, VK_INDEX_TYPE_UINT32)# Draw indexed trianglevkCmdDrawIndexed( vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], indices.count, 1, 0, 0, 1) ]#vkCmdEndRenderPass vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer]discard vkEndCommandBuffer vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer]# show l#varwaitStageMask = VkPipelineStageFlags VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITsubmitInfo = VkSubmitInfo( sType: VK_STRUCTURE_TYPE_SUBMIT_INFO, pWaitDstStageMask: addr waitStageMask, pWaitSemaphores: addr vulkan_record.present_semaphores[vulkan_record.current_frame], waitSemaphoreCount: 1, pSignalSemaphores: addr vulkan_record.render_semaphores[vulkan_record.current_frame], commandBufferCount: 1, pCommandBuffers: addr vulkan_record.draw_command_buffers[vulkan_record.current_frame_buffer], signalSemaphoreCount: 1)discard vkQueueSubmit( vulkan_record.queue, 1, submitInfo.addr, vulkan_record.fences[vulkan_record.current_frame])if vulkan_record.current_frame == 2:vulkan_record.current_frame = 1submit_frame( vulkan_record.current_image_index, vulkan_record.render_semaphores[vulkan_record.current_frame], vulkan_record.queue, vulkan_record.swapchain.handle)
typeRenderRecObj = ref object of RootObjhasSwapChain*: boolRenderRec* = object of RenderRecObj
# import vulkan# , device# , q# #[# // A list of present modes in order of priority (vector[0] has high priority, vector[size-1] has low priority)# std::vector<VkPresentModeKHR> present_mode_priority_list =# {# VK_PRESENT_MODE_FIFO_KHR,# VK_PRESENT_MODE_MAILBOX_KHR# };# // A list of surface formats in order of priority (vector[0] has high priority, vector[size-1] has low priority)# std::vector<VkSurfaceFormatKHR> surface_format_priority_list = {# {VK_FORMAT_R8G8B8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR},# {VK_FORMAT_B8G8R8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR},# {VK_FORMAT_R8G8B8A8_UNORM, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR},# {VK_FORMAT_B8G8R8A8_UNORM, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR}};# ]## const bufferPoolBlockSize: uint32 = 256# type# RenderFrameObj = object of RootObj# surface_extent*: VkExtent2D# device*: Device# q*: Queue# swapchain_properties*: SwapchainProperties# prepared*: bool# active*: bool# currFrameInd*: uin32# framePtrs*: seq[ptr RenderFrames]# theSemaphore*: VkSemaphore# # VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR# preTransform*: VkSurfaceTransformFlagBitsKHR# RenderFrame* = ref object of RenderFrameObj# proc aDevice: VkDevice = nil# proc aFence: VkFence = nil
import vulkan, graphics_pipelineimport std/tablesimport ../utils/etctypePipeline_Record_Obj = object of RootObjpipelines*: Table[string, Graphics_Pipeline]Pipeline_Record* = ref object of Pipeline_Record_Objproc add*( pipeline_record: var Pipeline_Record, graphics_pipeline: Graphics_Pipeline) =#echo string_of graphics_pipelinepipeline_record.pipelines[string_of graphics_pipeline] = graphics_pipeline
# import vulkan# , bitops
{.experimental: "codeReordering".}{.deadCodeElim: on.}import vulkan, buffer, swapchain, depth_stencil, render_pass, render_passes, uniform_buffer, vulkan_utilsimport std/osimport glm#import ../drawable/shape_typestypeRender_Update_Stage* = enumNever, Always, Pre, Normal, Post, RenderVertex* = objectposition*: array[3,float32]color*: array[3, float32]#texture_coordinates*: array[3, float32]Graphics_Pipeline_Obj = object of RootObj#Mode mode#Shader* shaderpipeline_stage*: Render_Update_Stageshader_stages*: seq[string]#shader_defines*: Shader_Define#depth*: DepthpushDescriptors*: booldynamic_states*: seq[VkDynamicState]shader_modules*: seq[VkShaderModule]shaders*: seq[string]pipeline*: VkPipelinepipeline_layout*: VkPipelineLayoutpipeline_layout_create_info*: VkPipelineLayoutCreateInfopipelineBindPoint*: VkPipelineBindPointdescriptor_pool*: VkDescriptorPooldescriptor_set*: VkDescriptorSetdescriptor_set_layout*: VkDescriptorSetLayoutdepth_stencil*: Depth_Stenciltopology*: VkPrimitiveTopologypolygonMode*: VkPolygonModecullMode*: VkCullModeFlagsfrontFace*: VkFrontFacerender_pass*: Render_Passblend_attachment_states*: array[1, VkPipelineColorBlendAttachmentState]pipeline_shader_stages*: seq[VkPipelineShaderStageCreateInfo]vertexInputStateCreateInfo*: VkPipelineVertexInputStateCreateInfoinputAssemblyState*: VkPipelineInputAssemblyStateCreateInforasterizationState*: VkPipelineRasterizationStateCreateInfocolourBlendState*: VkPipelineColorBlendStateCreateInfodepthStencilState*: VkPipelineDepthStencilStateCreateInfoviewportState*: VkPipelineViewportStateCreateInfomultisampleState*: VkPipelineMultisampleStateCreateInfodynamicState*: VkPipelineDynamicStateCreateInfotessellationState*: VkPipelineTessellationStateCreateInforender_pass_begin_info *: VkRenderPassBeginInfoGraphics_Pipeline* = ref object of Graphics_Pipeline_Objproc a_graphics_pipeline*( vk_device: VkDevice, swapchain: Swapchain, descriptor_buffer_info: VkDescriptorBufferInfo, pipeline_cache: var VkPipelineCache, gpu_memory_properties: VkPhysicalDeviceMemoryProperties, shaders: seq[string] = @[], hollow: bool = false, make_depth_stencil: bool = false): Graphics_Pipeline =var shader_stages: seq[VkPipelineShaderStageCreateInfo]shader_stages.setLen shaders.lenresult = Graphics_Pipeline( descriptor_pool: create_descriptor_pool( vk_device ), descriptor_set_layout: create_descriptor_set_layout( vk_device ), render_pass: create_basic_shape_render_pass( vk_device, swapchain.color_format, swapchain.depth_format))if make_depth_stencil:result.depth_stencil = create_depth_stencil( vk_device, swapchain.color_format, swapchain.depth_format, swapchain.current_extent, gpu_memory_properties)result.pipeline_layout = create_pipeline_layout( vk_device, result.descriptor_set_layout, 0)result.descriptor_set = create_descriptor_sets( vk_device, result.descriptor_set_layout, result.descriptor_pool, descriptor_buffer_info)vartopo: VkPrimitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LISTpMode: VkPolygonMode = VK_POLYGON_MODE_FILLvarpipeline_info = VkGraphicsPipelineCreateInfo(sType: VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, layout: result.pipeline_layout, render_pass: result.render_pass.vk_handle#subpass: 0,#basePipelineHandle: VkPipeline(VK_NULL_HANDLE), # optional#basePipelineIndex: -1, # optional)#Input assembly state describes how primitives are assembled#This pipeline will assemble vertex data as a triangle lists (though we only use one triangle)inputAssembly = VkPipelineInputAssemblyStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, topology: topo#primitiveRestartEnable: VkBool32(VK_FALSE),)rasterizer = VkPipelineRasterizationStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, depthClampEnable: VkBool32(VK_FALSE), rasterizerDiscardEnable: VkBool32(VK_FALSE), polygonMode: pMode, lineWidth: 1.float32, cullMode: VkCullModeFlags VK_CULL_MODE_NONE, frontFace: VK_FRONT_FACE_COUNTER_CLOCKWISE, depthBiasEnable: VkBool32(VK_FALSE)# , depthBiasConstantFactor: 0f # optional# , depthBiasClamp: 0f # optional# , depthBiasSlopeFactor: 0f # optional)#[VK_BLEND_FACTOR_ZERO = 0VK_BLEND_FACTOR_ONE = 1VK_BLEND_FACTOR_SRC_COLOR = 2VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3VK_BLEND_FACTOR_DST_COLOR = 4VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5VK_BLEND_FACTOR_SRC_ALPHA = 6VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7VK_BLEND_FACTOR_DST_ALPHA = 8VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9VK_BLEND_FACTOR_CONSTANT_COLOR = 10VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11VK_BLEND_FACTOR_CONSTANT_ALPHA = 12VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14VK_BLEND_FACTOR_SRC1_COLOR = 15VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16VK_BLEND_FACTOR_SRC1_ALPHA = 17VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18]## Assume Alpha BlendingcolorBlendAttachment = VkPipelineColorBlendAttachmentState(blendEnable: VKBool32 VK_TRUE, srcColorBlendFactor: VkBlendFactor VK_BLEND_FACTOR_SRC_ALPHA, dstColorBlendFactor: VkBlendFactor VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, colorBlendOp: VkBlendOp VK_BLEND_OP_ADD, srcAlphaBlendFactor: VkBlendFactor VK_BLEND_FACTOR_ONE, dstAlphaBlendFactor: VkBlendFactor VK_BLEND_FACTOR_ZERO, alphaBlendOp: VkBlendOp VK_BLEND_OP_ADD, colorWriteMask: VkColorComponentFlags VK_COLOR_COMPONENT_R_BIT.ord orVK_COLOR_COMPONENT_G_BIT.ord orVK_COLOR_COMPONENT_B_BIT.ord orVK_COLOR_COMPONENT_A_BIT.ord)colorBlending = VkPipelineColorBlendStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, logicOpEnable: VkBool32(VK_FALSE), logicOp: VK_LOGIC_OP_COPY # optional, attachmentCount: 1, pAttachments: colorBlendAttachment.addr, blendConstants: [0f, 0f, 0f, 0f] # optional)# Enable dynamic states# Most states are baked into the pipeline, but there are still a few dynamic states that can be changed within a command buffer# To be able to change these we need do specify which dynamic states VkPipelineViewportStateCreateInfoVkPipelineViewportStateCreateInfo be changed using this pipeline. Their actual states are set later on in the command buffer.# For this example we will set the viewport and scissor using dynamic statesdynamicStateEnables: seq[VkDynamicSTate] = @[ VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_LINE_WIDTH]dynamicState = VkPipelineDynamicStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, pDynamicStates: addr dynamicStateEnables[0], dynamicStateCount: dynamicStateEnables.len.uint32)# Depth and stencil state containing depth and stencil compare and test operations# We only use depth tests and want depth tests and writes to be enabled and compare with less or equaldepthStencilState = VkPipelineDepthStencilStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, depthTestEnable: VkBool32 VK_TRUE, depthWriteEnable: VkBool32 VK_TRUE, depthCompareOp: VK_COMPARE_OP_LESS_OR_EQUAL, depthBoundsTestEnable: VkBool32 VK_FALSE, back: VkStencilOpState( failOp: VK_STENCIL_OP_KEEP, passOp: VK_STENCIL_OP_KEEP, compareOp: VK_COMPARE_OP_ALWAYS), front: VkStencilOpState( failOp: VK_STENCIL_OP_KEEP, passOp: VK_STENCIL_OP_KEEP, compareOp: VK_COMPARE_OP_ALWAYS), stencilTestEnable: VkBool32 VK_FALSE)# Multi sampling state# This example does not make use of multi sampling (for anti-aliasing), the state must still be set and passed to the pipelinemultisampleState = VkPipelineMultisampleStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, rasterizationSamples: VK_SAMPLE_COUNT_1_BIT, pSampleMask: nil)# Vertex input descriptions# Specifies the vertex input parameters for a pipeline# Vertex input binding# This example uses a single vertex input binding at binding point 0 (see vkCmdBindVertexBuffers)vertexInputBinding = VkVertexInputBindingDescription(binding: 0, stride: uint32 sizeof(Vertex), inputRate: VK_VERTEX_INPUT_RATE_VERTEX)# Input attribute bindings describe shader attribute locations and memory layoutsvertex_input_attributes: array[2,VkVertexInputAttributeDescription]# Attribute location 0: Positionvertex_input_attributes[0].binding = 0vertex_input_attributes[0].location = 0vertex_input_attributes[0].format = VK_FORMAT_R32G32B32_SFLOATvertex_input_attributes[0].offset = uint32 offsetof(Vertex, position)# Attribute location 1: Colorvertex_input_attributes[1].binding = 0vertex_input_attributes[1].location = 1vertex_input_attributes[1].format = VK_FORMAT_R32G32B32_SFLOATvertex_input_attributes[1].offset = offsetof(Vertex, color).uint32#[vertex_input_attributes[2].location = 2vertex_input_attributes[2].format = VK_FORMAT_R32G32B32_SFLOATvertex_input_attributes[2].offset = offsetof(Vertex, texture_coordinates).uint32]#varvertex_input_state =VkPipelineVertexInputStateCreateInfo( sType: VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, vertexBindingDescriptionCount: 1, pVertexBindingDescriptions: addr vertexInputBinding, vertexAttributeDescriptionCount: uint32 vertex_input_attributes.len, pVertexAttributeDescriptions: addr vertex_input_attributes[0])viewport = VkViewport(x: 0f, y: 0, width: swapchain.current_extent.width.float32, height: swapchain.current_extent.height.float32, minDepth: 0f, maxDepth: 1f)scissor = VkRect2D( offset: VkOffset2D(x: 0, y: 0), extent: swapchain.current_extent,)viewportState = VkPipelineViewportStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, viewportCount: 1, pViewports: viewport.addr, scissorCount: 1, pScissors: scissor.addr, flags: VkPipelineViewportStateCreateFlags 0)# Shadersif shaders.len != 0:varvertShaderCode = readFile shaders[0]fragShaderCode = readFile shaders[1]# Vertex shadershaderStages[0].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFOshaderStages[0].stage = VK_SHADER_STAGE_VERTEX_BITshaderStages[0].module = vk_device.a_shader_module vertShaderCode# Main entry point for the shadershaderStages[0].pName = "main"# Fragment shadershaderStages[1].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFOshaderStages[1].stage = VK_SHADER_STAGE_FRAGMENT_BITshaderStages[1].module = vk_device.a_shader_module fragShaderCode# Main entry point for the shadershaderStages[1].pName = "main"# Set pipeline shader stage infopipeline_info.stageCount = shaderStages.len.uint32pipeline_info.pStages = addr shaderStages[0]# Assign the pipeline states to the pipeline creation info structurepipeline_info.pVertexInputState = addr vertex_input_statepipeline_info.pInputAssemblyState = addr inputAssemblypipeline_info.pRasterizationState = addr rasterizerpipeline_info.pColorBlendState = addr colorBlendingpipeline_info.pMultisampleState = addr multisampleStatepipeline_info.pViewportState = addr viewportStatepipeline_info.pDepthStencilState = addr depthStencilStatepipeline_info.render_pass = result.render_pass.vk_handlepipeline_info.pDynamicState = addr dynamicState# Create rendering pipeline using the specified statesdiscard vkCreateGraphicsPipelines( vk_device, pipelineCache, 1, addr pipeline_info, nil, addr result.pipeline)# Shader modules are no longer needed once the graphics pipeline has been createdif shaders.len != 0:for shader_stage in shaderStages.mitems:vkDestroyShaderModule( vk_device, shader_stage.module, nil)proc a_shader_module( device: VkDevice, code: string): VkShaderModule =var createInfo = VkShaderModuleCreateInfo( sType: VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, codeSize: cast[uint] (code.len), pCode: cast[ptr uint32] ( addr code[0]))assert vkCreateShaderModule( device, addr createInfo, nil, addr result) == VK_SUCCESSresult# TODO: currently only assumes a single vertex <-> fragment pair. (total of 2 shaders)proc the_shader_stages( vk_device: VkDevice, shaders: seq[string]): seq[VkPipelineShaderStageCreateInfo] =for shader in shaders:assert( shader.fileExists(), "shader file path doesn't exist: " & shader)result = @[VkPipelineShaderStageCreateInfo( sType: VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, pNext: nil, flags: VkPipelineShaderStageCreateFlags 0, stage: VK_SHADER_STAGE_VERTEX_BIT, module: a_shader_module( vk_device, readFile shaders[0]), pName: "main", pSpecializationInfo: nil), VkPipelineShaderStageCreateInfo( sType: VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, pNext: nil, flags: VkPipelineShaderStageCreateFlags 0, stage: VK_SHADER_STAGE_FRAGMENT_BIT, module: a_shader_module( vk_device, readFile shaders[1]), pName: "main", pSpecializationInfo: nil)]# TODO# currently any shape > 6 sides is counted as an Ngon# weird behavior when hollow is true, in the method used to render the vertsproc create_descriptor_set_layout*( vk_device: VkDevice): VkDescriptorSetLayout =# Setup layout of descriptors used in this example# Basically connects the different shader stages to descriptors for binding uniform buffers, image samplers, etc.# So every shader binding should map to one descriptor set layout binding# Binding 0: Uniform buffer (Vertex shader)varlayoutBinding: VkDescriptorSetLayoutBindingdescriptorLayout: VkDescriptorSetLayoutCreateInfolayoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFERlayoutBinding.descriptorCount = 1layoutBinding.stageFlags = VkShaderStageFlags VK_SHADER_STAGE_VERTEX_BIT.ord orVK_SHADER_STAGE_FRAGMENT_BIT.ordlayoutBinding.pImmutableSamplers = nildescriptorLayout.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFOdescriptorLayout.pNext = nildescriptorLayout.bindingCount = 1descriptorLayout.pBindings = addr layoutBindingdiscard vkCreateDescriptorSetLayout( vk_device, addr descriptorLayout, nil, addr result)proc create_descriptor_sets*( vk_device: VkDevice, descriptor_set_layout: VkDescriptorSetLayout, descriptor_pool: VkDescriptorPool, descriptor_buffer_info: VkDescriptorBufferInfo): VkDescriptorSet =varallocInfo = VkDescriptorSetAllocateInfo( sType: VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, descriptorPool: descriptor_pool, descriptorSetCount: 1, pSetLayouts: addr descriptor_set_layout)assert vkAllocateDescriptorSets( vk_device, addr allocInfo, addr result) == VK_SUCCESS# Update the descriptor set determining the shader binding points# For every binding point used in a shader there needs to be one# descriptor set matching that binding pointvar write_descriptor_sets: array[1,VkWriteDescriptorSet] =[ VkWriteDescriptorSet( sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, dstSet: result, descriptorCount: 1, descriptorType: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, pBufferInfo: cast[ptr ptr VkDescriptorBufferInfo] (addr descriptor_buffer_info), dstBinding: 0)]vkUpdateDescriptorSets( vk_device, 1, addr write_descriptor_sets[0], 0, nil)proc create_pipeline_layout( vk_device: VkDevice, descriptor_set_layout: VkDescriptorSetLayout, push_constant_size: uint32, push_constant_range_count: uint32 = 0): VkPipelineLayout =varpPipelineLayoutCreateInfo: VkPipelineLayoutCreateInfopushConstantRange = VkPushConstantRange( stageFlags: VkShaderStageFlags VK_SHADER_STAGE_VERTEX_BIT.ord or VK_SHADER_STAGE_FRAGMENT_BIT.ord, offset: 0, size : push_constant_size# uint32 sizeof Shape_Pushes)# Create the pipeline layout that is used to generate the rendering pipelines that are based on this descriptor set layout# In a more complex scenario you would have different pipeline layouts for different descriptor set layouts that could be reusedpPipelineLayoutCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFOpPipelineLayoutCreateInfo.pNext = nilpPipelineLayoutCreateInfo.setLayoutCount = 1pPipelineLayoutCreateInfo.pSetLayouts = addr descriptor_set_layoutpPipelineLayoutCreateInfo.pushConstantRangeCount = push_constant_range_count#pPipelineLayoutCreateInfo.pPushConstantRanges = addr pushConstantRangeassert vkCreatePipelineLayout( vk_device, addr pPipelineLayoutCreateInfo, nil, addr result) == VK_SUCCESSresult
import vulkan, vkTypes, re, bitops, ../utils/letstypeGPU* = objecthandle*: VkPhysicalDevicefeatures*: VkPhysicalDeviceFeaturesproperties*: VkPhysicalDevicePropertiesmemory_properties*: VkPhysicalDeviceMemoryPropertiesqueueFamilyProperties*: seq[VkQueueFamilyProperties]requestedFeatures*: VkPhysicalDeviceFeatures#from sets import toHashSet, excl, lenfrom vulkan_utils import `<`, `==`, `>`from ../utils/etc import toString, flatten2from sequtils import anyIt, mapIt, filterIt, maxIndex, toSeqfrom strutils import contains, isAlphaNumericproc getQProperties*(gpu: VkPhysicalDevice): seq[VkQueueFamilyProperties] =varqueueCount : uint32# formatCount: uint32# supportsPresent: seq[VkBool32]# gqni: uint32 = uint32.high# pqni: uint32 = uint32.highvkGetPhysicalDeviceQueueFamilyProperties(gpu, queueCount.addr, nil)result = newSeq[VkQueueFamilyProperties](queueCount)vkGetPhysicalDeviceQueueFamilyProperties(gpu, queueCount.addr, result[0].addr)proc getSupportedDepthFormat*( gpu: VkPhysicalDevice, depthFormat: var VkFormat)=varformatProps: VkFormatPropertiesformats = [ VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_D32_SFLOAT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D16_UNORM]for format in formats:vkGetPhysicalDeviceFormatProperties( gpu, format, addr formatProps)if bitand(formatProps.optimalTilingFeatures.int, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT.int) > 0:depthFormat = format#echo "FOUND DEPTH_FORMAT:" & $depthFormatbreakelse: echo "nope!" & $bitand(formatProps.optimalTilingFeatures.int, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT.int)proc get_gpu*( instance: VkInstance#, surface: VkSurfaceKHR): GPU =load_vulkan_functions_for_gpu(instance)var gpuCount: uint32 = 0discard vkEnumeratePhysicalDevices(instance, gpuCount.addr, nil)var gpus = newSeq[VkPhysicalDevice](gpuCount)discard vkEnumeratePhysicalDevices(instance, gpuCount.addr, gpus[0].addr)case gpus.lenof 0: quit "ERROR: No GPUs found by `vkEnumeratePhysicalDevices`. This is probably a driver-related issue."of 1:vardevProps0: VKPhysicalDevicePropertiesfeatures0: VkPhysicalDeviceFeaturesmemoryProperties0: VkPhysicalDeviceMemoryProperties#qFamilyProperties0: seq[VkQueueFamilyProperties]vkGetPhysicalDeviceProperties( gpus[0], addr devProps0)if devProps0.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU ordevProps0.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:vkGetPhysicalDeviceFeatures(gpus[0], addr features0)vkGetPhysicalDeviceMemoryProperties(gpus[0], addr memoryProperties0)result = GPU( handle: gpus[0], features: features0, properties: devProps0, memory_properties: memoryProperties0, queueFamilyProperties: gpus[0].getQProperties)else: quit "ERROR: The only GPU/device found is not a Discrete or Integrated type, it is: " & $devProps0.deviceType & " \n Which is currently not supported."of 2:# Handle:# 1 GPU with 2 different drivers -> Use the first# 2 GPUs: 1 Discrete 1 integrated -> Use the Discrete# 2 GPUs: 2 Integrated || 2 Discrete -> Use the better onevardevProps0: VKPhysicalDevicePropertiesdevProps1: VKPhysicalDevicePropertiesfeatures0: VkPhysicalDeviceFeaturesmemoryProperties0: VkPhysicalDeviceMemoryProperties#qFamilyProperties0: seq[VkQueueFamilyProperties]vkGetPhysicalDeviceProperties(gpus[0], addr devProps0)vkGetPhysicalDeviceProperties(gpus[1], addr devProps1)# 1 GPU with 2 different drivers -> Use the firstif devProps0.deviceID == devProps1.deviceID:vkGetPhysicalDeviceFeatures(gpus[0], addr features0)vkGetPhysicalDeviceMemoryProperties(gpus[0], addr memoryProperties0)result = GPU( handle: gpus[0], features: features0, properties: devProps0, memory_properties: memoryProperties0, queueFamilyProperties: gpus[0].getQProperties)#2 GPUs: 1 Discrete 1 integrated, Discrete is the first GPUif devProps0.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU anddevProps1.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:vkGetPhysicalDeviceFeatures(gpus[0], addr features0)vkGetPhysicalDeviceMemoryProperties(gpus[0], addr memoryProperties0)result = GPU( handle: gpus[0], features: features0, properties: devProps0, memory_properties: memoryProperties0, queueFamilyProperties: gpus[0].getQProperties)#2 GPUs: 1 Discrete 1 integrated, Integrated is the first GPU, so we choose the second (Discrete)elif devProps0.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU anddevProps1.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:varfeatures1: VkPhysicalDeviceFeaturesmemoryProperties1: VkPhysicalDeviceMemoryPropertiesvkGetPhysicalDeviceFeatures(gpus[1], addr features1)vkGetPhysicalDeviceMemoryProperties(gpus[1], addr memoryProperties1)result = GPU( handle: gpus[1], features: features1, properties: devProps1, memory_properties: memoryProperties1, queueFamilyProperties: gpus[1].getQProperties)#2 GPUs: 2 Integrated || 2 Discrete -> Find VRAM sizes, and use the GPU with the larger one, or if they're the same, use the firstif devProps0.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU anddevProps1.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU ordevProps0.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU anddevProps1.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:varmemoryProperties0: VkPhysicalDeviceMemoryPropertiesmemoryProperties1: VkPhysicalDeviceMemoryPropertiesfeatures1: VkPhysicalDeviceFeaturesvkGetPhysicalDeviceMemoryProperties(gpus[0], addr memoryProperties0)vkGetPhysicalDeviceMemoryProperties(gpus[1], addr memoryProperties1)if memoryProperties0.memoryHeaps[0].size > memoryProperties1.memoryHeaps[0].size ormemoryProperties0.memoryHeaps[0].size == memoryProperties1.memoryHeaps[0].size:result = GPU( handle: gpus[0], features: features0, properties: devProps0, memory_properties: memoryProperties0, queueFamilyProperties: gpus[0].getQProperties)else:vkGetPhysicalDeviceFeatures(gpus[0], addr features1)result = GPU( handle: gpus[1], features: features1, properties: devProps1, memory_properties: memoryProperties1, queueFamilyProperties: gpus[1].getQProperties)# 3 or more GPUs, -> Find Discrete, or Integrated, else errorelse:varmemoryProperties: seq[VkPhysicalDeviceMemoryProperties]devProps: seq[VKPhysicalDeviceProperties]features: seq[VkPhysicalDeviceFeatures]gpuIndex: Naturalfor i, d in gpus:varsomeFeatures: VkPhysicalDeviceFeaturessomeMemoryProperties: VkPhysicalDeviceMemoryPropertiessomeDevProps: VKPhysicalDevicePropertiesvkGetPhysicalDeviceFeatures(d, addr someFeatures)vkGetPhysicalDeviceMemoryProperties(d, addr someMemoryProperties)vkGetPhysicalDeviceProperties(d, addr someDevProps)features.add someFeaturesmemoryProperties.add someMemoryPropertiesdevProps.add someDevPropsgpuIndex = maxIndex toSeq memoryProperties.mapit(it.memoryHeaps[0].size)result = GPU( handle: gpus[gpuIndex], features: features[gpuIndex], properties: devProps[gpuIndex], memory_properties: memoryProperties[gpuIndex], queueFamilyProperties: gpus[gpuIndex].getQProperties)# NOTE: All of this is probably not needed, because i'm pretty sure there's# just some temp-bug or something with q'ing extensions.# It's UB to have a device extension that is not supported by the GPU (?)# so we check that all coreDeviceExts exist in the q'd extensions from the GPU# and when an ext is found, we "check it off" by popping it off the seq# if there's any that are not found, we quit, and the resulting exts are shownproc check_gpu_extensions*( gpu: VkPhysicalDevice, dump_extensions: bool = false) =varextCount: uint32checkList: seq[string] = toSeq coreDeviceExts#extsNotFound: seq[string]checkCount = checkList.len#[ doubleExt = re"VK.*VK"doubleExtToSplit = re"VK.*(?=VK)"corruptedExt = re"VK.*[0-9](?=.*)"allExts: seq[string]]## var fixedList = availableExts.mapIt(it.extensionName.toString)# .mapIt(it.split anExt)# .flatten# #.filterIt(it == "")discard vkEnumerateDeviceExtensionProperties(gpu, nil, extCount.addr, nil)var availableExts = newSeq[VkExtensionProperties](extCount)discard vkEnumerateDeviceExtensionProperties(gpu, nil, extCount.addr, availableExts[0].addr)for ext in availableExts.mapIt(it.extensionName):var ne = ext.filterIt((it.isAlphaNumeric or it == '_') ).toStringif dump_extensions: echo ne# for ext in allExts:# echo ext# for chExt in coreDeviceExts:# echo availableExts.mapIt($it).contains chExtif checkCount > 0:echo checkList# quit "wew ladddddddddddddddddddddddd"
import vulkanproc create_vulkan_fences*( vulkan_device: VkDevice): seq[VkFence] =varfenceCreateInfo: VkFenceCreateInfofenceCreateInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFOfenceCreateInfo.flags = VkFenceCreateFlags VK_FENCE_CREATE_SIGNALED_BITfor fence in result.mitems:discard vkCreateFence( vulkan_device, addr fenceCreateInfo, nil, addr fence)
import vulkan, ../utils/lets, vkTypes, vulkan_recordproc createLogicalDevice*( rec: var Vulkan_Record) =rec.qfi = QueueFamily( graphics: 0, transfer: 0, compute: 0, sparse: 0, usingSparse: false, usingCompute: false)varqueuePriority = 0f# qTypes = bitor( VK_QUEUE_GRAPHICS_BIT.int# , VK_QUEUE_TRANSFER_BIT.int# , VK_QUEUE_COMPUTE_BIT.int# , VK_QUEUE_SPARSE_BINDING_BIT.int# )queueCreateInfos = newSeq[VkDeviceQueueCreateInfo]()let deviceQueueCreateInfo = newVkDeviceQueueCreateInfo( sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, queueFamilyIndex = rec.qfi.graphics, queueCount = 1, pQueuePriorities = queuePriority.addr)queueCreateInfos.add deviceQueueCreateInfovardeviceFeatures: VkPhysicalDeviceFeaturesdeviceExts = allocCStringArray(coreDeviceExts)vkGetPhysicalDeviceFeatures(rec.gpu.handle, addr deviceFeatures)var deviceCreateInfo = newVkDeviceCreateInfo( pQueueCreateInfos = queueCreateInfos[0].addr, queueCreateInfoCount = queueCreateInfos.len.uint32, pEnabledFeatures = deviceFeatures.addr, enabledExtensionCount = 1 #coreDeviceExts.len, enabledLayerCount = 0, ppEnabledLayerNames = nil, ppEnabledExtensionNames = deviceExts)if vkCreateDevice( rec.gpu.handle, deviceCreateInfo.addr, nil, addr rec.logical_device) != VKSuccess: quit "failed to create logical device"proc create_logical_command_pool*(rec: var Vulkan_Record) =varpoolInfo = VkCommandPoolCreateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, queueFamilyIndex: rec.qfi.graphics# , flags: VkCommandPoolCreateFlags VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT # optional)if vkCreateCommandPool( rec.logical_device, poolInfo.addr, nil, addr rec.command_pool) != VK_SUCCESS:quit("failed to create command pool")
import vulkan, vulkan_utilsimport std/bitopstypeDepth_Stencil* = object #of RootObjmemory*: VkDeviceMemoryimage*: VkImageview*: VkImageViewproc create_depth_stencil*( device: VkDevice, image_format: VKFormat, depth_format: VKFormat, current_extent: VkExtent2D, gpu_memory_properties: VkPhysicalDeviceMemoryProperties): Depth_Stencil =result = Depth_Stencil()varmemReqs: VkMemoryRequirementsmemAllloc: VkMemoryAllocateInfoimageViewCI: VkImageViewCreateInfoimageCI = VkImageCreateInfo( sType: VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, imageType: VK_IMAGE_TYPE_2D, format: depth_format, extent: VkExtent3D( width: current_extent.width, height: current_extent.height, depth: 1), mipLevels: 1, arrayLayers: 1, samples: VK_SAMPLE_COUNT_1_BIT, tiling: VK_IMAGE_TILING_OPTIMAL, usage: VkImageUsageFlags VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, initialLayout: VK_IMAGE_LAYOUT_UNDEFINED)assert vkCreateImage( device, addr imageCI, nil, addr result.image) == VK_SUCCESS# Allocate memory for the image (device local) and bind it to our imagememAllloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFOvkGetImageMemoryRequirements( device, result.image, addr memReqs)memAllloc.allocationSize = memReqs.sizememAllloc.memoryTypeIndex = find_memory_with_property( gpu_memory_properties, memReqs.memoryTypeBits, VkMemoryPropertyFlags VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)assert vkAllocateMemory( device, addr memAllloc, nil, addr result.memory) == VK_SUCCESSassert vkBindImageMemory( device, result.image, result.memory, VkDeviceSize 0) == VK_SUCCESS# Create a view for the depth stencil image# Images aren't directly accessed in Vulkan, but rather through views described by a subresource range# This allows for multiple views of one image with differing ranges (e.g. for different layers)imageViewCI.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFOimageViewCI.viewType = VK_IMAGE_VIEW_TYPE_2DimageViewCI.format = depth_formatimageViewCI.subresourceRange.aspectMask = VkImageAspectFlags bitor( VK_IMAGE_ASPECT_DEPTH_BIT.int, VK_IMAGE_ASPECT_STENCIL_BIT.int)imageViewCI.subresourceRange.baseMipLevel = 0imageViewCI.subresourceRange.levelCount = 1imageViewCI.subresourceRange.baseArrayLayer = 0imageViewCI.subresourceRange.layerCount = 1imageViewCI.image = result.imageassert vkCreateImageView( device, addr imageViewCI, nil, addr result.view) == VK_SUCCESSproc destroyDepthStencil*( device: VkDevice, depth_stencil: var Depth_Stencil) =discard vkDeviceWaitIdle devicevkDestroyImageView( device, depth_stencil.view, nil)vkDestroyImage( device, depth_stencil.image, nil)vkFreeMemory( device, depth_stencil.memory, nil)
import vulkan, strutils, bitops, ../utils/letsproc checkValidationLayers*() =var layerCount: uint32 = 0discard vkEnumerateInstanceLayerProperties(layerCount.addr, nil)var layers = newSeq[VkLayerProperties](layerCount)discard vkEnumerateInstanceLayerProperties(layerCount.addr, layers[0].addr)for validate in validationLayers:var found = falsefor layer in layers:if cstring(layer.layerName.addr) == validate:found = truebreakif not found: echo layer.layerName," layer is not supported"proc debugUtilsMessengerCallback*( messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: VkDebugUtilsMessengerCallbackDataEXT, userData: pointer): VkBool32{.cdecl.} =if bitand( messageSeverity.int, VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT.int) != 0:discard#echo "VERBOSE: ", "[", pCallbackData.messageIdNumber, "][", pCallbackData.pMessageIdName, "] : ", pCallbackData.pMessageelif bitand( messageSeverity.int, VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT.int) != 0: discard#[ if contains($pCallbackData.pMessage, "/usr") orcontains($pCallbackData.pMessage, "libVkLayer") orcontains($pCallbackData.pMessage, "VUID-NONE") orpCallbackData.messageIdNumber == 0 #[ [Loader Message] ]# orcontains($pCallbackData.pMessage, "Inserted device layer"): discardelse: echo "INFO: ", "[",pCallbackData.messageIdNumber, "][", pCallbackData.pMessageIdName, "] : ", pCallbackData.pMessage ]#elif bitand( messageSeverity.int, VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT.int) != 0:if contains($pCallbackData.pMessage, "small-dedicated-allocation") orcontains($pCallbackData.pMessage, "CHASSIS") orcontains($pCallbackData.pMessage, "command-buffer-reset") orcontains($pCallbackData.pMessage, "small-allocation") or# Attempting to enable extension VK_EXT_debug_utils,#but this extension is intended to support use by applications when debugging and it is strongly recommended that it be otherwise avoided.pCallbackData.messageIdNumber == 284711830:discard# echo "small allocation warning"else: discard#echo "WARNING: ", "[",pCallbackData.messageIdNumber, "][", pCallbackData.pMessageIdName, "] : ", pCallbackData.pMessageelif bitand( messageSeverity.int, VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT.int) != 0:echo "ERROR: ", "[",pCallbackData.messageIdNumber, "][", pCallbackData.pMessageIdName, "] : ", pCallbackData.pMessage
{.experimental: "codeReordering".}import vulkan, vkTypes, vulkan_utils, ../utils/[lets], bitopstypeBuffer_Object = object of RootObjdevice_memory*: VkDeviceMemoryvk_buffer*: VkBuffersize*: VkDeviceSizedata*: ptr charcurrent_data_offset*: NaturalBuffer* = ref object of Buffer_Object#[Buffer& result, VkDevice device, const VkPhysicalDeviceMemoryProperties& memoryProperties, size_t size, VkBufferUsageFlags usage, VkMemoryPropertyFlags memoryFlags]#proc a_vulkan_buffer*( vk_device: VkDevice, gpu_memory_properties: VkPhysicalDeviceMemoryProperties, allocation_size: VkDeviceSize, buffer_usage_flags: VkBufferUsageFlags, memory_flags: VkMemoryPropertyFlags): Buffer =result = Buffer( size: allocation_size)varmem_reqs: VkMemoryRequirementsbuffer_info = VkBufferCreateInfo( sType: VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, size: allocation_size)allocation_info = VkMemoryAllocateInfo(sType: VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)memory_allocation_flag_info = VkMemoryAllocateFlagsInfo(sType: VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR)assert vkCreateBuffer( vk_device, addr buffer_info, nil, addr result.vk_buffer) == VK_SUCCESSvkGetBufferMemoryRequirements( vk_device, result.vk_buffer, addr mem_reqs)allocation_info.allocationSize = mem_reqs.sizeallocation_info.memoryTypeIndex = gpu_memory_properties.find_memory_with_property( mem_reqs.memoryTypeBits, memory_flags)if bitand( buffer_usage_flags.int, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT.ord) == 1:allocation_info.pNext = addr memory_allocation_flag_infomemory_allocation_flag_info.flags = VkMemoryAllocateFlags VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BITmemory_allocation_flag_info.deviceMask = 1discard vkAllocateMemory( vk_device, addr allocation_info, nil, addr result.device_memory)discard vkBindBufferMemory( vk_device, result.vk_buffer, result.device_memory, VkDeviceSize 0)if bitand( memory_flags.int, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT.ord) == 1:assert vkMapMemory( vk_device, result.device_memory, VkDeviceSize 0, allocation_size, VkMemoryMapFlags 0, cast[ptr pointer] (result.data)) == VK_SUCCESS#[ result.descriptor.buffer = result.vk_bufferresult.descriptor.offset = VkDeviceSize 0result.descriptor.range = VkDeviceSize VK_WHOLE_SIZE]#return result#[ proc fillDescr*( buffer: Buffer, size: VkDeviceSize = VkDeviceSize VK_WHOLE_SIZE, offset: VkDeviceSize = vk0) =buffer.descriptor.offset = offsetbuffer.descriptor.buffer = buffer.vkbufferbuffer.descriptor.range = size ]## Map a memory range of this buffer. If successful, mapped points to the specified buffer range.# @param size (Optional) Size of the memory range to map. Pass VK_WHOLE_SIZE to map the complete buffer range.# @param offset (Optional) Byte offset from beginningproc map_memory*( vk_device: VkDevice, memory: VkDeviceMemory, data: var pointer, size: VkDeviceSize = vkWholeSize, offset: VkDeviceSize = vk0) =discard vkMapMemory( vk_device, memory, vk0, size, VkMemoryMapFlags 0, addr data)# vkUnmapMemory can't fail (?)proc unMapMem*( buffer: var Buffer, data: var pointer) =if not data.isNil: data = nil# # Copies the specified data to the mapped buffer# # @param data Pointer to the data to copy# # @param size Size of the data to copy in machine units# proc copyTo*( data: pointer# , buffer: Buffer# , size: Natural# ) =# assert not buffer.mapped.isNil# copyMem(data, addr buffer.mapped, size)proc aVkMappedMemoryRange*( memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, pNext: pointer = nil, sType: VkStructureType = VkStructureTypeMappedMemoryRange): VkMappedMemoryRange =result.sType = sTyperesult.memory = memoryresult.offset = offsetresult.pNext = pNextresult.size = size# flush a memory range of the buffer to make it visible to VkDevice# Only required for non-coherent memory (?)proc flushMem*( vk_device: VkDevice, buffer: Buffer, data: pointer, offset: VkDeviceSize, size: VkDeviceSize) =var r = aVkMappedMemoryRange( memory = buffer.device_memory, offset = offset, size = size)discard vkFlushMappedMemoryRanges(vk_device, 1.uint32, addr r)# Invalidates a memory range of the buffer# to make it visible to the host# Only required for non-coherent memory (?)proc invalidate*( vk_device: VkDevice, buffer: Buffer, size: VkDeviceSize, offset: VkDeviceSize) =var r = aVkMappedMemoryRange( memory = buffer.device_memory, offset = offset, size = size)discard vkInvalidateMappedMemoryRanges(vk_device, 1, addr r)# Release all Vulkan resources held by this bufferproc destroy*( vk_device: VkDevice, buffer: var Buffer) =vkDestroyBuffer(vk_device, buffer.vkbuffer, nil)vkFreeMemory(vk_device, buffer.device_memory, nil)#[ proc fill_descriptor*( buffer: var Buffer, size: VkDeviceSize = VkDeviceSize VK_WHOLE_SIZE, offset: VkDeviceSize = vk0) =buffer.descriptor.offset = offsetbuffer.descriptor.buffer = buffer.vkbufferbuffer.descriptor.range = size ]#proc create_command_buffers*( device: VkDevice, pool: VkCommandPool, level: VkCommandBufferLevel = VK_COMMAND_BUFFER_LEVEL_PRIMARY, amount: uint32 = 2): seq[VkCommandBuffer] =result.setLen amountvar allocInfo = VkCommandBufferAllocateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, commandPool: pool, level: level, commandBufferCount: amount)discard vkAllocateCommandBuffers( device, addr allocInfo, addr result[0])
import macros, typetraits, sequtils, strutils, macroutils#, options, tables, etctypeShape = objectname: stringText = objectname: stringage: int# a_scene(sceneName, Shape, Text)# SceneNameObj* = object of RootObj# shapes: seq[Shape]# texts: seq[Text]# entities: Record# SceneName* = ref object of SceneNameObj# dumpTree:# type# sceneNameScene* = ref object of Scene# texts: seq[Text]# shapes: seq[Shapes]
import ../vk/vulkanconstvalidationLayers* = ["VK_LAYER_KHRONOS_validation"]coreDeviceExts* = ["VK_KHR_swapchain"]vktrue* = VkBool32 truevkfalse* = VkBool32 falsevk0* = VkDeviceSize 0vkWholeSize* = VkDeviceSize VK_WHOLE_SIZEu320* = uint32 0u321* = uint32 1Z* = 0
{.deadCodeElim: on.}from ../vk/vulkan import VkDeviceSizefrom sequtils import concatfrom ../platforms/unix/x11/xcb import xcb_keycode_t#from ../platforms/unix/xcb import xcb_keysym_timport bitopsimport macros, strutilsmacro string_of*( x: typed): string = x.toStrLitproc printf*(formatstr: cstring) {.importc: "printf", varargs, header: "<stdio.h>".}proc `<`*(x,y: VkDeviceSize): bool = return x.int < y.intproc `>`*(x,y: VkDeviceSize): bool = return x.int > y.intproc `==`*(x,y: VkDeviceSize): bool = return x.int == y.intproc `&=`*(s,s2: string): string = result = s & s2template pr*(t: varargs[string, `$`]) =var str: stringfor thing in t: str &= thing & " "echo strproc `$>>`*[T](t: T) = echo repr tproc flatten2*[T](a: seq[T]): seq[T] = aproc flatten2*[T](a: seq[seq[T]]): auto = a.concat.flattenproc toString*(str: array[0..255, char]): string =result = newStringOfCap str.lenfor ch in str:if ch == '\x00': discardelse: add(result, ch)proc toString*(str: seq[char] | cstring): string =result = newStringOfCap str.lenfor ch in str: add(result, ch)proc `nil?` *[T](t: T):bool = cast[pointer](t).isNiliterator count*(f: float): float =var i = 0.0while i <= f:if (i == 121).bool: break # this is a stupid hack because Keymaps is an array of 121yield ii += 1#define _KTX_PADN(n, nbytes) (nbytes + (n-1) & ~(ktx_uint32_t)(n-1))# right now this is only used for `loadKTXFile` from text/textutils.nimproc pad_bytes*[T]( n: int, nBytes: T): uint8 =# Equivalent to n * ceil(nbytes / n)bitand( nBytes + cast[uint32](n-1), bitnot( cast[uint32](n - 1) )).uint8template `+`*[T]( p: ptr T, off: xcb_keycode_t | int | int32 | uint32 | uint64 | Natural): ptr T =cast[ptr type(p[])](cast[ByteAddress](p) +% (off * sizeof(p[])))template `+=`*[T]( p: ptr T, off: T#int | Natural) =p = p + offtemplate `-`*[T]( p: ptr T, off: int | xcb_keycode_t): ptr T =cast[ptr type(p[])](cast[ByteAddress](p) -% off * sizeof(p[]))template `-=`*[T](p: ptr T, off: int | xcb_keycode_t) =p = p - offtemplate `[]`*[T]( p: ptr T, off: int | xcb_keycode_t | int32 | Natural): T =(p + off)[]template `[]=`*[T]( p: ptr T, off: int | int32 | Natural, val: T) =(p + off)[] = val#[proc main =varp = aPortal()t = aTriShape p.recframeCounter: uint32frameTimer = 1.0paused = falsetimer = 0.0timerSpeed = 1.0 # speed up or slow downlastTS: floatlastFPS: uint32ticks: floatdiff: floatwhile not p.quit:events plet a = cpuTime()#renderp.rec.draw tframeCounter += 1let b = cpuTime()diff = b - aframeTimer = diff * 1000ticks = frameTimer * 10_000# camera.update frameTimerif not paused:timer += timerSpeed * frameTimerif timer > 1.0: timer -= 1.0#echo("diff: ",diff, " FT: ",frameTimer, " ticks: ", frame)# echo fpsTimer / 1000var fpsTimer = (b - lastTS) * 1000if fpsTimer > 1000:lastFPS = (frameCounter.float * (1000.0 / fpsTimer)).uint32#echo("fps:", lastFPS, " FT: ", frameTimer)echo frameCounterframeCounter = 0lastTS = b# updateOverlay()#p.closemain()]##include <err.h>#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <xcb/xcb.h>#include <xcb/xkb.h># struct ctx {# xcb_connection_t *conn;# uint8_t first_xkb_event;# };# static void# handle_xkb_event(struct ctx *ctx, xcb_generic_event_t *event)# {# union xkb_event {# struct {# uint8_t response_type;# uint8_t xkbType;# uint16_t sequence;# xcb_timestamp_t time;# uint8_t deviceID;# } any;# xcb_xkb_map_notify_event_t map_notify;# xcb_xkb_state_notify_event_t state_notify;# } *xkb_event;# xkb_event = (union xkb_event *) event;# switch (xkb_event->any.xkbType) {# case XCB_XKB_NEW_KEYBOARD_NOTIFY:# printf("xkb new keyboard notify\n");# break;# case XCB_XKB_MAP_NOTIFY:# printf("xkb map notify\n");# break;# case XCB_XKB_STATE_NOTIFY:# printf("xkb state notify\n");# break;# default:# break;# }# }# static void# loop(struct ctx *ctx)# {# while (true)# {# xcb_generic_event_t *event;# event = xcb_wait_for_event(ctx->conn);# if (!event)# errx(1, "couldn't get event");# if (event->response_type == XCB_MAPPING_NOTIFY) {# printf("core mapping notify\n");# }# if (event->response_type == ctx->first_xkb_event) {# handle_xkb_event(ctx, event);# }# free(event);# }# }# static void# setup_xkb(struct ctx *ctx)# {# {# const xcb_query_extension_reply_t *ext;# ext = xcb_get_extension_data(ctx->conn, &xcb_xkb_id);# if (!ext)# errx(1, "no XKB in X server");# ctx->first_xkb_event = ext->first_event;# }# {# xcb_xkb_use_extension_cookie_t use_ext;# xcb_xkb_use_extension_reply_t *use_ext_reply;# use_ext = xcb_xkb_use_extension(ctx->conn,# XCB_XKB_MAJOR_VERSION,# XCB_XKB_MINOR_VERSION);# use_ext_reply = xcb_xkb_use_extension_reply(ctx->conn, use_ext, NULL);# if (!use_ext_reply)# errx(1, "couldn't use XKB extension");# if (!use_ext_reply->supported)# errx(1, "the XKB extension is not supported in X server");# free(use_ext_reply);# }# {# xcb_void_cookie_t select;# xcb_generic_error_t *error;# static const uint16_t affectWhich = (XCB_XKB_EVENT_TYPE_MAP_NOTIFY |# XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY |# XCB_XKB_EVENT_TYPE_STATE_NOTIFY);# static const uint16_t affectMap = (XCB_XKB_MAP_PART_KEY_TYPES |# XCB_XKB_MAP_PART_KEY_SYMS |# XCB_XKB_MAP_PART_MODIFIER_MAP |# XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS |# XCB_XKB_MAP_PART_KEY_ACTIONS |# XCB_XKB_MAP_PART_KEY_BEHAVIORS |# XCB_XKB_MAP_PART_VIRTUAL_MODS |# XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP);# select = xcb_xkb_select_events_checked(ctx->conn,# XCB_XKB_ID_USE_CORE_KBD,# affectWhich,# 0,# affectWhich,# affectMap,# affectMap,# NULL);# error = xcb_request_check(ctx->conn, select);# if (error)# errx(1, "couldn't select XKB events");# }# }# int# main(void)# {# struct ctx ctx;# ctx.conn = xcb_connect(NULL, NULL);# if (!ctx.conn)# errx(1, "couldn't connect to display");# setup_xkb(&ctx);# loop(&ctx);# xcb_disconnect(ctx.conn);# return 0;# }
# FORKED from https://github.com/liquidev/datarray## Data oriented design made easy.#### Datarray provides a simple to use array of objects designed for cache## efficiency. It can be used to build fast programs that manipulate lots of## data, without sacrificing readability.#### Unlike manual solutions, indexing a datarray is done just like any old array## or seq out there, although it cannot be passed around as an openArray as it## breaks assumptions about the order of data in memory.#### The elements returned by datarrays are rather limited compared to ordinary## objects. Because the memory layout is completely different,## a wrapper object – `Element[T]` is used. `Element[T]` stores a pointer to## the datarray's memory, the datarray's size, and the index of the relevant## element. Field lookups are desugared to reading from the datarray's memory.#### Objects stored in datarrays cannot use UFCS out of the box, and do not have## destructors. The object fields' destructors get run once the datarray is## destroyed, which, depending on the allocation type, may be when it goes out## of scope, or is swept by the GC.#### Note that this package is quite experimental and uses the experimental## dot operator overloading feature of Nim. It is possible to use `{}` instead,## which may not be as convenient, but is better supported.#### Use `-d:datarrayNoDots` to disable this feature and make the usage of `.`## into an error.{.experimental: "codeReordering".}import std/macrosimport std/sugartypeMem = ptr UncheckedArray[byte]Datarray*[N: static int, T] {.byref.} = object## Stack-allocated datarray with a fixed size.## Note that `T` **must not** be ref!# i tried to constrain `T` but then the compiler yells at me in packedSize# so whatevermem: array[packedSize(T) * N, byte]DynDatarrayObj[T] = objectmem: Memlen: intDynDatarray*[T] = ref DynDatarrayObj[T]## A dynamically allocated datarray with a constant size determined at## runtime.AnyDatarray* = Datarray | DynDatarray## Either a stack-allocated or dynamically allocated datarray.Element*[T] = object## A short-lived pointer to an element in a datarray.## Note that this must not outlive the datarray. In practice this is not## hard to enforce - simply make sure that the element is not written to## any variable that can outlive the datarray this element points to.## This is partially mitigated by `=copy` being unavailable on `Element`\s.# once view types become stable, this may be enforced a little bit more# easily, by using openArray instead of ptr UncheckedArray and relying on# nim's borrow checker.# right now view types don't work all that well, so let's just not.mem: Memarrlen: intindex: intVarElement*[T] = object## An Element pointing to mutable data.mem: Memarrlen: intindex: intproc packedSize(T: type): int {.compileTime.} =# calculate the packed size (size with byte alignment) of a typefor x in T.default.fields:result += x.sizeof{.push inline.}# raw operations# every type of datarray must implement the mem procedure.# mem must return a *valid, non-nil* pointer to the raw bytes backing a# datarray.# template mem*[N, T](arr: Datarray[N, T]): ptr UncheckedArray[byte] =# ## Implementation detail, do not use.# cast[ptr UncheckedArray[byte]](arr.data[0].addr)## info## Returns the lower bound of the datarray (always 0).proc low*[N, T](arr: Datarray[N, T]): int = 0# Returns the upper bound of the datarray (always N - 1).proc high*[N, T](arr: Datarray[N, T]): int = N - 1# Returns the length of the datarray (always N).proc len*[N, T](arr: Datarray[N, T]): int = N# Returns the lower bound of the datarray (always 0).proc low*[T](arr: DynDatarray[T]): int = 0# Returns the upper bound of the datarray (always len - 1)proc high*[T](arr: DynDatarray[T]): int = arr.len - 1# Returns the length of the datarray.proc len*[T](arr: DynDatarray[T]): int = arr.len# Creates a new dynamic datarray with the given length.proc newDynDatarray*[T](len: int): DynDatarray[T] =result = DynDatarray[T]( mem: alloc0(len * packedSize(T)), len: len)template cleanupElements(arr: AnyDatarray) =var offset = 0for x in T.default.fields:for _ in 1..arr.len:`=destroy`(cast[ptr typeof(x)](arr.mem[offset].addr)[])offset += sizeof(x)# Cleans up the datarray and its elements.proc `=destroy`*[N, T](arr: var Datarray[N, T]) = cleanupElements(arr)# Cleans up the dynamic datarray and its elements.proc `=destroy`*[T](arr: var DynDatarrayObj[T]) =if arr.data != nil:cleanupElements(arr)dealloc(arr.data)# # system.rangeCheck but the error message doesn't suck# NO EXCEPTIONS# template rangeCheck(i: int, range: Slice[int]) =# when compileOption("rangeChecks"):# if i notin range:# raise newException(IndexDefect,# "index " & $i & " out of bounds (" & $range & ")")# returns the index of the first fieldtemplate firstIndex[T](arrlen: int, field: untyped): int =var size = 0for name, x in T.default.fieldPairs:if name == astToStr(field): breaksize += x.sizeof * arrlensizetemplate nthIndex[T, F](arrlen: int, field: untyped, i: int): int =firstIndex[T](arrlen, field) + sizeof(F) * itemplate ithImpl(T, arr: untyped, index: int, field: untyped): auto =type F = T.default.`field`.typeof#rangeCheck index, 0..<arr.lencast[ptr F](arr.mem[nthIndex[T, F](arr.len, field, index)].addr)[]# Indexes into a field of an object in the datarray, and returns it.template ith*[N, T]( arr: Datarray[N, T], index: int, field: untyped): auto = ithImpl(T, arr, index, field)template ith*[N, T]( arr: var Datarray[N, T], index: int, field: untyped{ident}): auto = ithImpl(T, arr, index, field)template ith*[T]( arr: DynDatarray[T], index: int, field: untyped{ident}): auto = ithImpl(T, arr, index, field)template ith*[T](arr: var DynDatarray[T], index: int, field: untyped{ident}): auto = ithImpl(T, arr, index, field)template indexImpl(T, arr: untyped, i: int): Element[T] =#rangeCheck i, 0..<arr.lenElement[T]( mem: cast[Mem](arr.mem[0].addr), arrlen: arr.len, index: i)template varIndexImpl(T, arr: untyped, i: int): VarElement[T] =#rangeCheck i, 0..<arr.lenVarElement[T]( mem: cast[Mem](arr.mem[0].addr), arrlen: arr.len, index: i)# Indexes into the array and returns an `Element[T]` for an object with the given index.template `[]`*[N, T](arr: Datarray[N, T], index: int): Element[T] = indexImpl(T, arr, index)# Indexes into the array and returns a `VarElement[T]` for an object with the# given index. Unlike the non-var version, `VarElement` allows for mutation# of the object's fields.template `[]`*[N, T](arr: var Datarray[N, T], index: int): VarElement[T] = varIndexImpl(T, arr, index)template itemsImpl(T, arr: untyped) =for i in 0..<arr.len:yield arr[i]# Iterates through the elements in the datarray.iterator items*[N, T](arr: Datarray[N, T]): Element[T] = itemsImpl(T, arr)# Mutably iterates through the elements in the datarray.iterator items*[N, T](arr: var Datarray[N, T]): VarElement[T] = itemsImpl(T, arr)iterator items*[T](arr: DynDatarray[T]): Element[T] = itemsImpl(T, arr)iterator items*[T](arr: var DynDatarray[T]): VarElement[T] = itemsImpl(T, arr)template pairsImpl(T, arr: untyped) =for i in 0..<arr.len:yield (i, arr[i])# Iterates through the elements in the datarray, also yielding their indices.iterator pairs*[N, T](arr: Datarray[N, T]): (int, Element[T]) = pairsImpl(T, arr)# Mutably Iterates through the elements in the datarray, also yielding their indices.iterator pairs*[N, T](arr: var Datarray[N, T]): (int, VarElement[T]) = pairsImpl(T, arr)iterator pairs*[T](arr: DynDatarray[T]): (int, Element[T]) = pairsImpl(T, arr)iterator pairs*[T](arr: var DynDatarray[T]): (int, VarElement[T]) = pairsImpl(T, arr)# making copies of elements is illegalproc `=copy`*[T](dest: var Element[T], src: Element[T]) {.error.}proc `=copy`*[T](dest: var VarElement[T], src: VarElement[T]) {.error.}# Accesses a field in the element.template `{}`*[T](e: Element[T], field: untyped{ident}): auto =type F = T.default.`field`.typeofcast[ptr F](e.mem[nthIndex[T, F](e.arrlen, field, e.index)].addr)[]# Mutably accesses a field in the var element.template `{}`*[T](e: VarElement[T], field: untyped{ident}): auto =type F = T.default.`field`.typeofcast[ptr F](e.mem[nthIndex[T, F](e.arrlen, field, e.index)].addr)[]# Writes to a field in the object pointed to by the var element.template `{}=`*[T](e: VarElement[T], field: untyped{ident}, value: sink auto) =type F = T.default.`field`.typeofcast[ptr F](e.mem[nthIndex[T, F](e.arrlen, field, e.index)].addr)[] = valuewhen not defined(datarrayNoDots):{.push experimental: "dotOperators".}# Dot access operator for Elements. Sugar for `e{field}`.template `.`*[T](e: Element[T], field: untyped{ident}): auto = e{field}# Dot access operator for VarElements. Sugar for `e{field}`.template `.`*[T](e: VarElement[T], field: untyped{ident}): auto = e{field}# Dot equals operator for VarElements. Sugar for `e{field} = value`.template `.=`*[T](e: VarElement[T], field: untyped{ident}, value: untyped) =e{field} = value{.pop.} # ?{.pop.} # ?proc verify(node: NimNode, predicate: bool, error: string) =if not predicate:error(error, node)macro select*(loop: ForLoopStmt): untyped =# Selects fields from a datarray. Refer to the example for usage.runnableExamples:import std/randomtypeExample = objecta, b, c: intvar arr: Datarray[10, Example]# there must be two loop variables:# 1. the index# 2. the fields that should get unpacked# the index may be _ if it's not used, but it must always be present.# the unpacked fields are desugared to ith() calls.for i, (a, b) in select arr:a = rand(1.0) < 0.5b = a div 2 + i# if only one field is needed, the () may be omitted:for _, c in select(arr):c += 1# basic checksloop.verify loop.len == 4, "select must have two loop variables"loop[2].verify loop[2].kind in {nnkCall, nnkCommand}, "select can only be used like a normal call or a command call"loop[2].verify loop[2].len == 2, "select accepts a single argument with the datarray to select from"# unpack the ASTvarindexVar = loop[0]fields = loop[1]arr = loop[2][1]body = loop[3]# check the unpacked ASTindexVar.verify indexVar.kind == nnkIdent, "the index variable's name must be an identifier"if fields.kind == nnkIdent:fields = nnkVarTuple.newTree(fields, newEmptyNode())fields.verify fields.kind == nnkVarTuple, "fields must be wrapped in parentheses"# generate a forvar for the index if it is _if $indexVar == "_":indexVar = genSym(nskForVar, "index")# generate the templatesvar iths = newStmtList()for field in fields[0..^2]:field.verify field.kind == nnkIdent, "every field must be a single identifier"let tmpl = nnkTemplateDef.newTree( field # name, newEmptyNode() # patterns, newEmptyNode() # generic params, newTree(nnkFormalParams, bindSym"auto"), newEmptyNode() # pragmas, newEmptyNode() # -, quote do:`arr`.ith(`indexVar`, `field`))iths.add(tmpl)# put it all togetherresult = quote do:for `indexVar` in 0..<`arr`.len:`iths``body`# wrap the result in a block, because better safe than sorryresult = newBlockStmt(newEmptyNode(), result)#nim r --passC:-march=native --passC:-flto -d:danger --exceptions:goto tests/benchmark.nim#[For some reason, not using LTO and goto-based exceptions tanks the performance of Element[T]but I'm yet to discover the reason behind thisor potentially a better solution that doesn't have such high performance overhead.Thus, try to avoid Element[T] in performance-critical codeand use ith and select instead of it.]#
import portal/portal, vk/[ vulkan, vkTypes, vulkan_record, pipeline_record], scenes/[ scene_object, scene_utils, scene_record, main_scenes]import drawable/text as mtextimport scenes/intro as sIntroimport scenes/title as sTitle#TODO: Figure out a way to auto-sync or get rid of current_scene and the_main_scene# so we only need to worry about one to know and go to the proper sceneproc load*( sr: var Scene_Record, rec: var Vulkan_Record, pipeline_record: Pipeline_Record) = discard#sTitle.load rec, title#sIntro.load rec, intro#case sr.the_main_scene#of Main_Scene_Enum.Intro: sr.current_scene = sr.get_scene "intro"#of Main_Scene_Enum.Title: sr.current_scene = sr.get_scene "title"proc update*( sr: var Scene_Record, rec: var Vulkan_Record, fps: string, tick_rate: float32) = discard#[ case sr.the_main_sceneof Main_Scene_Enum.Title:sr.current_scene = sr.get_scene "title"sTitle.update rec, sr.current_scene[]of Main_Scene_Enum.Intro:sr.current_scene = sr.get_scene "intro"sIntro.update rec, sr.current_scene[], sr, fps ]#proc input*( sr: var Scene_Record, rec: var Vulkan_Record) = discard#[ case sr.the_main_sceneof Main_Scene_Enum.Title: sTitle.input rec, srof Main_Scene_Enum.Intro: sIntro.input rec, sr ]##of Main_Scene_Enum.alive: discard #alive.input(w, hero)proc show*( sr: Scene_Record, rec: var Vulkan_Record, pipeline_record: Pipeline_Record) = discard#[ case sr.the_main_sceneof Main_Scene_Enum.Title:sTitle.show rec, sr.current_scene[]of Main_Scene_Enum.Intro: sIntro.show( rec, sr.current_scene[], pipeline_record) ]## of Main_Scene_Enum.alive: discard #alive.input(w, hero)proc prepFrame*(rec: var Vulkan_Record, sr: var Scene_Record, pipeline_record: Pipeline_Record) =discard vkAcquireNextImageKHR( rec.vk_device, rec.swapChain.handle, uint64.high, rec.presentCompleteSemaphore, VkFence 0, addr rec.currentFrameBuffer)discard vkWaitForFences(rec.vk_device, 1, addr rec.fences[rec.currentFrameBuffer], VKBool32 true, uint64.high)discard vkResetFences(rec.vk_device, 1, addr rec.fences[rec.currentFrameBuffer])sr.show rec, pipeline_recordproc submitFrame*( current_frame_buffer: uint32, render_complete_semaphore: VkSemaphore, queue: VkQueue#, scene: var Scene, present_info: var VkPresentInfoKHR) =#for shape in scene.shapes.mitems:#if shape.changed: rec.vk_device.updateCamera shape#[ for text in scene.texts.mitems:if text.changed:text.updateCamera ]## THE M A G I C (presenting) queuePresent#[ var presentInfo: VkPresentInfoKHRpresentInfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHRpresentInfo.pNext = nilpresentInfo.swapchainCount = 1presentInfo.pSwapchains = addr rec.swapChain.swapChainKHR ]#present_info.pImageIndices = addr current_frame_buffer #rec.currentFrameBuffer# Check if a wait semaphore has been specified to wait for# before presenting the imageif (render_complete_semaphore.int != 0):presentInfo.pWaitSemaphores = addr render_complete_semaphorepresentInfo.waitSemaphoreCount = 1#TODO: WHY DOES THIS MEMORY LEAK EVERY FRAMEvar preres = vkQueuePresentKHR( queue, addr presentInfo)#if preres == VK_SUBOPTIMAL_KHR: quit "bad vkQueuePresentKHR"# rec.windowResize scene# scene.rebuild rec# discard vkDeviceWaitIdle rec.vk_device# rec.readyFrame = trueproc sendFrame*(rec: var Vulkan_Record, sr: var Scene_Record, pipeline_record: Pipeline_Record, present_info: var VkPresentInfoKHR) =if rec.readyFrame:rec.prepFrame sr, pipeline_recordvarwaitStageMask = VkPipelineStageFlags VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITsubmitInfo = VkSubmitInfo(sType: VK_STRUCTURE_TYPE_SUBMIT_INFO, pWaitDstStageMask: addr waitStageMask, pWaitSemaphores: addr rec.presentCompleteSemaphore, waitSemaphoreCount: 1, pSignalSemaphores: addr rec.renderCompleteSemaphore, commandBufferCount: 1, pCommandBuffers: addr rec.draw_command_buffers[rec.currentFrameBuffer], signalSemaphoreCount: 1)discard vkQueueSubmit( rec.queue, 1, submitInfo.addr, rec.fences[rec.currentFrameBuffer])submitFrame( rec.currentFrameBuffer, rec.renderCompleteSemaphore, rec.queue, present_info)#rec.readyFrame = false
import tables, strutils, optionstype# entry_action: Option[Callback]# exit_action: Option[Callback]State_Actions = tuple[ entry_action: Option[Callback], exit_action: Option[Callback]]Callback = proc(): voidStateEvent[S,E] = tuple[state: S, event: E]Transition[S] = tuple[nextState: S, action: Option[Callback]]State_Machine*[S,E] = ref object of RootObjinitial_state*: Scurrent_state*: Option[S]state_actions*: array[S, StateActions]transitions*: TableRef[StateEvent[S,E], Transition[S]]free_transitions*: TableRef[S, Transition[S]]default_transition*: Option[Transition[S]]#TransitionNotFoundException = object of Exceptionproc current_state_is[S,E]( m: State_Machine[S,E], nextState: S) =if m.current_state.isSome:if m.state_actions[m.current_state.get].exit_action.isSome:get(m.state_actions[m.current_state.get].exit_action)()m.current_state = some(nextState)if m.state_actions[m.current_state.get].entry_action.isSome:get(m.state_actions[m.current_state.get].entry_action)()proc reset*[S,E]( m: State_Machine[S,E]) =m.setCurrentState m.initial_stateproc initial_state_is*[S,E]( m: State_Machine[S,E], state: S) =m.initial_state = stateproc add_state_actions*[S,E]( m: State_Machine[S,E], state: S, entry_action: Callback = nil, exit_action: Callback = nil) =letentry = if entry_action == nil: none(Callback)else: some(entry_action)exit = if exit_action == nil: none(Callback)else: some(exit_action)m.state_actions[state] = (entry, exit)proc a_state_machine*[S,E]( initial_state: S): State_Machine[S,E] =result = State_Machine[S,E]()result.transitions = newTable[ StateEvent[S,E], Transition[S]]()result.free_transitions = newTable[ S, Transition[S]]()result.initial_state_is initial_stateproc add_free_transition*[S,E]( m: State_Machine[S,E], state: S, nextState: S) =m.free_transitions[state] = (nextState, none(Callback))proc addTransitionAny*[S,E](m: State_Machine[S,E], state, nextState: S, action: Callback) =m.free_transitions[state] = (nextState, some(action))proc add_transition*[S,E](m: State_Machine[S,E], state: S, event: E, nextState: S) =m.transitions[(state, event)] = (nextState, none(Callback))proc add_transition*[S,E](m: State_Machine[S,E], state: S, event: E, nextState: S, action: Callback) =m.transitions[(state, event)] = (nextState, some(action))proc setDefaultTransition*[S,E](m: State_Machine[S,E], state: S) =m.default_transition = some((state, none(Callback)))proc setDefaultTransition*[S,E](m: State_Machine[S,E], state: S, action: Callback) =m.default_transition = some((state, some(action)))proc the_transition*[S,E]( m: State_Machine[S,E], event: E, state: S): Transition[S] =let map = (state, event)if m.transitions.hasKey(map): result = m.transitions[map]elif m.free_transitions.hasKey(state): result = m.free_transitions[state]elif m.default_transition.isSome: result = m.default_transition.getelse:echo mapquit "TransitionNotFoundException"proc process*[S,E]( m: State_Machine[S,E], event: E) =let transition = m.the_transition(event, m.current_state.get)if transition[1].isSome: get(transition[1])()m.current_state_is transition[0]#echo event, " ", m.current_state.getwhen isMainModule:typeStateName = enumSOLIDLIQUIDGASPLASMAEvent = enumMELTEVAPORATESUBLIMATEIONIZEvar m = newMachine[StateName, Event](LIQUID)proc cb() =echo "i'm evaporating"var condition: boolproc enterLiquid() =echo "entering liquid state"proc exitLiquid() =echo "exiting liquid state"proc enterGas() =if condition:echo "entering gas state and ionizing immediately"m.process(IONIZE)else:echo "entering gas state"proc exitGas() =echo "exiting gas state"proc enterPlasma() =echo "entering plasma state"m.add_transition(SOLID, MELT, LIQUID)m.add_transition(LIQUID, EVAPORATE, GAS, cb)m.add_transition(SOLID, SUBLIMATE, GAS)m.add_transition(GAS, IONIZE, PLASMA)m.add_transition(SOLID, MELT, LIQUID)m.addStateActions(LIQUID, entry_action=enterLiquid, exit_action=exitLiquid)m.addStateActions(PLASMA, enterPlasma)m.addStateActions(GAS, enterGas, exitGas)# to "start" the fsm# this is necessarym.resetassert m.getCurrentState() == LIQUIDcondition = falsem.process(EVAPORATE)assert m.getCurrentState() == GASm.process(IONIZE)assert m.getCurrentState() == PLASMAecho "\nreseting\n"m.resetassert m.getCurrentState() == LIQUIDcondition = truem.process(EVAPORATE)assert m.getCurrentState() == PLASMA, $m.getCurrentState()
import scenes/[ scene_object, scene_utils, scene_record, main_scenes]import scenes/intro as intro_scene, scenes/title as title_scene, drawable/[ shape_object, text, textTypes, actions, shape_types], vk/[ vk_core, vulkan, swapchain, graphics_pipeline, pipeline_record, buffer], portal/[ portal, portalObj, keyboard, mouse, monitor, portalUtils], times, glm, camera, utils/etc, os, math,bitops, theScenes, input/[ inputTys], strUtils, memory/[ utils]import std/tableswhen defined windows:import winim/leanwhen defined linux:import platforms/unix/x11/xcbproc main =varthe_portal = aPortal()vk_record = the_portal.setup_vulkan()scene_record = a_scene_record( Main_Scene_Enum.Intro)proc key_relay( the_portal: ptr Portal, key: Key, action: int) {.closure.} =echo "key_relay"if is_down Key.Q:echo "----"the_portal.quit = trueif key == Key.F andaction == ord Key_Action.Press: the_portal.toggle_full_screenif key == Key.Esc andaction == ord Key_Action.Press: discardproc mouse_key_relay( the_portal: ptr Portal, key: MouseButton, action: MouseBtnAction){.closure.} =discard#echo actionproc window_mapped_relay ( the_portal: ptr Portal, width: int, height: int) {.closure.} = discardproc window_closed_relay ( the_portal: ptr Portal) {.closure.} =echo "im gonna CLOOOOOOSE"the_portal.quit = trueproc window_resize_relay(the_portal: ptr Portal, width, height: int) {.closure.} =# Simple fix for 1:1 pixel aspect ratio.# if vk_record.current_viewport.width > vk_record.current_viewport.height:# vk_record.current_viewport.x += 0.5 * (vk_record.current_viewport.width - vk_record.current_viewport.height)# vk_record.current_viewport.width = vk_record.current_viewport.height# elif vk_record.current_viewport.height > vk_record.current_viewport.width:# vk_record.current_viewport.y += 0.5f * (vk_record.current_viewport.height - vk_record.current_viewport.width);# vk_record.current_viewport.height = vk_record.current_viewport.widthwindowResize( the_portal, vk_record.ready_frame, scene_record.current_scene[])#[ rebuild( vk_record.vk_device, vk_record.frame_buffers, scene_record.current_scene.render_pass, vk_record.swapchain, scene_record.current_scene.depth_stencil, vk_record.gpu.memory_properties) ]#discard vkDeviceWaitIdle vk_record.vk_devicevk_record.readyFrame = true#set_key_relay (addr the_portal), key_relay#set_mouse_relay(the_portal.addr, mouse_key_relay)#set_window_resize_relay (addr the_portal), window_resize_relay#set_window_mapped_relay (addr the_portal), window_mapped_relayset_window_closed_relay (addr the_portal), window_closed_relayecho repr the_portal.relaysvardt = 0.0updateLimit = 1.0 / 144.0ft,t = 0.0currTime = 0.0frames = 0updates = 0accum = 0.0nowTime = 0.0cpuframeTimer: TimeIntervalgpuframeTimer: TimeIntervallastFPS: floatfps: string = "???"presentInfo = VkPresentInfoKHR( sType: VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, pNext: nil, swapchainCount: 1, pSwapchains: addr vk_record.swapchain.handle)lastTime = cpuTime()timer = lastTimepipeline_record = Pipeline_Record()# TODO: move scene instantiating out of mainintro = a_scene( vk_record)while not the_portal.quit:events the_portalnowTime = cpuTime()dt += (nowTime - lastTime) / updateLimitlastTime = nowTimescene_record.input vk_recordwhile dt > 1.0:scene_record.update vk_record, fps, 0.1updates += 1dt -= 1#vk_record.sendFrame scene_record, pipeline_record, presentInfoframes += 1if cpuTime() - timer > 1.0:timer += 1#fps = $frames & " | " & $updates# echo frames, " | ",updatesupdates = 0frames = 0#discard vkDeviceWaitIdle vk_record.vk_devicemain()
import scene_object, scene_utils, scene_record, main_scenes, ../vk/[ vulkan, vkTypes, vulkan_record], ../drawable/[ shape_object, text], ../portal/keyboard, glmimport ../drawable/text as mTextimport ../drawable/shape_objecttypeMenuState = enum Begin, Exitvarms = MenuState.Begin#TODO proper dynamic resolution scaling of UI elementsproc load*( rec: var Vulkan_Record, title: var Scene, scene_record: var Scene_Record) =#[ title.add rec.anSDFText(title, "title", str = "Shapes", size = 18)title.add rec.anSDFText(title, "begin", str = "begin", size = 14)title.add rec.anSDFText(title, "exit", str = "exit", size = 14)title.add rec.a_shape( title.render_pass, title.current_entity_id, 4, "settingsFrame", hollow = true, theSize = 100)title.the_text("title").move_to( 150, 40)title.the_text("begin").move_to( 900, 70)title.the_text("exit").move_to( 1600, 70)title.the_text("title").updateFS( outlined = 0.0)echo rec.swapchain.current_extent.widthtitle.the_shape("settingsFrame").move_to( rec.swapchain.current_extent.width.float32 / 2, ((rec.swapchain.current_extent.height.int / 2) + 100 ).float32)title.the_shape("settingsFrame").scale( 8, 4) ]##$title.the_shape("settingsFrame").ubo.model.scale(50)scene_record.add_scene( addr title, "title")#TODO: switching states is kinda buggyproc input*( rec: var Vulkan_Record, sr: var Scene_Record) =if Key.Up.is_down orKey.Right.is_down:case msof MenuState.Begin: inc msof MenuState.Exit: ms = MenuState.Beginif Key.Down.is_down orKey.Left.is_down:case msof MenuState.Begin: ms = MenuState.Exitof MenuState.Exit: dec msif Key.Enter.is_down:case ms#of MenuState.Begin: sr.the_main_scene = Main_Scene_Enum.Introof MenuState.Exit: quit()else: discardproc update*( rec: var Vulkan_Record, menu: var Scene) = discard#[ case msof MenuState.Begin:menu.the_text("begin").updateFS( outlined = 0.1)menu.the_text("exit").updateFS( outlined = 0.0)of MenuState.Exit:menu.the_text("begin").updateFS( outlined = 0.0)menu.the_text("exit").updateFS( outlined = 0.1) ]#proc show*( rec: var Vulkan_Record, scene: var Scene) =varcmdBufInfo: VkCommandBufferBeginInfoscissor: VkRect2DclearValues: array[2,VkClearValue]renderPassBeginInfo: VkRenderPassBeginInfoscissor.extent.width = uint32 rec.swapchain.current_extent.widthscissor.extent.height = uint32 rec.swapchain.current_extent.heightscissor.offset.x = 0scissor.offset.y = 0cmdBufInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFOcmdBufInfo.pNext = nilclearValues[0].color = VkClearColorValue(float32: [0f, 0f, 0f, 1f])clearValues[1].depth_stencil = VkClearDepthStencilValue(depth: 1.0f, stencil: 0 )renderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFOrenderPassBeginInfo.pNext = nilrenderPassBeginInfo.renderArea.offset.x = 0renderPassBeginInfo.renderArea.offset.y = 0renderPassBeginInfo.renderArea.extent.width = uint32 rec.swapchain.current_extent.widthrenderPassBeginInfo.renderArea.extent.height = uint32 rec.swapchain.current_extent.heightrenderPassBeginInfo.clearValueCount = 2renderPassBeginInfo.pClearValues = addr clearValues[0]renderPassBeginInfo.render_pass = scene.render_passrenderPassBeginInfo.framebuffer = rec.frame_buffers[rec.currentFrameBuffer]discard vkBeginCommandBuffer(rec.draw_command_buffers[rec.currentFrameBuffer], addr cmdBufInfo)vkCmdBeginRenderPass(rec.draw_command_buffers[rec.currentFrameBuffer], addr renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE)vkCmdSetViewport(rec.draw_command_buffers[rec.currentFrameBuffer], 0, 1, addr rec.current_viewport)vkCmdSetScissor(rec.draw_command_buffers[rec.currentFrameBuffer], 0, 1, addr scissor)#[ for shape in scene.shapes.mitems:rec.buildCommandBuffers shape, scene.render_pass, int rec.currentFrameBufferfor text in scene.texts.mitems:mtext.buildCommandBuffers rec, text, scene.render_pass, int rec.currentFrameBuffer ]#vkCmdEndRenderPass(rec.draw_command_buffers[rec.currentFrameBuffer])discard vkEndCommandBuffer(rec.draw_command_buffers[rec.currentFrameBuffer])rec.readyFrame = true
{.experimental: "codeReordering".}{.deadCodeElim: on.}#TODO: REBUILD render_Pass_begin_info on window size changeimport ../vk/[ vulkan_record, vulkan_utils, vulkan, depth_stencil, swapchain, buffer], scene_object, scene_record, ../deshn_entity/[ being], ../drawable/[ shape_object, textTypes, plane], ../portal/[ portalObj], std/[ tables, bitops], glmproc a_scene*( vk_record: var Vulkan_Record): Scene =result = Scene()result.entities = newTable[string, int]()proc theIds*(scene: Scene): seq[int] =for t in scene.shapes: result.add t.idproc theNames*(scene: Scene): seq[string] =for t in scene.shapes: result.add t.nameproc the_shape*( scene: var Scene, id: int, name: string): var Shape =for t in scene.shapes.mitems:if t.id == id: return tquit("ERROR: Entity[SHAPE] not found: " & name & ": id" & $id)proc the_shape*( scene: var Scene, name: string): var Shape =scene.the_shape scene.entities[name], nameproc the_deshn_being*( scene: var Scene, id: int, name: string): var Deshn_Being =for t in scene.deshn_beings.mitems:if t.id == id: return tquit("ERROR: Entity[SHAPE] not found: " & name & ": id" & $id)proc the_deshn_being*( scene: var Scene, name: string): var Deshn_Being =scene.the_deshn_being scene.entities[name], name#[ proc the_text*( scene: Scene, id: int, name: string): var SDFText =#WARNING]: Cannot prove that 'result' is initialized. This will become a compile time error in the future. [ProveInit]for t in scene.texts.mitems:if t.id == id: return tquit("ERROR: Entity[SDFTEXT] not found: " & name & " / id:" & $id)proc the_text*( scene: Scene, name: string): var SDFText = scene.the_text scene.entities[name], name ]## # TODO: need drawable-independent command buffers# proc build*( vk_record: Vulkan_Record# , scene: var Scene# ) =proc the_plane*( scene: var Scene, id: int, name: string): var Plane =for t in scene.planes.mitems:if t.id == id: return tquit("ERROR: Entity[SHAPE] not found: " & name & ": id" & $id)proc the_plane*( scene: var Scene, name: string): var Plane =scene.the_plane scene.entities[name], nameproc add*( scene: var Scene, shape: Shape) =#echo "adding: ", sh.name, " ", sh.idscene.shapes.add shapescene.entities[shape.name] = shape.idscene.current_entity_id += 1scene.the_vertices.add shape.verticesscene.the_indices.add shape.indices#[ proc add*( scene: var Scene, text: SDFText) =scene.texts.add textscene.entities[text.name] = scene.current_entity_idscene.current_entity_id += 1for text_vert in text.vertices:scene.the_vertices.add text_vert.pos.xscene.the_vertices.add text_vert.pos.yscene.the_vertices.add text_vert.pos.zscene.the_vertices.add text_vert.uv.xscene.the_vertices.add text_vert.uv.yscene.the_indices.add text.indices]#proc add*( scene: var Scene, deshn_being: Deshn_Being) =#echo "adding: ", sh.name, " ", sh.idscene.deshn_beings.add deshn_beingscene.entities[deshn_being.name] = deshn_being.idscene.current_entity_id += 1scene.add deshn_being.shapeproc add*( scene: var Scene, plane: Plane) =#echo "adding: ", sh.name, " ", sh.idscene.planes.add planescene.entities[plane.name] = plane.idscene.current_entity_id += 1scene.add plane.shapeproc prepare_vertices*( scene: var Scene, vk_device: VkDevice, memory_properties: VkPhysicalDeviceMemoryProperties, command_pool: VkCommandPool, queue: VkQueue, master_vertex_buffer: var Buffer, master_index_buffer: var Buffer) =varcopyCmd: VkCommandBuffer = vk_device.getCommandBuffers(command_pool, true)copyRegion: VkBufferCopydata: pointer#[ copyMem( data, addr scene.the_vertices[0], Natural scene.the_vertices.sizeof)vkUnmapMemory( vk_device, scene.staging_vertex_buffer.device_memory)discard vkBindBufferMemory( vk_device, scene.staging_vertex_buffer.vkbuffer, scene.staging_vertex_buffer.device_memory, VkDeviceSize 0)discard vkBindBufferMemory( vk_device, scene.vertex_buffer.vkbuffer, scene.vertex_buffer.device_memory, VkDeviceSize 0)scene.staging_index_buffer = a_vulkan_buffer( vk_device, memory_properties, VkBufferUsageFlags VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VkMemoryPropertyFlags bitor( VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT.ord, VK_MEMORY_PROPERTY_HOST_COHERENT_BIT.ord), VkDeviceSize scene.the_indices.sizeof)scene.index_buffer = a_vulkan_buffer( vk_device, memory_properties, VkBufferUsageFlags bitor(VK_BUFFER_USAGE_INDEX_BUFFER_BIT.ord, VK_BUFFER_USAGE_TRANSFER_DST_BIT.ord), VkMemoryPropertyFlags VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, VkDeviceSize scene.the_indices.sizeof)vk_device.map_memory( scene.staging_index_buffer.device_memory, data)copyMem(data, addr scene.the_indices[0], Natural scene.the_indices.sizeof)vkUnmapMemory(vk_device, scene.staging_index_buffer.device_memory)discard vkBindBufferMemory(vk_device, scene.staging_index_buffer.vkbuffer, scene.staging_index_buffer.device_memory, VkDeviceSize 0)discard vkBindBufferMemory(vk_device, scene.index_buffer.vkbuffer, scene.index_buffer.device_memory, VkDeviceSize 0)copyRegion.size = VkDeviceSize scene.the_vertices.sizeofvkCmdCopyBuffer(copyCmd, scene.staging_vertex_buffer.vkbuffer, scene.vertex_buffer.vkbuffer, 1.uint32, addr copyRegion)copyRegion.size = VkDeviceSize scene.the_indices.sizeofvkCmdCopyBuffer(copyCmd, scene.staging_index_buffer.vkbuffer, scene.index_buffer.vkbuffer, 1.uint32, addr copyRegion)# # Flushing the command buffer will also submit it to the queue and# # uses a fence to ensure that all commands have been executed before returningvk_device.flushCommandBuffer queue, command_pool, copyCmd# Destroy staging buffers# Note: Staging buffer must not be deleted before the copies have been submitted and executedvkDestroyBuffer( vk_device, scene.staging_vertex_buffer.vkbuffer, nil)vkFreeMemory( vk_device, scene.staging_vertex_buffer.device_memory, nil)vkDestroyBuffer( vk_device, scene.staging_index_buffer.vkbuffer, nil)vkFreeMemory( vk_device, scene.staging_index_buffer.device_memory, nil) ]#proc cleanup*( vk_record: var Vulkan_Record, scene: var Scene) =discard vkDeviceWaitIdle vk_record.vk_device# recycle the Pools!# vkDestroyDescriptorPool(demo->device, demo->desc_pool, NULL)# vkDestroyCommandPool(demo->device, demo->command_pool, NULL);#should we have an initial "setup command buffer"?#[ for shape in scene.shapes:vk_record.vk_device.vkDestroyPipeline(shape.graphicsPipeline.pipeline, nil)vk_record.vk_device.vkDestroyPipelineLayout(shape.graphicsPipeline.pipelineLayout, nil)vk_record.vk_device.vkDestroyDescriptorSetLayout(shape.descrSetLayout, nil)for text in scene.texts:vk_record.vk_device.vkDestroyPipeline(text.graphicsPipeline.pipeline, nil)vk_record.vk_device.vkDestroyPipelineLayout(text.graphicsPipeline.pipelineLayout, nil)vk_record.vk_device.vkDestroyDescriptorSetLayout(text.descrSetLayout, nil) ]#for i,fb in vk_record.draw_command_buffers:vkFreeCommandBuffers( vk_record.vk_device, vk_record.command_pool, 1, addr vk_record.draw_command_buffers[i])vk_record.vk_device.vkDestroyRenderPass(scene.render_pass, nil)proc windowResize*( the_portal: ptr Portal, ready_frame: var bool, scene : var Scene) =readyFrame = false#vk_record.draw_command_buffers.setLen 0# frame_buffers.setLen 0proc rebuild_render_pass_info*( vk_record: var Vulkan_Record, scene: var Scene) =varscissor = VkRect2D( extent: VkExtent2D( width: uint32 vk_record.swapchain.current_extent.width, height: uint32 vk_record.swapchain.current_extent.height), offset: VkOffset2D( x: 0, y: 0))renderPassBeginInfo = VkRenderPassBeginInfo(sType: VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)clearValues: array[2,VkClearValue]clearValues[0].color = VkClearColorValue(float32: [0f, 0f, 0f, 1f])clearValues[1].depth_stencil = VkClearDepthStencilValue( depth: 1.0f, stencil: 0)renderPassBeginInfo.pNext = nilrenderPassBeginInfo.renderArea.offset.x = 0renderPassBeginInfo.renderArea.offset.y = 0renderPassBeginInfo.renderArea.extent.width = uint32 vk_record.swapchain.current_extent.widthrenderPassBeginInfo.renderArea.extent.height = uint32 vk_record.swapchain.current_extent.heightrenderPassBeginInfo.clearValueCount = 2renderPassBeginInfo.pClearValues = addr clearValues[0]renderPassBeginInfo.render_pass = scene.render_passrenderPassBeginInfo.framebuffer = vk_record.frame_buffers[vk_record.currentFrameBuffer]scene[].render_pass_begin_info = renderPassBeginInfoscene[].scissor = scissor
import scene_object, main_scenesimport std/tablestypeScene_Record_Object = object of RootObjcurrent_scene*: ptr Scenemain_scene_table*: Table[string, ptr Scene]Scene_Record* = ref object of Scene_Record_Objectproc a_scene_record*( the_main_scene: Main_Scene_Enum, current_scene: ptr Scene = nil): Scene_Record =result = Scene_Record( current_scene: current_scene, main_scene_table: initTable[string, ptr Scene]())proc add_scene*( scene_record: var Scene_Record, scene: ptr Scene, scene_name: string) =scene_record.main_scene_table[scene_name] = sceneproc get_scene*( scene_record: var Scene_Record, scene_name: string): ptr Scene =scene_record.main_scene_table[scene_name]
import tables, ../drawable/[ shape_object, textTypes, plane], ../deshn_entity/[ being], ../vk/[ vulkan, vkTypes, depth_stencil, buffer]typeSceneObj = object of RootObjdevice*: ptr VkDeviceentities*: TableRef[string, int]shapes*: seq[Shape]#texts*: seq[SDFText]deshn_beings*: seq[Deshn_Being]planes*: seq[Plane]current_entity_id*: intrender_pass*: VkRenderPassdepth_stencil*: Depth_Stencilrender_pass_begin_info*: VkRenderPassBeginInfoscissor*: VkRect2Dvertex_buffer*: Bufferindex_buffer*: Bufferstaging_vertex_buffer*: Bufferstaging_index_buffer*: Buffer# TODO: a better way , instead of having to redundantly copy vertices and indicesthe_vertices*: seq[float32]the_indices*: seq[uint32]indirect_commands*: seq[VkDrawIndexedIndirectCommand]Scene* = ref object of SceneObj
typeMain_Scene_Enum* = enum# Begin -> intro0# Alive -> intro1Title, Intro
{.experimental: "parallel".}import scene_object, scene_utils, scene_record, ../vk/[ vulkan, vkTypes, vulkan_record, graphics_pipeline, pipeline_record, buffer, gpu, vulkan_utils], ../drawable/[ shape_object, shape_types, plane, colors, grid], ../drawable/text as mText, ../deshn_entity/[ being, actions], glm, strUtils, ../portal/keyboard, ../camera, std/tables, ../state_machine, optionsproc load*( vulkan_record: var Vulkan_Record, pipeline_record: Pipeline_Record, intro: var Scene, scene_record: var Scene_Record) =varprotag_shape = a_shape( vulkan_record, pipeline_record, intro.render_pass, intro.current_entity_id, 3, "protag_tri", theSize = vec2f( 4.5, 4.5), being_color = silver_blue, deshn_color = yellow, camera_type = Camera_Kind.Perspective, hollow = false)#[ intro.add Plane( shape: a_shape( vulkan_record, pipeline_record, intro.render_pass, intro.current_entity_id, 4, "plane0_quad", theSize = vec2f( 80, 40), being_color = dark_purple, deshn_color = yellow, camera_type = Camera_Kind.Perspective, hollow = false), name: "plane0", grid: a_dynamic_grid( 10, 10, vulkan_record, intro.render_pass, pipeline_record, intro.current_entity_id, parent_buffer)) ]#intro.add( a_deshn_being( shape = protag_shape, name = "protag"))#[ intro.the_deshn_being("protag").move_to( (vulkan_record.swapchain.current_extent.width.int / 2).float32, (vulkan_record.swapchain.current_extent.height.int / 2).float32)intro.the_plane("plane0").move_to( (vulkan_record.swapchain.current_extent.width.int / 2).float32, (vulkan_record.swapchain.current_extent.height.int / 2).float32) ]#intro.the_deshn_being("protag").shape.camera.position_is vec3f(0.0,0.0,-50.0)# intro.the_shape("plane0_quad").camera.position_is vec3f(0.0,0.0,-50.0)scene_record.add_scene( addr intro, "intro")intro.the_deshn_being("protag").main_state_machine.current_state = some Main_Deshn_Being_States.Idleintro.indirect_commands.setLen intro.current_entity_idfor i in 0..intro.current_entity_id - 1:intro.indirect_commands[i].instanceCount = 1intro.indirect_commands[i].firstInstance = 1intro.indirect_commands[i].firstIndex = 0intro.indirect_commands[i].indexCount = 1#echo intro.the_deshn_being("protag").main_state_machine.transitionsprepare_vertices( intro, vulkan_record.vk_device, vulkan_record.gpu.memory_properties, vulkan_record.command_pool, vulkan_record.queue, vulkan_record.master_vertex_buffer, vulkan_record.master_index_buffer)proc input*( vulkan_record: var Vulkan_Record, sr: var Scene_Record) = discardproc update*( vulkan_record: var Vulkan_Record, intro: var Scene, sr: var Scene_Record, fps: string) =varprotag = intro.the_deshn_being("protag")# plane = intro.the_plane("plane0")if Key.K1.is_down_or_held:protag.shape.camera.position_is vec3f( protag.shape.camera.position.xy, protag.shape.camera.position.z + 0.1)if Key.K2.is_down_or_held:protag.shape.camera.position_is vec3f( protag.shape.camera.position.xy, protag.shape.camera.position.z - 0.1)#[ if Key.K3.is_down_or_held:plane.shape.camera.position_is vec3f( plane.shape.camera.position.xy, plane.shape.camera.position.z + 0.1)if Key.K4.is_down_or_held:plane.shape.camera.position_is vec3f( plane.shape.camera.position.xy, plane.shape.camera.position.z - 0.1) ]#if Key.Comma.is_down_or_held:protag.move_up 1if Key.O.is_down_or_held:protag.move_down 1if Key.A.is_down_or_held:protag.move_left 1if Key.E.is_down_or_held:protag.move_right 1if Key.Comma.is_up andKey.O.is_up andKey.A.is_up andKey.E.is_up andnot protag.recovering:protag.current_state_is Not_Movingif not protag.deshn_pool_is_full andnot protag.recovering:# echo "NOT moving, adding."protag.add_amount_to_deshn_pool 0.03else:#echo "can't add because: " , protag.deshn_pool_is_full, " <> ", protag.recoveringdiscardif protag.recovering:#echo "RECOVERING: ", protag.current_deshn_pool_recovery_poolprotag.add_amount_to_recovery_pool 0.01proc build_command_buffers*( draw_command_buffer: var VkCommandBuffer, scene: var Scene, graphics_pipeline: Graphics_Pipeline, descriptor_set: VkDescriptorSet, gpu: GPU, vulkan_record: var Vulkan_Record, indirect_command_buffer: var Buffer) =varcommand_buffer_info = VkCommandBufferBeginInfo(sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)scissor: VkRect2DclearValues: array[2,VkClearValue]render_pass_info: VkRenderPassBeginInfooffsets = VkDeviceSize 0viewport = VkViewport( width: float32 vulkan_record.swapchain.current_extent.width, height: float32 vulkan_record.swapchain.current_extent.height, minDepth: 0.0f, maxDepth: 1.0f)scissor.extent.width = uint32 vulkan_record.swapchain.current_extent.widthscissor.extent.height = uint32 vulkan_record.swapchain.current_extent.heightscissor.offset.x = 0scissor.offset.y = 0clearValues[0].color = VkClearColorValue(float32: [0f, 0f, 0f, 1f])clearValues[1].depth_stencil = VkClearDepthStencilValue(depth: 1.0f, stencil: 0 )render_pass_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFOrender_pass_info.pNext = nilrender_pass_info.renderArea.offset.x = 0render_pass_info.renderArea.offset.y = 0render_pass_info.renderArea.extent.width = uint32 vulkan_record.swapchain.current_extent.widthrender_pass_info.renderArea.extent.height = uint32 vulkan_record.swapchain.current_extent.heightrender_pass_info.clearValueCount = 2render_pass_info.pClearValues = addr clearValues[0]render_pass_info.render_pass = scene.render_passfor i in 0 .. vulkan_record.draw_command_buffers.len:render_pass_info.framebuffer = vulkan_record.frame_buffers[i]discard vkBeginCommandBuffer( vulkan_record.draw_command_buffers[i], addr command_buffer_info)vkCmdBeginRenderPass( vulkan_record.draw_command_buffers[i], addr render_pass_info, VK_SUBPASS_CONTENTS_INLINE)vkCmdSetViewport( vulkan_record.draw_command_buffers[i], 0, 1, addr vulkan_record.current_viewport)vkCmdSetScissor( vulkan_record.draw_command_buffers[i], 0, 1, addr scissor)vkCmdBindDescriptorSets( vulkan_record.draw_command_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline.pipeline_layout, 0, 1, addr descriptor_set, 0, nil)vkCmdBindPipeline( vulkan_record.draw_command_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline.pipeline)vkCmdSetLineWidth(vulkan_record.draw_command_buffers[i], 1)vkCmdBindVertexBuffers( vulkan_record.draw_command_buffers[i], 0, 1, addr scene.vertex_buffer.vk_buffer, addr offsets)vkCmdBindIndexBuffer( vulkan_record.draw_command_buffers[i], scene.index_buffer.vk_buffer, VkDeviceSize 0, VK_INDEX_TYPE_UINT32)#[ vkCmdPushConstants( draw_command_buffer, graphics_pipeline.pipeline_layout, VKShaderStageFlags VK_SHADER_STAGE_VERTEX_BIT.ord or VK_SHADER_STAGE_FRAGMENT_BIT.ord, uint32 0, uint32 sizeof Shape_Pushes, cast[pointer] ( addr push_constants )) ]#if gpu.features.multiDrawIndirect.bool:vkCmdDrawIndexedIndirect( vulkan_record.draw_command_buffers[i], indirect_command_buffer.vk_buffer, VkDeviceSize 0, uint32 scene.indirect_commands.len, uint32 sizeof(VkDrawIndexedIndirectCommand))vkCmdEndRenderPass( vulkan_record.draw_command_buffers[i])discard vkEndCommandBuffer( vulkan_record.draw_command_buffers[i])#shape.camera.updateAR(60, vulkan_record.swapchain.current_extent.width.float / float vulkan_record.swapchain.current_extent.height )#vulkan_record.readyFrame = trueproc show*( vulkan_record: var Vulkan_Record, scene: var Scene, pipeline_record: Pipeline_Record) =vulkan_record.readyFrame = true
import portalObj, ../platforms/unix/x11/xcb#, ../scene/tysproc lock_window*( the_portal: ptr Portal, width: int, height: int) =when defined linux:var theHints = WMSizeHints( flags: WM_SIZE_HINT_P_MIN_SIZE.ord, minWidth: int32 width, minHeight: int32 height, maxWidth: int32 width, maxHeight: int32 height)discard xcb_change_property( p.conn, ord XCB_PROP_MODE_REPLACE, p.window, xcb_atom_t XCB_ATOM_WM_NORMAL_HINTS, xcb_atom_t XCB_ATOM_WM_SIZE_HINTS, 32, uint32 WMSizeHints.sizeof shr 2, addr theHints)proc toggle_full_screen*(the_portal: ptr Portal) =when defined linux:varcookie3 = xcb_intern_atom(p.conn, 0, 15, "_MOTIF_WM_HINTS" )reply3 = xcb_intern_atom_reply( p.conn, cookie3, err0)fullscreenHint = MotifHints( flags: 2, functions: 0, decorations: 0, input_mode: 0, status: 0)decoratedHint = MotifHints( flags: MWM_HINTS_FUNCTIONS or MWM_HINTS_DECORATIONS, functions: MWM_FUNC_MOVE or MWM_FUNC_MINIMIZE or MWM_FUNC_CLOSE, decorations: MWM_DECOR_BORDER or MWM_DECOR_TITLE or MWM_DECOR_MINIMIZE or MWM_DECOR_MENU, input_mode: 0, status: 0)if not p.isFullScreen:discard xcb_change_property( p.conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, p.window, reply3.atom, reply3.atom, 32, 5, addr fullscreenHint)p.isFullScreen = trueelse:discard xcb_change_property( p.conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, p.window, reply3.atom, reply3.atom #THIS is essential, 32, 5, addr decoratedHint)p.isFullScreen = false#[ proc top*(a: WindowArea): int16 = a.yproc left*(a: WindowArea): int16 = a.xproc right*(a: WindowArea): int16 = a.x + int16 a.widthproc bottom*(a: WindowArea): int16 = a.y + int16 a.heightproc `==`*(a, b: WindowArea): bool =a.x == b.x anda.y == b.y anda.width == b.width anda.height == b.height]#
{.experimental: "codeReordering".}when defined linux:import ../platforms/unix/x11/[x,xcb, xlib, xkbCommon]when defined windows:import winim/leanimport ../platforms/w64/[the_types]import keyboard, mouse, monitorimport tablestypeNS = objectretina*: boolframeName*: array[256, char]X11 = objectclassName*: array[256, char]instanceName*: array[256, char]Win32_Key_Menu = objectkeymenu*: boolWL = objectappId*: array[256,char]Portal_Config* = ref objecttitle*: ptr charx_pos*: inty_pos*: intwidth*: intheight*: intresizable*: boolvisible*: booldecorated*: boolfocused*: boolautoIconify*: boolfloating*: boolmaximized*: boolcenterCursor*: boolfocusOnShow*: boolmousePassthrough*: boolscaleToMonitor*: boolns*: NSx11*: X11win32*: Win32_Key_Menuwl*: WLPortalObj* = object of RootObjrelays*: Relaysquit*: booltitle*: stringmonitorCount: intcurrMonitor*: Monitormonitors*: seq[Monitor]width*: uint16height*: uint16config*: Portal_Configwhen defined linux:conn*: ptr xcb_connection_twid*: uint32reply1*,reply2*: ptr xcb_intern_atom_reply_twindow*: xcb.xcb_window_t # is this root???root*: Windowiter*: xcb_screen_iterator_tsetup*: ptr xcb_setup_tuserPtr*: pointergroup*: xkb_layout_index_txdisplay*: xlib.PDisplay#kb*: X11KbxkbContext*: ptr xkb_contextxkbkm*: ptr xkb_keymapxkbState* : ptr xkb_statexkbNewState* : ptr xkb_statexkbCompState*: ptr xkb_compose_statexkbCompTable*: ptr xkb_compose_tablelocale*: stringscreen*: ptr xcb_screen_tscreenIter*: xcb_screen_iterator_tfirstXkbEvent*: uint8# TODO: find the """proper""" xcb/xkb function for getting group change# until then, we store the group, and compare it with the event's group# when the proper event fires, in order to check if we need to update layouts for an actually new groupcurrKeyboardGroup*: uint8# TODO: break this out into a proper `Keyboard` struct latercurrKeyboardLayout*: stringxwindow*: WindowxfixesEvent*: intxfixesError*: intxcompEvent*: intxcompError*: intxcbReply*: ptr xcb_query_extension_reply_tqp*: xcb_query_pointer_cookie_tmouseRep*: ptr xcb_query_pointer_reply_tmouse*: MousewmState*: xcb_intern_atom_cookie_twmHidden*: xcb_intern_atom_cookie_twmMaxX*: xcb_intern_atom_cookie_twmMaxY*: xcb_intern_atom_cookie_twinGeo*: WindowArea#clientGeo*: WindowArea#frameGeo*: WindowAreawhen defined windows:hwnd*: lean.HWNDmsg*: MSGwParam*: WPARAMlParam*: LPARAMwndclass*: WNDCLASSh_Instance*: HMODULEmain_window_class*: ATOMwin32_message_loop_hook_procs*: seq[Win32_Message_Loop_Hook_Proc]class_atom_table*: Table[string, ATOM]accelorator_exists*: boolw32_window_table*: Table[HWND, Win32_Window]win32_Instance*: HANDLEPortal* = ref object of PortalObj# # relays.nimtypeKey_Relay* = proc ( the_portal: ptr Portal, key: Key, action: int) {.closure.}Mouse_Key_Relay* = proc ( the_portal: ptr Portal, mb: MouseButton, action: MouseBtnAction) {.closure.}Window_Resize_Relay* = proc ( the_portal: ptr Portal, width: int, height: int) {.closure.}Window_Mapped_Relay* = proc ( the_portal: ptr Portal, width: int, height: int) {.closure.}Window_Closed_Relay* = proc ( the_portal: ptr Portal) {.closure.}Window_Input_Language_Change_Relay* = proc ( the_portal: ptr Portal) {.closure.}Relays* = objectwindow_closed_relay*: Window_Closed_Relay#key_relay*: Key_Relay#mouse_key_relay*: Mouse_Key_Relay#window_resize_relay*: Window_Resize_Relay#window_mapped_relay*: Window_Mapped_Relay#window_input_language_change_relay*: Window_Input_Language_Change_Relay#[ proc set_key_relay*( the_portal: ptr Portal, key_relay: Key_Relay) =#TODO: actual pointers like GLFWthe_portal.relays.key_relay = key_relayproc set_mouse_relay*( the_portal: ptr Portal, mouse_key_relay: Mouse_Key_Relay) = the_portal.relays.mouse_key_relay = mouse_key_relayproc set_window_resize_relay*( the_portal: ptr Portal, window_resize_relay: Window_Resize_Relay) = the_portal.relays.window_resize_relay = window_resize_relayproc set_window_mapped_relay*( the_portal: ptr Portal, window_mapped_relay: Window_Mapped_Relay) = the_portal.relays.window_mapped_relay = window_mapped_relay ]#proc set_window_closed_relay*( the_portal: ptr Portal, window_closed_relay: Window_Closed_Relay) = the_portal.relays.window_closed_relay = window_closed_relay#[ proc set_window_input_language_change_relay*( the_portal: ptr Portal, window_input_language_change_relay: Window_Input_Language_Change_Relay) = the_portal.relays.window_input_language_change_relay = window_input_language_change_relay ]##[void _glfwInputWindowCloseRequest(_GLFWwindow* window){assert(window != NULL);window->shouldClose = GLFW_TRUE;if (window->callbacks.close)window->callbacks.close((GLFWwindow*) window);}]#proc close_window*(p: var Portal) =when defined linux:xcb_disconnect p.conndiscard xcb_destroy_window( p.conn, p.window)when defined windows:p.quit = true
#[ THINGS TO FIX LATER:]##{.experimental: "codeReordering".}{.experimental: "notnil".}when defined linux:import ../platforms/unix/x11/[ x, xlib, xcb, xkblib, xkbCommon, keysyms, xfixes, xcomposite, xrandr]import keyboard, mouse, monitor, portalObj, ../utils/[etc]import bitops, re, sequtils, sugar, tables# , utils# , ../vk/[vkTypes, swapchain, utils, vulkan]# , monitor# , ../scene/scene# , ../drawable/[shapes]# , ../scene/scene# , ../camera#, glmwhen defined windows:import winim, winim/lean, ../platforms/w64/[ events, utils, the_types, the_functions]proc title_is*( the_portal: ptr Portal, s: string) =when defined linux:discard xcb_change_property( p.conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, p.window, 39, 31, s.sizeof.uint8, s.len.uint32, addr s[0])proc the_screen_info() = discard# TODO:# fix the bad(?) video modes for the monitors# Gamma stuff# figure out a solution to workareaproc a_portal*( width: uint16 = 1920, height: uint16 = 1080, title: string = "Portal"): Portal =when defined linux:vartitle = titlexdisplay = XOpenDisplay nil# ewmh: xcb_ewmh_connection_tconn = XGetXCBConnection xdisplaymask = XCB_GC_FOREGROUND.ord or XCB_GC_GRAPHICS_EXPOSURES.ordsetup: ptr xcb_setup_twmClassTitle = title & '\0' #& title & '\0'root: WindowscreenIter = xcb_setup_roots_iterator xcb_get_setup conn#scr: cint = screenIter.remscreen: ptr xcb_screen_t = screenIter.datawindow = xcb_generate_id conn# xwin = DefaultRootWindow xdisplay# ewmhCookie = xcb_ewmh_init_atoms(conn, addr ewmh)#ewmhRep = xcb_ewmh_init_atoms_replies(addr ewmh, ewmhCookie, err0)valueList = [screen.black_pixel,0]#ver = conn.xcb_randr_query_version_reply( xcb_randr_query_version(conn, 1, 6) , err0 ) # TODO: should it be 1.5 or 1.6???sr = xcb_randr_get_screen_resources_current(conn, screen.root)reply = xcb_randr_get_screen_resources_current_reply( conn, sr, nil)outs: ptr xcb_randr_output_t = xcb_randr_get_screen_resources_current_outputs replylenn = xcb_randr_get_screen_resources_current_outputs_length replymonitorAmount: intmodesLen = xcb_randr_get_screen_resources_current_modes_length(reply)modes = xcb_randr_get_screen_resources_current_modes(reply)primaryCookie = xcb_randr_get_output_primary(conn, screen.root)primary = xcb_randr_get_output_primary_reply(conn, primaryCookie, err0)primaryOut: xcb_randr_get_output_info_cookie_t = xcb_randr_get_output_info(conn, primary.output, reply.timestamp)primaryInfo = xcb_randr_get_output_info_reply( conn, primaryOut, nil)primaryCRTC = xcb_randr_get_crtc_info(conn, primaryInfo.crtc, reply.timestamp)actualPrimary = xcb_randr_get_crtc_info_reply(conn, primaryCRTC, err0)# primaryModesInfo = xcb_randr_get_output_info_modes(primaryInfo)# primaryModesInfoReply = xcb_randr_get_output_info_modes_length(primaryInfo)#primaryOutputInfoModes = xcb_randr_get_output_info_modes_length()monitors: seq[Monitor]primaryMonitor: MonitortheRandrModes: seq[xcb_randr_mode_info_t]# TODO: stop being stupid and do it properly in the monitorAdd loopfor x in 0 ..< modesLen:theRandrModes.add modes[x]#theRandrModes.sortmask = XCB_CW_BACK_PIXEL or XCB_CW_EVENT_MASKvalueList[1] = XCB_NONE orXCB_EVENT_MASK_STRUCTURE_NOTIFY orXCB_EVENT_MASK_ENTER_WINDOW orXCB_EVENT_MASK_POINTER_MOTION_HINT orXCB_EVENT_MASK_BUTTON_1_MOTION orXCB_EVENT_MASK_BUTTON_2_MOTION orXCB_EVENT_MASK_BUTTON_3_MOTION orXCB_EVENT_MASK_BUTTON_4_MOTION orXCB_EVENT_MASK_BUTTON_5_MOTION orXCB_EVENT_MASK_EXPOSURE orXCB_EVENT_MASK_BUTTON_PRESS orXCB_EVENT_MASK_BUTTON_RELEASE orXCB_EVENT_MASK_BUTTON_MOTION orXCB_EVENT_MASK_POINTER_MOTION orXCB_EVENT_MASK_LEAVE_WINDOW orXCB_EVENT_MASK_KEY_PRESS orXCB_EVENT_MASK_KEY_RELEASE orXCB_MAP_NOTIFY orXCB_MAPPING_NOTIFY orXCB_MAP_REQUEST orXCB_EVENT_MASK_PROPERTY_CHANGE orXCB_EVENT_MASK_FOCUS_CHANGE orXCB_EVENT_MASK_KEYMAP_STATE orXCB_EVENT_MASK_VISIBILITY_CHANGE #or# TODO: This complicates how screen.width|height is reported and complicates the viewport size# as it combines 2+ monitors together# not necessarily needed to handle resizing, but is it better™?# XCB_EVENT_MASK_RESIZE_REDIRECTif xcb_connection_has_error(conn).bool: quit "ERROR: xcb conn"discard xcb_create_window( conn # connection, 0 # depth (same as root), window # window ID, screen.root # parent window, 0 # X, 0 # Y, width, height, 0 #border width, xcb_window_class_t.XCB_WINDOW_CLASS_INPUT_OUTPUT.uint16, screen.root_visual, mask.uint32, valueList[0].addr)varev: xcb_generic_event_tcookie = xcb_intern_atom(conn, 1, 12,"WM_PROTOCOLS")cookie2 = xcb_intern_atom(conn, 0, 16, "WM_DELETE_WINDOW")cookie3 = xcb_intern_atom(conn, 0, 15, "_MOTIF_WM_HINTS" )# maxvertAtom = xcb_intern_atom(conn, 0, 13, "_NET_WORKAREA")# maxHorzAtom = xcb_intern_atom(conn, 0, 28, "_NET_WM_STATE_MAXIMIZED_HORZ")#something = xcb_get_property(conn, 0, window, x_NET_SUPPORTING_WM_CHECK, XCB_ATOM_WINDOW.ord, 0, 1024)reply1 = xcb_intern_atom_reply(conn, cookie, err0)reply2 = xcb_intern_atom_reply(conn, cookie2, err0)reply3 = xcb_intern_atom_reply( conn, cookie3, err0)# replyMaxV = xcb_intern_atom_reply( conn, maxvertAtom, err0)# replyMaxH = xcb_intern_atom_reply( conn, maxhorzAtom, err0)# replyMaxVProp = xcb_get_property( conn, 0, window, replyMaxV.atom, XCB_ATOM_CARDINAL.ord, 0, 1024)# replyMaxHProp = xcb_get_property( conn, 0, window, replyMaxH.atom, XCB_ATOM_STRING.ord, 0, 0)# vRep = xcb_get_property_reply(conn, replyMaxVProp, err0)# hRep = xcb_get_property_reply(conn, replyMaxHProp, err0)colors = rgbFromDepth screen.root_depth.intatomEdid = xcb_intern_atom(conn, 0, 4, "EDID")atomEdidRep = xcb_intern_atom_reply(conn, atomEdid, err0)# atomWorkArea = xcb_intern_atom(conn, 0, 13, "_NET_WORKAREA")# atomWARep = xcb_intern_atom_reply(conn, atomWorkArea, err0)decoratedHint = MotifHints( flags: MWM_HINTS_FUNCTIONS or MWM_HINTS_DECORATIONS, functions: MWM_FUNC_MOVE or MWM_FUNC_MINIMIZE or MWM_FUNC_CLOSE or MWM_FUNC_RESIZE, decorations: MWM_DECOR_BORDER or MWM_DECOR_TITLE or MWM_DECOR_MINIMIZE or MWM_DECOR_MENU, input_mode: 0, status: 0)discard xcb_change_property( conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, window, reply1.atom, 4, 32, 1, addr reply2.atom)# setting window titlediscard xcb_change_property( conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, window, 39, 31, title.sizeof.uint8, title.len.uint32, addr title[0])# WM_CLASS property (?????)discard xcb_change_property( conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, window, 39, 31, wmClassTitle.sizeof.uint8, wmClassTitle.len.uint32, addr wmClassTitle[0])discard xcb_change_property( conn, xcb_prop_mode_t.XCB_PROP_MODE_REPLACE.ord, window, reply3.atom, reply3.atom, 32, 5, addr decoratedHint)# this will get connected monitors# but xcb_randr_get_output_info_reply will still report monitors even if they're disabled# so we get the CRTC, which will only(?) get currently enabled monitors# so we more accurately know what the user currently has# NOTE:# Currently, just using the depth, from the geoReply, which is from the overall "Screen" (combined render area from both monitors(?))# Maybe in the future, properly get the depth, by individual monitorfor x in 0 ..< lenn:varoutt = xcb_randr_get_output_info_reply(conn, xcb_randr_get_output_info(conn, outs[x], reply.timestamp), nil )outCR = xcb_randr_get_crtc_info(conn, outt.crtc, reply.timestamp)outActual = xcb_randr_get_crtc_info_reply(conn, outCR, err0)outmodes = xcb_randr_get_output_info_modes outtoutmodeslen = xcb_randr_get_output_info_modes_length outt# TODO: do we really need the connection check if we're getting a CRTC reply?if outt.connection == RR_Connected andnot outActual.isNil:for m in 0 ..< modesLen:if modes[m].id == outActual.mode:varb1 = xcb_randr_get_output_property( conn, outs[x], atomEdidRep.atom, XCB_ATOM_ANY.ord, 0, 100, 0, 0)a1 = xcb_randr_get_output_property_reply(conn, b1, err0)propData = xcb_randr_get_output_property_data(a1)edidStr = newString(a1.num_items)copyMem( edidStr[0].addr, propData, a1.num_items)varactualvTotal: float32 = cdouble modes[m].vtotalif bitand(modes[m].mode_flags, RR_DoubleScan).bool: actualvTotal *= 2if bitand(modes[m].mode_flags, RR_Interlace).bool: actualvTotal /= 2varaMonitor = Monitor( currVideoMode: VideoMode( refreshRate: ( modes[m].dot_clock.float32 /( modes[m].htotal.float32 *actualvTotal.float32)), width: int outActual.width, height: int outActual.height, bpp: int screen.root_depth, redbits: colors[0], greenbits: colors[1], bluebits: colors[2]), rotation : int (outActual[].addr).rotation, widthMM : int outt.mm_width, heightMM : int outt.mm_height, connName : $cast[cstring](xcb_randr_get_output_info_name outt), edid: edidStr, name: (edidstr.findAll(re"(\w+ \w+)\n")[0])[0..^2] # chop the `\n` off at the end)#add all the display modes!#TODO: investigate the weird video modes with high refreshratesfor mmm, theMode in theRandrModes:for mmm2 in 0 ..< outmodesLen:if theMode.id == outmodes[mmm2]:var theActualvTotal: float32 = cdouble theMode.vtotalif bitand(modes[m].mode_flags, RR_DoubleScan).bool: actualvTotal *= 2if bitand(modes[m].mode_flags, RR_Interlace).bool: actualvTotal /= 2var aVMode = VideoMode( refreshRate: (modes[m].dot_clock.float32 /( modes[m].htotal.float32 *theActualvTotal.float32)), width: int theMode.width, height: int theMode.height, bpp: int screen.root_depth, redbits: colors[0], greenbits: colors[1], bluebits: colors[2])aMonitor.videoModes.add aVMode#echo aMonitor.name, " can: ", repr theModemonitorAmount += 1monitors.add aMonitor#TODO: a better way to check(verify?) the primary monitorif outActual.x == actualPrimary.x andoutActual.y == actualPrimary.y andoutActual.width == actualPrimary.width andoutActual.height == actualPrimary.height:primaryMonitor = aMonitorelse: discard#echo repr modes[m]discard xcb_map_window(conn, window)#echo repr monitorsxcb_aux_sync connvarxcb_xfixes_id2 = xcb_extension_t( name: "XFIXES", global_id: 0)p = Portal( width: width, height: height, title: title, reply1: reply1, reply2: reply2, conn: conn, window: window, setup: setup, xdisplay: xdisplay, screen: screen, currMonitor: primaryMonitor, monitors: monitors# , screenIter: iter, locale: theLocale(), mouse: Mouse()#, xwindow: DefaultRootWindow xdiplay, xcbReply: conn.xcb_get_extension_data( addr xcb_xfixes_id2)#, xkbCompState: addr xkbcs#, kb: kb#, relays: Relays(key_relay: Key_Relay())#, group: group, root: root# , iter: iter)p.xdisplay.loadXKB(p.conn, p.firstXkbEvent)assert p.xdisplay.XCompositeQueryExtension(addr p.xcompEvent, addr p.xCompError) == trueassert p.xdisplay.XFixesQueryExtension(addr p.xfixes_event, addr p.xfixes_error) == truep.xdisplay.XFixesSelectCursorInput( p.xwindow, XFixesDisplayCursorNotifyMask)var xfixesMask: uint32 = XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE.ord orXCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY.ord orXCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER.orddiscard xcb_xfixes_select_selection_input_checked(p.conn, p.window, xcb_atom_t XCB_ATOM_PRIMARY.ord, xfixesMask)discard xcb_xfixes_select_selection_input_checked(p.conn, p.window, xcb_atom_t XCB_ATOM_SECONDARY.ord, xfixesMask)p.wmState = xcb_intern_atom(conn, 0, 13, "_NET_WM_STATE" )p.wmHidden = xcb_intern_atom(conn, 0, 20, "_NET_WM_STATE_HIDDEN" )p.wmMaxY = xcb_intern_atom(conn, 0, 28, "_NET_WM_STATE_MAXIMIZED_VERT" )p.wmMaxX = xcb_intern_atom(conn, 0, 28, "_NET_WM_STATE_MAXIMIZED_HORZ" )#p.getDPI()when defined windows:varh_instance = GetModuleHandle nilappName = "portal!"hwnd: lean.HWNDwndclass: WNDCLASSp = Portal( width: width, height: height, title: title)GetModuleHandleExW( bitor( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT), cast[ptr WCHAR] (addr appName), cast[ptr HMODULE] (addr h_instance))wndclass.style = CS_HREDRAW or CS_VREDRAWwndclass.lpfnWndProc = WindowProcwndclass.cbClsExtra = cast[int32] (( Portal).sizeof)wndclass.cbWndExtra = cast[int32] ((Portal).sizeof)wndclass.hInstance = h_instancewndclass.hIcon = LoadIcon(0, IDI_APPLICATION)wndclass.hCursor = LoadCursor(0, IDC_ARROW)wndclass.hbrBackground = GetStockObject(WHITE_BRUSH)wndclass.lpszMenuName = nilwndclass.lpszClassName = appNameRegisterClass(wndclass)hwnd = CreateWindow( appName, "p0", WS_VISIBLE or WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, h_instance, addr (p))discard ShowWindow(hwnd, SW_SHOW)discard UpdateWindow(hwnd)var lp_string: LPWSTR = "Windows did a bad"if GetLastError() != 0: MessageBox( 0, T $GetLastError().why, lp_string # TODO ( T"some_string" ) macro gives an error, 0)p.hwnd = hwndp.wndclass = wndclassp.hInstance = h_instancevarthing = 98thing2: ptr int = addr thing#[if SetProp( GetActiveWindow(), "thing2", cast[HANDLE] ((thing2))) == 0: quit("SetProp thing2 failed")var get_thing: pointer = cast[pointer] ( GetProp( GetActiveWindow() , "thing2") )echo "GETPROP INSIDE PORTAL:"echo repr (cast[ptr int](get_thing)[])echo "GETPROP PORTAL END/ "]#ChangeWindowMessageFilterEx( p.hwnd, WM_DROPFILES, MSGFLT_ALLOW, nil)ChangeWindowMessageFilterEx( p.hwnd, WM_COPYDATA, MSGFLT_ALLOW, nil)#ChangeWindowMessageFilterEx(p.hwnd,WM_COPYGLOBALDATA, MSGFLT_ALLOW, nil);var ctrl =TINITCOMMONCONTROLSEX( dwSize: int32 sizeof(TINITCOMMONCONTROLSEX), dwICC: ICC_DATE_CLASSES or ICC_LISTVIEW_CLASSES orICC_INTERNET_CLASSES orICC_LINK_CLASS or ICC_BAR_CLASSES or ICC_COOL_CLASSES)InitCommonControlsEx(ctrl)OleInitialize(nil)p# TODO: get this inside keyboard.nim without recursive import errorswhen defined linux:proc update_key_state*( p: var Portal, key: KeySym, action: Key_Action) =#var held: bool#echo "[",key_from_sym(key).key, "]", " was: ", $key_from_sym(key).stateif key_from_sym(key).state == KeyState.Up andaction == Key_Action.Press: key_from_sym(key).state = KeyState.Downelif ( key_from_sym(key).state == KeyState.Down orkey_from_sym(key).state == KeyState.Held) andaction == Key_Action.Release: key_from_sym(key).state = KeyState.Upelif key_from_sym(key).state == KeyState.Down andaction == Key_Action.Press: key_from_sym(key).state = KeyState.Held#echo "[",key_from_sym(key).key, "]", " now is: ", $key_from_sym(key).state#echo ""p.relays.key_relay( p, key_from_sym(key).key, action.ord)when defined windows:proc update_key_state*( p: var Portal, key: WORD, action: Key_Action) = discard#var held: bool#echo "[",key_from_sym(key).key, "]", " was: ", $key_from_sym(key).state#[ if key_from_sym(key).state == KeyState.Up andaction == Key_Action.Press: key_from_sym(key).state = KeyState.Downelif ( key_from_sym(key).state == KeyState.Down orkey_from_sym(key).state == KeyState.Held) andaction == Key_Action.Release: key_from_sym(key).state = KeyState.Upelif key_from_sym(key).state == KeyState.Down andaction == Key_Action.Press: key_from_sym(key).state = KeyState.Held#echo "[",key_from_sym(key).key, "]", " now is: ", $key_from_sym(key).state#echo "" ]##[ p.relays.key_relay( p, key_from_sym(key).key, action.ord) ]## TODO:# 1. get this inside keyboard.nim without recursive import errors# 2. Handle multiple scroll wheels# 3. Do we actually care about MouseBtnState.PressedAndScrolledUp && MouseBtnState.PressedAndScrolledDownwhen defined linux:proc updateMouseKeyState*( the_portal: ptr Portal, mb: xcb_button_t, action: MouseBtnAction) =#[MouseBtnState* {.pure.} = enum Up Down Held ScrolledUp ScrolledDown PressedAndScrolledUp PressedAndScrolledDownMouseBtnAction* {.pure.} = enum Release Press ScrollUp ScrollDown]#case actionof MouseBtnAction.Press:mbs[mb - 1].state = MouseBtnState.Downof MouseBtnAction.Release:mbs[mb - 1].state = MouseBtnState.Upof MouseBtnAction.ScrollUp:mbs[1].state = MouseBtnState.ScrolledUpof MouseBtnAction.ScrollDown:mbs[1].state = MouseBtnState.ScrolledDown#else: discardp.relays.mouse_key_relay( p, MouseButton ord (mb - 1), action)# TODO:# 1. get this inside keyboard.nim without recursive import errors# 2. Handle multiple scroll wheels# 3. Do we actually care about MouseBtnState.PressedAndScrolledUp && MouseBtnState.PressedAndScrolledDownproc updateMouseKeyState*( the_portal: ptr Portal, mb: xcb_button_t, action: MouseBtnAction) =#[MouseBtnState* {.pure.} = enum Up Down Held ScrolledUp ScrolledDown PressedAndScrolledUp PressedAndScrolledDownMouseBtnAction* {.pure.} = enum Release Press ScrollUp ScrollDown]#case actionof MouseBtnAction.Press:mbs[mb - 1].state = MouseBtnState.Downof MouseBtnAction.Release:mbs[mb - 1].state = MouseBtnState.Upof MouseBtnAction.ScrollUp:mbs[1].state = MouseBtnState.ScrolledUpof MouseBtnAction.ScrollDown:mbs[1].state = MouseBtnState.ScrolledDown#else: discardp.relays.mouse_key_relay( p, MouseButton ord (mb - 1), action)proc events*( p: var Portal) =when defined linux:discard xcb_flush p.connvarcm: xcb_client_message_event_tev: ptr xcb_generic_event_tev = xcb_poll_for_event p.connif not ev.isNil:case ev.response_type and 0x7f#of XCB_RESIZE_REQUEST: discardof XCB_EXPOSE: discard nilof XCB_MOTION_NOTIFY:var me = cast[ptr xcb_motion_notify_event_t](ev)p.mouse.posX = me.event_xp.mouse.posY = me.event_yof XCB_BUTTON_PRESS:var bpe = cast[ptr xcb_button_press_event_t](ev)case bpe.detailof 4: p.updateMouseKeyState bpe.detail, MouseBtnAction.ScrollUpof 5: p.updateMouseKeyState bpe.detail, MouseBtnAction.ScrollDownelse: p.updateMouseKeyState bpe.detail, MouseBtnAction.Pressp.mouseRep = cast[ptr xcb_query_pointer_reply_t](ev)# need to subtract old mouse pos from newof XCB_BUTTON_RELEASE:var bpe = cast[ptr xcb_button_release_event_t](ev)p.updateMouseKeyState bpe.detail, MouseBtnAction.Releasep.mouseRep = cast[ptr xcb_query_pointer_reply_t](ev)of XCB_ENTER_NOTIFY: discard nilof XCB_LEAVE_NOTIFY: discard nilof XCB_KEY_PRESS:varkp: ptr xcb_key_press_event_t = cast[ ptr xcb_key_press_event_t](ev)#kcs: int16 = if bitand(kp.state, ShiftMask).bool: 1 else: 0#p.update_key_state(XkbKeycodeToKeysym(p.xdiplay, kp.detail.char, 0, kcs), Press)# TODO: this can fail sometimes?p.update_key_state(xkb_state_key_get_one_sym(p.xkbState, kp.detail), Key_Action.Press)of XCB_KEY_RELEASE:varkr: ptr xcb_key_release_event_t = cast[ ptr xcb_key_release_event_t](ev)#kcs: int16 = if bitand(kr.state, ShiftMask).bool: 1 else: 0p.update_key_state(xkb_state_key_get_one_sym(p.xkbState, kr.detail), Key_Action.Release)#of XCB_ALLOC_NAMED_COLOR: discardof XCB_MAP_NOTIFY:varxkbe = cast[ptr xkb_event](ev)#we = cast[ ptr xcb_map_notify_event_t](ev)#geo = p.conn.xcb_get_geometry_reply(p.conn.xcb_get_geometry p.window, err0)#echo geo[]p.conn.loadKeyMap( p.xkbContext, p.xkbkm, p.xkbState, p.xkbNewState)assert loadComposeTable( p.locale, p.xkbCompTable, p.xkbContext, p.xkbCompState) == truep.currKeyboardGroup = xkbe[].state_notify.groupp.relays.window_mapped_relay( p, 8, 4)of XCB_XKB_MAP_NOTIFY: discardof XCB_PROPERTY_NOTIFY:var pe = cast[ptr xcb_property_notify_event_t](ev)#if pe.atom == wmState: echo "?"of XCB_CONFIGURE_NOTIFY:varce = cast[ ptr xcb_configure_notify_event_t](ev)if ce.width > 0 and ce.height > 0:p.relays.window_resize_relay( p, int ce.width, int ce.height)of XCB_MAPPING_NOTIFY:var km: ptr xcb_mapping_notify_event_t= cast[ ptr xcb_mapping_notify_event_t](ev)#echo "mapping: MYA-NEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!~~~~"# of XCB_MAP_REQUEST:# var km: ptr xcb_map_request_event_t= cast[ ptr xcb_map_request_event_t](ev)# echor km# echo "map_request: MYA-NEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!~~~~"# of XCB_XKB_STATE_NOTIFY: echo "wo"#echo repr kmof XCB_CLIENT_MESSAGE:# this is the "window close" responseif ev.response_type == 161: p.quit = true#of XCB_INPUT_DEVICE_STATE_NOTIFY:#of XCB_DESTROY_NOTIFY: echo "window destroyed"of XCB_VISIBILITY_NOTIFY: discardof XCB_FOCUS_IN: discard #echo "focused"of XCB_FOCUS_OUT: discard #echo "un-focused"else:#echo repr ev#echo ev.response_type#echo ev.response_type, " <> ", p.firstXkbEventif ev.response_type == p.firstXkbEvent:var xkbe = cast[ptr xkb_event](ev)case xkbe.anyy.xkbTypeof XCB_XKB_NEW_KEYBOARD_NOTIFY:# check if things actually changed on the keyboard# TODO: This also triggers for a first press on a 2nd mouseecho "new keyboard!"# echo repr p.xkbState.componentsp.conn.loadKeyMap( p.xkbContext, p.xkbkm, p.xkbState, p.xkbNewState)of XCB_XKB_MAP_NOTIFY:echo "XCB_XKB_MAP_NOTIFY"of XCB_XKB_STATE_NOTIFY:#echo "XCB_XKB_STATE_NOTIFY"#TODO: figure a better way# Currently this event hits if any "mod" key is pressed like ctrl (4) or alt (8)# so we check for this and filter out# as we currently only care about getting a new keyboard layout/groupif xkbe[].state_notify.mods == 8 orxkbe[].state_notify.mods == 4 orxkbe[].state_notify.eventType == 5: discard # mouse button down (?)else:if xkbe[].state_notify.group != p.currKeyboardGroup:p.conn.loadKeyMap( p.xkbContext, p.xkbkm, p.xkbState, p.xkbNewState)p.group = xkb_state_serialize_layout(p.xkbNewState, XKB_STATE_LAYOUT_EFFECTIVE)p.currKeyboardLayout = toString theLayoutName(p.group, p.xkbkm)p.currKeyboardGroup = xkbe[].state_notify.groupof XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY.ord: discardof XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY.ord: discardof XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY.ord: discardof XCB_XKB_EVENT_TYPE_NAMES_NOTIFY.ord: discardof XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY.ord: discard#of uint8 XCB_XKB_EVENT_TYPE_BELL_NOTIFY.ord: discard#of XCB_XKB_EVENT_TYPE_ACTION_MESSAGE.ord: discard#of XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY.ord: discard#of XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY.ord: discardelse: discardif ev.response_type == (uint p.xfixesEvent + XFixesCursorNotify): discard# var ce = cast[ptr XFixesCursorNotifyEvent](ev)# echo repr ce# var e = cast[ptr XFixesCursorNotifyEvent](ev)# echo repr ewhen defined windows:varmsg: MSGwhile PeekMessageW( msg, cast[HWND] (nil), 0, 0, PM_REMOVE) != 0:#for hook_proc inTranslateMessage msgDispatchMessage msg
typeMouseObj = object of RootObjposX*: intposY*: intMouse* = ref object of MouseObjMouseButton* {.size: int8.sizeof.} = enumLMBMMBRMBmb4mb5mb6mb7mb8mb9mb10mb11mb12mb13mb14mb15mb16mb17mb18mb19mb20MouseBtnObj = object of RootObjstate*: MouseBtnStateMouseBtn* = ref object of MouseBtnObjMouseBtnState* {.pure.} = enum Up Down Held ScrolledUp ScrolledDown PressedAndScrolledUp PressedAndScrolledDownMouseBtnAction* {.pure.} = enum Release Press ScrollUp ScrollDownvarmbs*: array[20, MouseBtn] = [ MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up), MouseBtn(state: MouseBtnState.Up)]proc state*(mb: MouseButton): MouseBtnState = mbs[ord mb].stateproc is_down*(mb: MouseButton): bool = return bool mbs[ord mb].state == MouseBtnState.Downproc isUp*(mb: MouseButton): bool = return bool mbs[ord mb].state == MouseBtnState.Up
when defined linux:{.passl: "-lXinerama".}{.passl: "-lXrandr".}# {.passl: "-lXi".}# {.passl: "-lXcursor".}# {.passl: "-lXxf86vm".}import ../platforms/unix/x11/[x, xcb, xrandr,xlib]import ../utils/etc, retypeVideoModeObj = object of RootObjwidth*: int #! The width, in screen coordinates, of the video mode.height*: int #! The height, in screen coordinates, of the video mode.redBits*: int#! The bit depth of the red channel of the video mode.greenBits*: int #! The bit depth of the green channel of the video mode.blueBits*: int #! The bit depth of the blue channel of the video mode.refreshRate*: float32 #! The refresh rate, in Hz, of the video mode.bpp*:intVideoMode* = ref object of VideoModeObjGammaRampObj = object of RootObjredBits*: cushortgreenBits*: cushortblueBits*: cushortsize*: cuintGammaRamp* = ref object of GammaRampObjMonitorObj = object of RootObjrotation*: intwidthMM*: intheightMM*: intcurrVideoMode*: VideoModevideoModes*: seq[VideoMode]gammaRamp: GammaRampconnName*: stringname*: stringedid*: stringMonitor* = ref object of MonitorObj#, xcb#from utils import echor#proc monitorCount*(p: Monitors): int = p.monitorCountproc rgbFromDepth*( depth: int, actualDepth: bool = false # for later ?): array[3, int] =var delta: int#GLFW parity (???)#if depth == 32: depth = 24# R G Bresult[0] = (depth div 3)result[1] = (depth div 3)result[2] = (depth div 3)delta = depth - (result[0] * 3)if delta >= 1: result[1] += 1if delta == 2: result[0] += 1when defined linux:#TODO: handle when no monitor is marked a "primary"proc thePrimaryMonitor*( conn: ptr xcb_connection_t, root: ptr xcb_screen_t, win: xcb_window_t): Monitor =result = Monitor(currVideoMode: VideoMode())varsr = xcb_randr_get_screen_resources_current(conn, win)primaryCookie = xcb_randr_get_output_primary(conn, win)reply = xcb_randr_get_screen_resources_current_reply( conn, sr, nil)ts = reply.timestampprimary = xcb_randr_get_output_primary_reply(conn, primaryCookie, err0)primaryOut: xcb_randr_get_output_info_cookie_t = xcb_randr_get_output_info(conn, primary.output, ts)primaryInfo = xcb_randr_get_output_info_reply( conn, primaryOut, nil)primaryCRTC = xcb_randr_get_crtc_info(conn, primaryInfo.crtc, ts)actual = xcb_randr_get_crtc_info_reply(conn, primaryCRTC, err0)geo = xcb_get_geometry(conn, win)geoRep = xcb_get_geometry_reply(conn, geo, err0)outs = xcb_randr_get_screen_resources_current_outputs replything10 = xcb_randr_get_crtc_info_outputs actualoutProps = xcb_randr_list_output_properties(conn, primary.output)outPropsRep = xcb_randr_list_output_properties_reply(conn, outProps, err0)theAtoms = xcb_randr_list_output_properties_atoms(outpropsRep)far = xcb_randr_get_output_info_modes(primaryInfo)farLen = xcb_randr_get_output_info_modes_length(primaryInfo)nthis = xcb_randr_get_screen_info(conn, win)woo = xcb_randr_get_screen_info_reply(conn, nthis ,err0)woop = xcb_randr_get_screen_info_rates_iterator(woo)woopLen = xcb_randr_get_screen_info_rates_length(woo)boop = xcb_randr_get_monitors(conn, win, 1)boopRep = xcb_randr_get_monitors_reply(conn, boop, err0)boopIter = xcb_randr_get_monitors_monitors_iterator(boopRep)boopLen = xcb_randr_get_monitors_monitors_length(boopRep)amo = xcb_randr_get_screen_resources_current_outputs_length(reply)ops = xcb_randr_get_screen_resources_current_outputs(reply)modesLen = xcb_randr_get_screen_resources_current_modes_length(reply)modes = xcb_randr_get_screen_resources_current_modes(reply)for x in 0 ..< modesLen:if modes[x].id == actual.mode:result.currVideoMode.refreshRate = (modes[x].dot_clock.float32 /(modes[x].htotal.float32 *modes[x].vtotal.float32))result.currVideoMode.bpp = int geoRep[].depthresult.currVideoMode.width = int geoRep[].widthresult.currVideoMode.height = int geoRep[].height# rgbFromDepth( result.currVideoMode.bpp# , result.currVideoMode.redBits# , result.currVideoMode.greenBits# , result.currVideoMode.blueBits# )result.rotation = int (actual[].addr).rotationresult.widthMM = int primaryInfo.mm_widthresult.heightMM = int primaryInfo.mm_heightresult.connName = $cast[cstring](xcb_randr_get_output_info_name primaryInfo)for x in 0 ..< theAtoms[]:varz = xcb_get_atom_name(conn, theAtoms[] + x)zr = xcb_get_atom_name_reply(conn, z, err0)#echo xcb_get_atom_name_name(zr) # print atom nameif xcb_get_atom_name_name(zr) == "EDID":varatom = xcb_intern_atom(conn, 0, 4, "EDID")atomRep = xcb_intern_atom_reply(conn, atom, err0)b1 = xcb_randr_get_output_property(conn, primary.output, atomRep.atom, XCB_ATOM_ANY.ord, 0, 100, 0, 0)a1 = xcb_randr_get_output_property_reply(conn, b1, err0)propData = xcb_randr_get_output_property_data(a1)var str = newString(a1.num_items)copyMem(str[0].addr, propData, a1.num_items)result.edid = strresult.name = str.findAll(re"(\w+ \w+)")[0]proc theMonitors*( conn: ptr xcb_connection_t, root: ptr xcb_screen_t, win: xcb_window_t) =#: seq[Monitor] =varsr = xcb_randr_get_screen_resources_current(conn, win)reply = xcb_randr_get_screen_resources_current_reply( conn, sr, nil)outs: ptr xcb_randr_output_t = xcb_randr_get_screen_resources_current_outputs replylenn = xcb_randr_get_screen_resources_current_outputs_length replyfor i in 0 ..< lenn:var outt = xcb_randr_get_output_info_reply( conn, xcb_randr_get_output_info(conn, (outs + i)[], reply.timestamp), nil)if not outt.isNil:vargetcrtc = xcb_randr_get_crtc_info( conn, outt.crtc, reply.timestamp)crtc = xcb_randr_get_crtc_info_reply( conn, getcrtc, err0)if not crtc[].addr.isNil:echo crtc[]# printf("x = %d | y = %d | w = %d | h = %d\n",# crtc.x, crtc.y, crtc.width, crtc.height)# Relays* = ref object# pos: WindowPosRelay# size: WindowSizeRelay# close: WindowCloseRelay# refresh: WindowRefreshRelay# focus: WindowFocusRelay# iconify: WindowIconifyRelay# maximize: WindowMaximizedRelay# fbsize: WindowFBSizeRelay# scale: WindowContentScaleRelay# mouseButton: MouseButtonRelay# cursorPos: MouseCursorPosRelay# cursorEnter: MouseCursorEnterRelay# scroll: MouseScrollRelay# key: KeyboardRelay# character: CharRelay# charmods: CharModsRelay# drop: WindowDropRelay# MonitorX11* = ref object# output*: RROutput# crtc*: RRCrtc# oldMode*: RRMode# index: int # Index of corresponding Xinerama screen, for EWMH full screen window placement# Monitor* = ref object# name: cstring #array[128,char]# userPointer: pointer# widthMM, heightMM: int # Physical dimensions in millimeters.# window: Window# The window whose video mode is current on this monitor# modes: seq[Vidmode]# modeCount: int# currentMode: Vidmode# originalRamp: Gammaramp# currentRamp: Gammaramp# platform: MonitorType #We're assuming x11 monitor until this is truly cross-plat# x11*: MonitorX11# const# xineramaLib = "libXinerama.so"# Rotate0* = 1# Rotate90* = 2# Rotate180* = 4# Rotate270* = 8# ReflectX* = 16# ReflectY* = 32# type# PXineramaScreenInfo* = ptr XineramaScreenInfo# XineramaScreenInfo*{.final.} = object# screen_number*: cint# x_org*: int16# y_org*: int16# width*: int16# height*: int16# proc XineramaQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): bool{.cdecl, importc.}# proc XineramaQueryVersion*(dpy: PDisplay, major: Pcint, minor: Pcint): int #[Status]# {.cdecl, importc.}# proc XineramaIsActive*(dpy: PDisplay): bool{.cdecl, dynlib: xineramaLib, importc.}# proc XineramaQueryScreens*(dpy: PDisplay, number: Pcint): PXineramaScreenInfo{.cdecl, importc.}# proc XRRGetOutputPrimary*(dpy: ptr Display, window: Window): RROutput {.cdecl, importc.}# proc thePrimary*( p: PDisplay# , w: Window# ) =# var# t = p.XRRGetScreenResourcesCurrent w# primary = p.XRRGetOutputPrimary w# echo repr primaryproc pollMonitors*() = discard
{.deadCodeElim: on.}when defined linux:import ../platforms/unix/x11/[x, xlib, xcb, xkb, xkblib, xkbCommon, keysyms]#, platforms/unix/x11/[xkblib, xlib, xkb, ]from os import getEnvtypeKey* {.pure.} = enumA = 0BCDEFGHIJKLMNOPQRSTUVWYXZK1K2K3K4K5K6K7K8K9K0SpaceTabUpDownLeftRightF1F2F3F4F5F6F7F8F9F10F11F12LSuperRSuperLCtrlRCtrlLShiftRShiftLAltRAltMinusEqualsBackSpaceLBracketRBracketEnterSemiColonAposTildeBSlashCommaPeriodFSlashCapsEscNPMultNumLockScrlNP7NP8NP9NPMinNP4NP5NP6NPAddNP1NP2NP3NP0NPDeciNPEnterNPDivPrntHomePgUpEndPgDownInsDelPauseMenuNPEqualsKeyState* {.pure.} = enum Up Down Held ScrolledUp ScrolledDownKey_Action* {.pure.} = enum Release PressAKeyObj = object of RootObjkey*: Keystate*: KeyStatewhen defined linux:keySym*: KeySym#scanCode: int#name: stringA_Key* = ref object of AKeyObjvarkeys*: array[105, A_Key] = [ A_Key( key: A, state: KeyState.Up), A_Key( key: B, state: KeyState.Up), A_Key( key: C, state: KeyState.Up), A_Key( key: D, state: KeyState.Up), A_Key( key: E, state: KeyState.Up), A_Key( key: Key.F, state: KeyState.Up), A_Key( key: G, state: KeyState.Up), A_Key( key: H, state: KeyState.Up), A_Key( key: I, state: KeyState.Up), A_Key( key: J, state: KeyState.Up), A_Key( key: K, state: KeyState.Up), A_Key( key: L, state: KeyState.Up), A_Key( key: M, state: KeyState.Up), A_Key( key: N, state: KeyState.Up), A_Key( key: O, state: KeyState.Up), A_Key( key: P, state: KeyState.Up), A_Key( key: Q, state: KeyState.Up), A_Key( key: R, state: KeyState.Up), A_Key( key: S, state: KeyState.Up), A_Key( key: T, state: KeyState.Up), A_Key( key: U, state: KeyState.Up), A_Key( key: V, state: KeyState.Up), A_Key( key: W, state: KeyState.Up), A_Key( key: Y, state: KeyState.Up), A_Key( key: X, state: KeyState.Up), A_Key( key: Z, state: KeyState.Up), A_Key( key: K1, state: KeyState.Up), A_Key( key: K2, state: KeyState.Up), A_Key( key: K3, state: KeyState.Up), A_Key( key: K4, state: KeyState.Up), A_Key( key: K5, state: KeyState.Up), A_Key( key: K6, state: KeyState.Up), A_Key( key: K7, state: KeyState.Up), A_Key( key: K8, state: KeyState.Up), A_Key( key: K9, state: KeyState.Up), A_Key( key: K0, state: KeyState.Up), A_Key( key: Space, state: KeyState.Up), A_Key( key: Tab, state: KeyState.Up), A_Key( key: Key.Up, state: KeyState.Up), A_Key( key: Key.Down, state: KeyState.Up), A_Key( key: Left, state: KeyState.Up), A_Key( key: Right, state: KeyState.Up), A_Key( key: F1, state: KeyState.Up), A_Key( key: F2, state: KeyState.Up), A_Key( key: F3, state: KeyState.Up), A_Key( key: F4, state: KeyState.Up), A_Key( key: F5, state: KeyState.Up), A_Key( key: F6, state: KeyState.Up), A_Key( key: F7, state: KeyState.Up), A_Key( key: F8, state: KeyState.Up), A_Key( key: F9, state: KeyState.Up), A_Key( key: F10, state: KeyState.Up), A_Key( key: F11, state: KeyState.Up), A_Key( key: F12, state: KeyState.Up), A_Key( key: LSuper, state: KeyState.Up), A_Key( key: RSuper, state: KeyState.Up), A_Key( key: LCtrl, state: KeyState.Up), A_Key( key: RCtrl, state: KeyState.Up), A_Key( key: LShift, state: KeyState.Up), A_Key( key: RShift, state: KeyState.Up), A_Key( key: LAlt, state: KeyState.Up), A_Key( key: RAlt, state: KeyState.Up), A_Key( key: Minus, state: KeyState.Up), A_Key( key: Equals, state: KeyState.Up), A_Key( key: BackSpace, state: KeyState.Up), A_Key( key: LBracket, state: KeyState.Up), A_Key( key: RBracket, state: KeyState.Up), A_Key( key: Enter, state: KeyState.Up), A_Key( key: SemiColon, state: KeyState.Up), A_Key( key: Apos, state: KeyState.Up), A_Key( key: Tilde, state: KeyState.Up), A_Key( key: BSlash, state: KeyState.Up), A_Key( key: Comma, state: KeyState.Up), A_Key( key: Period, state: KeyState.Up), A_Key( key: FSlash, state: KeyState.Up), A_Key( key: Caps, state: KeyState.Up), A_Key( key: Esc, state: KeyState.Up), A_Key( key: NPMult, state: KeyState.Up), A_Key( key: NumLock, state: KeyState.Up), A_Key( key: Scrl, state: KeyState.Up), A_Key( key: NP7, state: KeyState.Up), A_Key( key: NP8, state: KeyState.Up), A_Key( key: NP9, state: KeyState.Up), A_Key( key: NPMin, state: KeyState.Up), A_Key( key: NP4, state: KeyState.Up), A_Key( key: NP5, state: KeyState.Up), A_Key( key: NP6, state: KeyState.Up), A_Key( key: NPAdd, state: KeyState.Up), A_Key( key: NP1, state: KeyState.Up), A_Key( key: NP2, state: KeyState.Up), A_Key( key: NP3, state: KeyState.Up), A_Key( key: NP0, state: KeyState.Up), A_Key( key: NPDeci, state: KeyState.Up), A_Key( key: NPEnter, state: KeyState.Up), A_Key( key: NPDiv, state: KeyState.Up), A_Key( key: Prnt, state: KeyState.Up), A_Key( key: Home, state: KeyState.Up), A_Key( key: PgUp, state: KeyState.Up), A_Key( key: End, state: KeyState.Up), A_Key( key: PgDown, state: KeyState.Up), A_Key( key: Ins, state: KeyState.Up), A_Key( key: Del, state: KeyState.Up), A_Key( key: Pause, state: KeyState.Up), A_Key( key: Menu, state: KeyState.Up), A_Key( key: NPEquals, state: KeyState.Up)]proc state*(k: Key): KeyState = return keys[k.ord].statewhen defined linux:proc key_from_sym*(sym: KeySym): A_Key =case symof XK_aa: return keys[0]of XK_bb: return keys[1]of XK_cc: return keys[2]of XK_dd: return keys[3]of XK_ee: return keys[4]of XK_ff: return keys[5]of XK_gg: return keys[6]of XK_hh: return keys[7]of XK_ii: return keys[8]of XK_jj: return keys[9]of XK_kk: return keys[10]of XK_ll: return keys[11]of XK_mm: return keys[12]of XK_nn: return keys[13]of XK_oo: return keys[14]of XK_pp: return keys[15]of XK_qq: return keys[16]of XK_rr: return keys[17]of XK_ss: return keys[18]of XK_tt: return keys[19]of XK_uu: return keys[20]of XK_vv: return keys[21]of XK_ww: return keys[22]of XK_xx: return keys[23]of XK_yy: return keys[24]of XK_zz: return keys[25]of XK_1: return keys[26]of XK_2: return keys[27]of XK_3: return keys[28]of XK_4: return keys[29]of XK_5: return keys[30]of XK_6: return keys[31]of XK_7: return keys[32]of XK_8: return keys[33]of XK_9: return keys[34]of XK_0: return keys[35]of XK_space: return keys[36]of XK_Tab: return keys[37]of XK_Up: return keys[38]of XK_Down: return keys[39]of XK_Left: return keys[40]of XK_Right: return keys[41]of XK_F1: return keys[42]of XK_F2: return keys[43]of XK_F3: return keys[44]of XK_F4: return keys[45]of XK_F5: return keys[46]of XK_F6: return keys[47]of XK_F7: return keys[48]of XK_F8: return keys[49]of XK_F9: return keys[50]of XK_F10: return keys[51]of XK_F11: return keys[52]of XK_F12: return keys[53]of XK_Super_L: return keys[54]of XK_Super_R: return keys[55]of XK_Control_L: return keys[56]of XK_Control_R: return keys[57]of XK_Shift_L: return keys[58]of XK_Shift_R: return keys[59]of XK_Alt_L: return keys[60]of XK_Alt_R: return keys[61]of XK_minus: return keys[62]of XK_equal: return keys[63]of XK_BackSpace: return keys[64]of XK_bracketleft: return keys[65]of XK_bracketright: return keys[66]of XK_Return: return keys[67]of XK_semicolon: return keys[68]of XK_apostrophe: return keys[69]of XK_grave: return keys[70]of XK_backslash: return keys[71]of XK_comma: return keys[72]of XK_period: return keys[73]of XK_slash: return keys[74]of XK_Caps_Lock: return keys[75]of XK_Escape: return keys[76]#of XK_exclam:#of XK_quotedbl:#of XK_numbersign:#of XK_dollar:#of XK_percent:#of XK_ampersand:# of XK_apostrophe:# of XK_quoteright:# of XK_parenleft:# of XK_parenright:# of XK_asterisk:# of XK_plus:# of XK_comma:# of XK_minus:# of XK_period:# of XK_slash:# of XK_colon:# of XK_semicolon:# of XK_less:# of XK_equal:# of XK_greater:# of XK_question:# of XK_at:# of XK_A:# of XK_B:# of XK_C:# of XK_D:# of XK_E:# of XK_F:# of XK_G:# of XK_H:# of XK_I:# of XK_J:# of XK_K:# of XK_L:# of XK_M:# of XK_N:# of XK_O:# of XK_P:# of XK_Q:# of XK_R:# of XK_S:# of XK_T:# of XK_U:# of XK_V:# of XK_W:# of XK_X:# of XK_Y:# of XK_Z:# of XK_bracketleft:# of XK_backslash:# of XK_bracketright:# of XK_asciicircum:# of XK_underscore:# of XK_grave:# of XK_quoteleft:# of #:# of #:# of XK_braceleft:# of XK_bar:# of XK_braceright:# of XK_asciitilde:# of XK_nobreakspace:else: discardwhen defined linux:proc theLayoutName*( group: xkb_layout_index_t, xkbkm: ptr xkb_keymap): cstring =xkb_keymap_layout_get_name(xkbkm, xkb_layout_index_t group )proc theLocale*: string =when defined linux:# TODO: Better (more robust) way to get locale?if getEnv("LANG").len != 0:#echo "valid: LANG: ", getEnv("LANG")result = getEnv("LANG")elif getEnv("LC_ALL").len != 0:#echo "valid: LC_ALL"result = getEnv("LC_ALL")elif getEnv("LC_CTYPE").len != 0:#echo "valid: LC_CTYPE"result = getEnv("LC_CTYPE")else:result = "C"echo "WARNING: Couldn't find locale, falling back to 'C'"when defined linux:var #TODO: do we need the global pragmas?xkb_base_event* {.global.} : uint8xkb_base_error* {.global.} : uint8proc x11KeySymName*(ks: xcb_keysym_t): cstring =discard xkb_keysym_get_name(ks, result, sizeof(cstring).csize_t)resultproc loadComposeTable*( locale: string, xkbCompTable: var ptr xkb_compose_table, xkbContext: ptr xkb_context, xkbCompState: var ptr xkb_compose_state): bool =#xkb_compose_table_unref addr p.xkbCompTable#echo "Locale: ", localexkbCompTable = xkb_compose_table_new_from_locale(xkbContext, locale, xkb_compose_compile_flags 0)assert not xkbCompTable.isNilvar newCompState: ptr xkb_compose_state = xkb_compose_state_new(xkbCompTable, xkb_compose_state_flags 0)assert not newCompState.isNil#xkb_compose_state_unref addr p.xkbCompStatexkbCompState = newCompStatereturn trueproc loadKeyMap*( conn: ptr xcb_connection_t, xkbContext: var ptr xkb_context, xkbkm: var ptr xkb_keymap, xkbState: var ptr xkb_state, xkbNewState: var ptr xkb_state) =xkbContext = xkb_context_new xkb_context_flags 0assert not xkbContext.isNilxkb_keymap_unref xkbkmvar deviceID: int32 = xkb_x11_get_core_keyboard_device_id connxkbkm = xkb_x11_keymap_new_from_device( xkbContext, conn, deviceID, xkb_keymap_compile_flags 0)assert not xkbkm.isNilxkbNewState = xkb_x11_state_new_from_device(xkbkm, conn, deviceID)assert not xkbNewState.isNilxkb_state_unref xkbStatexkbState = xkbNewStateassert not xkbNewState.isNil#echo "DeviceID: ", deviceIDproc loadXKB*( dpy: PDisplay, conn: ptr xcb_connection_t# , group: var int8, firstXkbEvent: var uint8) =# keep ?# if XkbGetState(dpy, XkbUseCorekbd, addr state) == Success: group = state.group# discard XkbGetNames(dpy, XkbKeyNamesMask, desc)#discard XkbSetAutoRepeatRate(dpy, 1, 1, 1)# desc = XkbGetMap(dpy, 0, XkbUseCoreKbd)#kb: X11kbvarsupported: boolxkbDesc: ptr XkbDescRec = XkbAllocKeyboard()discard XAutoRepeatOn dpydiscard XkbSetDetectableAutoRepeat(dpy, true, addr supported)assert supporteddiscard XkbSelectEventDetails(dpy, XkbUseCorekbd, XkbStateNotify, XkbGroupStateMask, XkbGroupStateMask)assert xkb_x11_setup_xkb_extension( conn, uint16 1 #XKB_X11_MIN_MAJOR_XKB_VERSION, uint16 0 #XKB_X11_MIN_MINOR_XKB_VERSION, xkb_x11_setup_xkb_extension_flags 0, nil, nil, addr firstXkbEvent, nil) == 1discard XkbGetControls(dpy, XkbAllControlsMask, xkbDesc)discard XkbGetNames(dpy, XkbSymbolsNameMask, xkbDesc)discard XkbGetNames(dpy, XkbGroupNamesMask, xkbDesc)#echo xkbDesc.names.groupsconstrequired_map_parts: xcb_xkb_map_part_t =xcb_xkb_map_part_t XCB_XKB_MAP_PART_KEY_TYPES.ord orXCB_XKB_MAP_PART_KEY_SYMS.ord orXCB_XKB_MAP_PART_MODIFIER_MAP.ord orXCB_XKB_MAP_PART_EXPLICIT_COMPONENTS.ord orXCB_XKB_MAP_PART_KEY_ACTIONS.ord orXCB_XKB_MAP_PART_KEY_BEHAVIORS.ord orXCB_XKB_MAP_PART_VIRTUAL_MODS.ord orXCB_XKB_MAP_PART_VIRTUAL_MOD_MAP.ordrequired_events: xcb_xkb_event_type_t =xcb_xkb_event_type_t XCB_XKB_EVENT_TYPE_MAP_NOTIFY.ord orXCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY.ord orXCB_XKB_EVENT_TYPE_STATE_NOTIFY.orddiscard xcb_xkb_select_events( conn, xcb_xkb_device_spec_t xkb_x11_get_core_keyboard_device_id conn, uint16 required_events, 0, uint16 required_events, uint16 required_map_parts, uint16 required_map_parts, nil #cast[pointer](0))var#xkbs: ptr xkb_state#xkb_base_event: uint8xkberr: uint8xcbXKBRep = xcb_get_extension_data(conn, addr xcb_xkb_id)#echo xcbXKBRep.first_eventassert xkb_x11_setup_xkb_extension( conn, 1, 14, XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS, nil, nil, addr firstXkbEvent, addr xkberr) == 1assert not xcbXKBRep.isNilproc is_down*(key: Key): bool = return bool keys[ord key].state == KeyState.Downproc is_down_or_held*(key: Key): bool = return bool (keys[ord key].state == KeyState.Down or keys[ord key].state == KeyState.Held)proc isUp*(key: Key): bool = return bool keys[ord key].state == KeyState.Up# snippets to possibly use later#[var st = xkb_state_get_keymap(p.xkbNewState)var group: xkb_layout_index_t = xkb_state_serialize_layout(p.xkbNewState, XKB_STATE_LAYOUT_EFFECTIVE)echo groupecho xkb_keymap_num_layouts stecho xkb_keymap_num_layouts stecho xkb_keymap_num_layouts stfor grp in 0..xkb_keymap_num_layouts(st):echo xkb_state_layout_index_is_active( p.xkbNewState,xkb_layout_index_t group, XKB_STATE_LAYOUT_EFFECTIVE)echo xkb_state_layout_index_is_active( p.xkbNewState,xkb_layout_index_t group, XKB_STATE_LAYOUT_DEPRESSED)echo xkb_state_layout_index_is_active( p.xkbNewState,xkb_layout_index_t group, XKB_STATE_LAYOUT_LATCHED)echo xkb_state_layout_index_is_active( p.xkbNewState,xkb_layout_index_t group, XKB_STATE_LAYOUT_LOCKED)]#
#====================================================================## Winim - Nim's Windows API Module# (c) Copyright 2016-2022 Ward##===================================================================={.push hint[Name]: off.}when defined(nimHasUsed): {.used.}import winim/inc/winimbaseimport winim/inc/windefimport winim/inc/winbaseconstFACILITY_WIN32* = 7ERROR_SUCCESS* = 0ERROR_CANCELLED* = 1223E_UNEXPECTED* = HRESULT 0x8000FFFF'i32E_NOTIMPL* = HRESULT 0x80004001'i32E_NOINTERFACE* = HRESULT 0x80004002'i32E_POINTER* = HRESULT 0x80004003'i32E_FAIL* = HRESULT 0x80004005'i32template HRESULT_FROM_WIN32*(x: untyped): HRESULT = (if x <= 0: HRESULT x else: HRESULT(x and 0x0000ffff) or HRESULT(FACILITY_WIN32 shl 16) or HRESULT(0x80000000'i32))constS_OK* = HRESULT 0x00000000S_FALSE* = HRESULT 0x00000001DRAGDROP_S_DROP* = HRESULT 0x00040100DRAGDROP_S_CANCEL* = HRESULT 0x00040101DISP_E_MEMBERNOTFOUND* = HRESULT 0x80020003'i32DISP_E_UNKNOWNNAME* = HRESULT 0x80020006'i32TYPE_E_ELEMENTNOTFOUND* = HRESULT 0x8002802B'i32template SUCCEEDED*(hr: untyped): bool = hr.HRESULT >= 0template FAILED*(hr: untyped): bool = hr.HRESULT < 0typeBITMAP* {.pure.} = objectbmType*: LONGbmWidth*: LONGbmHeight*: LONGbmWidthBytes*: LONGbmPlanes*: WORDbmBitsPixel*: WORDbmBits*: LPVOIDRGBQUAD* {.pure.} = objectrgbBlue*: BYTErgbGreen*: BYTErgbRed*: BYTErgbReserved*: BYTEBITMAPINFOHEADER* {.pure.} = objectbiSize*: DWORDbiWidth*: LONGbiHeight*: LONGbiPlanes*: WORDbiBitCount*: WORDbiCompression*: DWORDbiSizeImage*: DWORDbiXPelsPerMeter*: LONGbiYPelsPerMeter*: LONGbiClrUsed*: DWORDbiClrImportant*: DWORDBITMAPINFO* {.pure.} = objectbmiHeader*: BITMAPINFOHEADERbmiColors*: array[1, RGBQUAD]TEXTMETRICA* {.pure.} = objecttmHeight*: LONGtmAscent*: LONGtmDescent*: LONGtmInternalLeading*: LONGtmExternalLeading*: LONGtmAveCharWidth*: LONGtmMaxCharWidth*: LONGtmWeight*: LONGtmOverhang*: LONGtmDigitizedAspectX*: LONGtmDigitizedAspectY*: LONGtmFirstChar*: BYTEtmLastChar*: BYTEtmDefaultChar*: BYTEtmBreakChar*: BYTEtmItalic*: BYTEtmUnderlined*: BYTEtmStruckOut*: BYTEtmPitchAndFamily*: BYTEtmCharSet*: BYTELPTEXTMETRICA* = ptr TEXTMETRICATEXTMETRICW* {.pure.} = objecttmHeight*: LONGtmAscent*: LONGtmDescent*: LONGtmInternalLeading*: LONGtmExternalLeading*: LONGtmAveCharWidth*: LONGtmMaxCharWidth*: LONGtmWeight*: LONGtmOverhang*: LONGtmDigitizedAspectX*: LONGtmDigitizedAspectY*: LONGtmFirstChar*: WCHARtmLastChar*: WCHARtmDefaultChar*: WCHARtmBreakChar*: WCHARtmItalic*: BYTEtmUnderlined*: BYTEtmStruckOut*: BYTEtmPitchAndFamily*: BYTEtmCharSet*: BYTELPTEXTMETRICW* = ptr TEXTMETRICWLOGBRUSH* {.pure.} = objectlbStyle*: UINTlbColor*: COLORREFlbHatch*: ULONG_PTREXTLOGPEN* {.pure.} = objectelpPenStyle*: DWORDelpWidth*: DWORDelpBrushStyle*: UINTelpColor*: COLORREFelpHatch*: ULONG_PTRelpNumEntries*: DWORDelpStyleEntry*: array[1, DWORD]PALETTEENTRY* {.pure.} = objectpeRed*: BYTEpeGreen*: BYTEpeBlue*: BYTEpeFlags*: BYTELOGPALETTE* {.pure.} = objectpalVersion*: WORDpalNumEntries*: WORDpalPalEntry*: array[1, PALETTEENTRY]constLF_FACESIZE* = 32typeLOGFONTA* {.pure.} = objectlfHeight*: LONGlfWidth*: LONGlfEscapement*: LONGlfOrientation*: LONGlfWeight*: LONGlfItalic*: BYTElfUnderline*: BYTElfStrikeOut*: BYTElfCharSet*: BYTElfOutPrecision*: BYTElfClipPrecision*: BYTElfQuality*: BYTElfPitchAndFamily*: BYTElfFaceName*: array[LF_FACESIZE, CHAR]LPLOGFONTA* = ptr LOGFONTALOGFONTW* {.pure.} = objectlfHeight*: LONGlfWidth*: LONGlfEscapement*: LONGlfOrientation*: LONGlfWeight*: LONGlfItalic*: BYTElfUnderline*: BYTElfStrikeOut*: BYTElfCharSet*: BYTElfOutPrecision*: BYTElfClipPrecision*: BYTElfQuality*: BYTElfPitchAndFamily*: BYTElfFaceName*: array[LF_FACESIZE, WCHAR]LPLOGFONTW* = ptr LOGFONTWconstCCHDEVICENAME* = 32typeDEVMODEA_UNION1_STRUCT1* {.pure.} = objectdmOrientation*: int16dmPaperSize*: int16dmPaperLength*: int16dmPaperWidth*: int16dmScale*: int16dmCopies*: int16dmDefaultSource*: int16dmPrintQuality*: int16DEVMODEA_UNION1_STRUCT2* {.pure.} = objectdmPosition*: POINTLdmDisplayOrientation*: DWORDdmDisplayFixedOutput*: DWORDDEVMODEA_UNION1* {.pure, union.} = objectstruct1*: DEVMODEA_UNION1_STRUCT1struct2*: DEVMODEA_UNION1_STRUCT2constCCHFORMNAME* = 32typeDEVMODEA_UNION2* {.pure, union.} = objectdmDisplayFlags*: DWORDdmNup*: DWORDDEVMODEA* {.pure.} = objectdmDeviceName*: array[CCHDEVICENAME, BYTE]dmSpecVersion*: WORDdmDriverVersion*: WORDdmSize*: WORDdmDriverExtra*: WORDdmFields*: DWORDunion1*: DEVMODEA_UNION1dmColor*: int16dmDuplex*: int16dmYResolution*: int16dmTTOption*: int16dmCollate*: int16dmFormName*: array[CCHFORMNAME, BYTE]dmLogPixels*: WORDdmBitsPerPel*: DWORDdmPelsWidth*: DWORDdmPelsHeight*: DWORDunion2*: DEVMODEA_UNION2dmDisplayFrequency*: DWORDdmICMMethod*: DWORDdmICMIntent*: DWORDdmMediaType*: DWORDdmDitherType*: DWORDdmReserved1*: DWORDdmReserved2*: DWORDdmPanningWidth*: DWORDdmPanningHeight*: DWORDPDEVMODEA* = ptr DEVMODEALPDEVMODEA* = ptr DEVMODEADEVMODEW_UNION1_STRUCT1* {.pure.} = objectdmOrientation*: int16dmPaperSize*: int16dmPaperLength*: int16dmPaperWidth*: int16dmScale*: int16dmCopies*: int16dmDefaultSource*: int16dmPrintQuality*: int16DEVMODEW_UNION1_STRUCT2* {.pure.} = objectdmPosition*: POINTLdmDisplayOrientation*: DWORDdmDisplayFixedOutput*: DWORDDEVMODEW_UNION1* {.pure, union.} = objectstruct1*: DEVMODEW_UNION1_STRUCT1struct2*: DEVMODEW_UNION1_STRUCT2DEVMODEW_UNION2* {.pure, union.} = objectdmDisplayFlags*: DWORDdmNup*: DWORDDEVMODEW* {.pure.} = objectdmDeviceName*: array[CCHDEVICENAME, WCHAR]dmSpecVersion*: WORDdmDriverVersion*: WORDdmSize*: WORDdmDriverExtra*: WORDdmFields*: DWORDunion1*: DEVMODEW_UNION1dmColor*: int16dmDuplex*: int16dmYResolution*: int16dmTTOption*: int16dmCollate*: int16dmFormName*: array[CCHFORMNAME, WCHAR]dmLogPixels*: WORDdmBitsPerPel*: DWORDdmPelsWidth*: DWORDdmPelsHeight*: DWORDunion2*: DEVMODEW_UNION2dmDisplayFrequency*: DWORDdmICMMethod*: DWORDdmICMIntent*: DWORDdmMediaType*: DWORDdmDitherType*: DWORDdmReserved1*: DWORDdmReserved2*: DWORDdmPanningWidth*: DWORDdmPanningHeight*: DWORDPDEVMODEW* = ptr DEVMODEWLPDEVMODEW* = ptr DEVMODEWBLENDFUNCTION* {.pure.} = objectBlendOp*: BYTEBlendFlags*: BYTESourceConstantAlpha*: BYTEAlphaFormat*: BYTEDIBSECTION* {.pure.} = objectdsBm*: BITMAPdsBmih*: BITMAPINFOHEADERdsBitfields*: array[3, DWORD]dshSection*: HANDLEdsOffset*: DWORDDOCINFOA* {.pure.} = objectcbSize*: int32lpszDocName*: LPCSTRlpszOutput*: LPCSTRlpszDatatype*: LPCSTRfwType*: DWORDDOCINFOW* {.pure.} = objectcbSize*: int32lpszDocName*: LPCWSTRlpszOutput*: LPCWSTRlpszDatatype*: LPCWSTRfwType*: DWORDconstR2_BLACK* = 1R2_NOTMERGEPEN* = 2R2_MASKNOTPEN* = 3R2_NOTCOPYPEN* = 4R2_MASKPENNOT* = 5R2_NOT* = 6R2_XORPEN* = 7R2_NOTMASKPEN* = 8R2_MASKPEN* = 9R2_NOTXORPEN* = 10R2_NOP* = 11R2_MERGENOTPEN* = 12R2_COPYPEN* = 13R2_MERGEPENNOT* = 14R2_MERGEPEN* = 15R2_WHITE* = 16SRCCOPY* = DWORD 0x00CC0020SRCPAINT* = DWORD 0x00EE0086SRCAND* = DWORD 0x008800C6SRCINVERT* = DWORD 0x00660046SRCERASE* = DWORD 0x00440328NOTSRCCOPY* = DWORD 0x00330008MERGECOPY* = DWORD 0x00C000CAMERGEPAINT* = DWORD 0x00BB0226DSTINVERT* = DWORD 0x00550009BLACKNESS* = DWORD 0x00000042WHITENESS* = DWORD 0x00FF0062ERROR* = 0RGN_AND* = 1RGN_OR* = 2RGN_XOR* = 3RGN_DIFF* = 4RGN_COPY* = 5HALFTONE* = 4ALTERNATE* = 1WINDING* = 2ETO_OPAQUE* = 0x0002abortDoc* = 2startDoc* = 10endDoc* = 11DEFAULT_PITCH* = 0ANSI_CHARSET* = 0DEFAULT_CHARSET* = 1SHIFTJIS_CHARSET* = 128HANGUL_CHARSET* = 129GB2312_CHARSET* = 134CHINESEBIG5_CHARSET* = 136OEM_CHARSET* = 255JOHAB_CHARSET* = 130HEBREW_CHARSET* = 177ARABIC_CHARSET* = 178GREEK_CHARSET* = 161VIETNAMESE_CHARSET* = 163THAI_CHARSET* = 222EASTEUROPE_CHARSET* = 238RUSSIAN_CHARSET* = 204BALTIC_CHARSET* = 186FF_DONTCARE* = 0 shl 4FF_ROMAN* = 1 shl 4FF_SWISS* = 2 shl 4FF_MODERN* = 3 shl 4FF_SCRIPT* = 4 shl 4FF_DECORATIVE* = 5 shl 4FW_THIN* = 100FW_EXTRALIGHT* = 200FW_LIGHT* = 300FW_NORMAL* = 400FW_MEDIUM* = 500FW_SEMIBOLD* = 600FW_BOLD* = 700FW_EXTRABOLD* = 800FW_HEAVY* = 900TRANSPARENT* = 1OPAQUE* = 2MM_TEXT* = 1MM_ANISOTROPIC* = 8DEFAULT_GUI_FONT* = 17BS_SOLID* = 0BS_NULL* = 1BS_HOLLOW* = BS_NULLBS_HATCHED* = 2HS_HORIZONTAL* = 0HS_VERTICAL* = 1HS_FDIAGONAL* = 2HS_BDIAGONAL* = 3HS_CROSS* = 4HS_DIAGCROSS* = 5PS_SOLID* = 0PS_DASH* = 1PS_DOT* = 2PS_DASHDOT* = 3PS_NULL* = 5PS_INSIDEFRAME* = 6PS_STYLE_MASK* = 0x0000000FPS_ENDCAP_ROUND* = 0x00000000PS_ENDCAP_SQUARE* = 0x00000100PS_ENDCAP_FLAT* = 0x00000200PS_ENDCAP_MASK* = 0x00000F00PS_JOIN_ROUND* = 0x00000000PS_JOIN_BEVEL* = 0x00001000PS_JOIN_MITER* = 0x00002000PS_JOIN_MASK* = 0x0000F000PS_GEOMETRIC* = 0x00010000HORZRES* = 8VERTRES* = 10BITSPIXEL* = 12PLANES* = 14LOGPIXELSX* = 88LOGPIXELSY* = 90PHYSICALWIDTH* = 110PHYSICALHEIGHT* = 111PHYSICALOFFSETX* = 112PHYSICALOFFSETY* = 113DM_ORIENTATION* = 0x00000001DM_PAPERSIZE* = 0x00000002DM_PAPERLENGTH* = 0x00000004DM_PAPERWIDTH* = 0x00000008DM_COPIES* = 0x00000100DM_COLOR* = 0x00000800DM_DUPLEX* = 0x00001000DMORIENT_PORTRAIT* = 1DMORIENT_LANDSCAPE* = 2DMPAPER_LETTER* = 1DMPAPER_LETTERSMALL* = 2DMPAPER_TABLOID* = 3DMPAPER_LEDGER* = 4DMPAPER_LEGAL* = 5DMPAPER_STATEMENT* = 6DMPAPER_EXECUTIVE* = 7DMPAPER_A3* = 8DMPAPER_A4* = 9DMPAPER_A4SMALL* = 10DMPAPER_A5* = 11DMPAPER_B4* = 12DMPAPER_B5* = 13DMPAPER_FOLIO* = 14DMPAPER_QUARTO* = 15DMPAPER_10X14* = 16DMPAPER_11X17* = 17DMPAPER_NOTE* = 18DMPAPER_ENV_9* = 19DMPAPER_ENV_10* = 20DMPAPER_ENV_11* = 21DMPAPER_ENV_12* = 22DMPAPER_ENV_14* = 23DMPAPER_CSHEET* = 24DMPAPER_DSHEET* = 25DMPAPER_ESHEET* = 26DMPAPER_ENV_DL* = 27DMPAPER_ENV_C5* = 28DMPAPER_ENV_C3* = 29DMPAPER_ENV_C4* = 30DMPAPER_ENV_C6* = 31DMPAPER_ENV_C65* = 32DMPAPER_ENV_B4* = 33DMPAPER_ENV_B5* = 34DMPAPER_ENV_B6* = 35DMPAPER_ENV_ITALY* = 36DMPAPER_ENV_MONARCH* = 37DMPAPER_ENV_PERSONAL* = 38DMPAPER_FANFOLD_US* = 39DMPAPER_FANFOLD_STD_GERMAN* = 40DMPAPER_FANFOLD_LGL_GERMAN* = 41DMPAPER_ISO_B4* = 42DMPAPER_JAPANESE_POSTCARD* = 43DMPAPER_9X11* = 44DMPAPER_10X11* = 45DMPAPER_15X11* = 46DMPAPER_ENV_INVITE* = 47DMPAPER_RESERVED_48* = 48DMPAPER_RESERVED_49* = 49DMPAPER_LETTER_EXTRA* = 50DMPAPER_LEGAL_EXTRA* = 51DMPAPER_TABLOID_EXTRA* = 52DMPAPER_A4_EXTRA* = 53DMPAPER_LETTER_TRANSVERSE* = 54DMPAPER_A4_TRANSVERSE* = 55DMPAPER_LETTER_EXTRA_TRANSVERSE* = 56DMPAPER_A_PLUS* = 57DMPAPER_B_PLUS* = 58DMPAPER_LETTER_PLUS* = 59DMPAPER_A4_PLUS* = 60DMPAPER_A5_TRANSVERSE* = 61DMPAPER_B5_TRANSVERSE* = 62DMPAPER_A3_EXTRA* = 63DMPAPER_A5_EXTRA* = 64DMPAPER_B5_EXTRA* = 65DMPAPER_A2* = 66DMPAPER_A3_TRANSVERSE* = 67DMPAPER_A3_EXTRA_TRANSVERSE* = 68DMPAPER_DBL_JAPANESE_POSTCARD* = 69DMPAPER_A6* = 70DMPAPER_JENV_KAKU2* = 71DMPAPER_JENV_KAKU3* = 72DMPAPER_JENV_CHOU3* = 73DMPAPER_JENV_CHOU4* = 74DMPAPER_LETTER_ROTATED* = 75DMPAPER_A3_ROTATED* = 76DMPAPER_A4_ROTATED* = 77DMPAPER_A5_ROTATED* = 78DMPAPER_B4_JIS_ROTATED* = 79DMPAPER_B5_JIS_ROTATED* = 80DMPAPER_JAPANESE_POSTCARD_ROTATED* = 81DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED* = 82DMPAPER_A6_ROTATED* = 83DMPAPER_JENV_KAKU2_ROTATED* = 84DMPAPER_JENV_KAKU3_ROTATED* = 85DMPAPER_JENV_CHOU3_ROTATED* = 86DMPAPER_JENV_CHOU4_ROTATED* = 87DMPAPER_B6_JIS* = 88DMPAPER_B6_JIS_ROTATED* = 89DMPAPER_12X11* = 90DMPAPER_JENV_YOU4* = 91DMPAPER_JENV_YOU4_ROTATED* = 92DMPAPER_P16K* = 93DMPAPER_P32K* = 94DMPAPER_P32KBIG* = 95DMPAPER_PENV_1* = 96DMPAPER_PENV_2* = 97DMPAPER_PENV_3* = 98DMPAPER_PENV_4* = 99DMPAPER_PENV_5* = 100DMPAPER_PENV_6* = 101DMPAPER_PENV_7* = 102DMPAPER_PENV_8* = 103DMPAPER_PENV_9* = 104DMPAPER_PENV_10* = 105DMPAPER_P16K_ROTATED* = 106DMPAPER_P32K_ROTATED* = 107DMPAPER_P32KBIG_ROTATED* = 108DMPAPER_PENV_1_ROTATED* = 109DMPAPER_PENV_2_ROTATED* = 110DMPAPER_PENV_3_ROTATED* = 111DMPAPER_PENV_4_ROTATED* = 112DMPAPER_PENV_5_ROTATED* = 113DMPAPER_PENV_6_ROTATED* = 114DMPAPER_PENV_7_ROTATED* = 115DMPAPER_PENV_8_ROTATED* = 116DMPAPER_PENV_9_ROTATED* = 117DMPAPER_PENV_10_ROTATED* = 118DMPAPER_USER* = 256DMCOLOR_MONOCHROME* = 1DMCOLOR_COLOR* = 2DMDUP_SIMPLEX* = 1DMDUP_VERTICAL* = 2DMDUP_HORIZONTAL* = 3DMCOLLATE_FALSE* = 0AC_SRC_OVER* = 0x00AC_SRC_ALPHA* = 0x01when winimUnicode:typeLPDEVMODE* = LPDEVMODEWwhen winimAnsi:typeLPDEVMODE* = LPDEVMODEAproc Arc*(hdc: HDC, x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, x4: int32, y4: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc BitBlt*(hdc: HDC, x: int32, y: int32, cx: int32, cy: int32, hdcSrc: HDC, x1: int32, y1: int32, rop: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc CombineRgn*(hrgnDst: HRGN, hrgnSrc1: HRGN, hrgnSrc2: HRGN, iMode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateBitmap*(nWidth: int32, nHeight: int32, nPlanes: UINT, nBitCount: UINT, lpBits: pointer): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateBrushIndirect*(plbrush: ptr LOGBRUSH): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateCompatibleBitmap*(hdc: HDC, cx: int32, cy: int32): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateCompatibleDC*(hdc: HDC): HDC {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateEllipticRgn*(x1: int32, y1: int32, x2: int32, y2: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateHatchBrush*(iHatch: int32, color: COLORREF): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateRectRgn*(x1: int32, y1: int32, x2: int32, y2: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.}proc CreateRoundRectRgn*(x1: int32, y1: int32, x2: int32, y2: int32, w: int32, h: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.}proc DeleteDC*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc DeleteObject*(ho: HGDIOBJ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc Ellipse*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc EqualRgn*(hrgn1: HRGN, hrgn2: HRGN): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc FrameRgn*(hdc: HDC, hrgn: HRGN, hbr: HBRUSH, w: int32, h: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetROP2*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetBkColor*(hdc: HDC): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetBkMode*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetDeviceCaps*(hdc: HDC, index: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetObjectType*(h: HGDIOBJ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetPixel*(hdc: HDC, x: int32, y: int32): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetRgnBox*(hrgn: HRGN, lprc: LPRECT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetStockObject*(i: int32): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetTextColor*(hdc: HDC): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.}proc GetViewportOrgEx*(hdc: HDC, lppoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc LineTo*(hdc: HDC, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc OffsetRgn*(hrgn: HRGN, x: int32, y: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc Pie*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32, xr1: int32, yr1: int32, xr2: int32, yr2: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc PaintRgn*(hdc: HDC, hrgn: HRGN): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc PolyPolygon*(hdc: HDC, apt: ptr POINT, asz: ptr INT, csz: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc PtInRegion*(hrgn: HRGN, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc RectInRegion*(hrgn: HRGN, lprect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc Rectangle*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc RoundRect*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32, width: int32, height: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc SelectClipRgn*(hdc: HDC, hrgn: HRGN): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc SelectObject*(hdc: HDC, h: HGDIOBJ): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetBkColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetBkMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetBitmapBits*(hbm: HBITMAP, cb: DWORD, pvBits: pointer): LONG {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetMapMode*(hdc: HDC, iMode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetPixel*(hdc: HDC, x: int32, y: int32, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetPolyFillMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc StretchBlt*(hdcDest: HDC, xDest: int32, yDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xSrc: int32, ySrc: int32, wSrc: int32, hSrc: int32, rop: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetROP2*(hdc: HDC, rop2: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetStretchBltMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetTextColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.}proc AlphaBlend*(hdcDest: HDC, xoriginDest: int32, yoriginDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xoriginSrc: int32, yoriginSrc: int32, wSrc: int32, hSrc: int32, ftn: BLENDFUNCTION): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.}proc TransparentBlt*(hdcDest: HDC, xoriginDest: int32, yoriginDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xoriginSrc: int32, yoriginSrc: int32, wSrc: int32, hSrc: int32, crTransparent: UINT): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.}proc CreateDIBSection*(hdc: HDC, lpbmi: ptr BITMAPINFO, usage: UINT, ppvBits: ptr pointer, hSection: HANDLE, offset: DWORD): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.}proc EndDoc*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc StartPage*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc EndPage*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc AbortDoc*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.}proc ExtCreatePen*(iPenStyle: DWORD, cWidth: DWORD, plbrush: ptr LOGBRUSH, cStyle: DWORD, pstyle: ptr DWORD): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.}proc MoveToEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc Polygon*(hdc: HDC, apt: ptr POINT, cpt: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc Polyline*(hdc: HDC, apt: ptr POINT, cpt: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc PolyBezier*(hdc: HDC, apt: ptr POINT, cpt: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetViewportExtEx*(hdc: HDC, x: int32, y: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetViewportOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetWindowExtEx*(hdc: HDC, x: int32, y: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}proc SetBrushOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.}template RGB*(r: untyped, g: untyped, b: untyped): COLORREF = COLORREF(COLORREF(r and 0xff) or (COLORREF(g and 0xff) shl 8) or (COLORREF(b and 0xff) shl 16))template GetRValue*(c: untyped): BYTE = BYTE((c) and 0xff)template GetGValue*(c: untyped): BYTE = BYTE((c shr 8) and 0xff)template GetBValue*(c: untyped): BYTE = BYTE((c shr 16) and 0xff)proc `dmOrientation=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmOrientation = xproc dmOrientation*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmOrientationproc dmOrientation*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmOrientationproc `dmPaperSize=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPaperSize = xproc dmPaperSize*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPaperSizeproc dmPaperSize*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPaperSizeproc `dmPaperLength=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPaperLength = xproc dmPaperLength*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPaperLengthproc dmPaperLength*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPaperLengthproc `dmPaperWidth=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPaperWidth = xproc dmPaperWidth*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPaperWidthproc dmPaperWidth*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPaperWidthproc `dmScale=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmScale = xproc dmScale*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmScaleproc dmScale*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmScaleproc `dmCopies=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmCopies = xproc dmCopies*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmCopiesproc dmCopies*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmCopiesproc `dmDefaultSource=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmDefaultSource = xproc dmDefaultSource*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmDefaultSourceproc dmDefaultSource*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmDefaultSourceproc `dmPrintQuality=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPrintQuality = xproc dmPrintQuality*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPrintQualityproc dmPrintQuality*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPrintQualityproc `dmPosition=`*(self: var DEVMODEA, x: POINTL) {.inline.} = self.union1.struct2.dmPosition = xproc dmPosition*(self: DEVMODEA): POINTL {.inline.} = self.union1.struct2.dmPositionproc dmPosition*(self: var DEVMODEA): var POINTL {.inline.} = self.union1.struct2.dmPositionproc `dmDisplayOrientation=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayOrientation = xproc dmDisplayOrientation*(self: DEVMODEA): DWORD {.inline.} = self.union1.struct2.dmDisplayOrientationproc dmDisplayOrientation*(self: var DEVMODEA): var DWORD {.inline.} = self.union1.struct2.dmDisplayOrientationproc `dmDisplayFixedOutput=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayFixedOutput = xproc dmDisplayFixedOutput*(self: DEVMODEA): DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutputproc dmDisplayFixedOutput*(self: var DEVMODEA): var DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutputproc `dmDisplayFlags=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union2.dmDisplayFlags = xproc dmDisplayFlags*(self: DEVMODEA): DWORD {.inline.} = self.union2.dmDisplayFlagsproc dmDisplayFlags*(self: var DEVMODEA): var DWORD {.inline.} = self.union2.dmDisplayFlagsproc `dmNup=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union2.dmNup = xproc dmNup*(self: DEVMODEA): DWORD {.inline.} = self.union2.dmNupproc dmNup*(self: var DEVMODEA): var DWORD {.inline.} = self.union2.dmNupproc `dmOrientation=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmOrientation = xproc dmOrientation*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmOrientationproc dmOrientation*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmOrientationproc `dmPaperSize=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPaperSize = xproc dmPaperSize*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPaperSizeproc dmPaperSize*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPaperSizeproc `dmPaperLength=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPaperLength = xproc dmPaperLength*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPaperLengthproc dmPaperLength*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPaperLengthproc `dmPaperWidth=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPaperWidth = xproc dmPaperWidth*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPaperWidthproc dmPaperWidth*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPaperWidthproc `dmScale=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmScale = xproc dmScale*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmScaleproc dmScale*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmScaleproc `dmCopies=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmCopies = xproc dmCopies*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmCopiesproc dmCopies*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmCopiesproc `dmDefaultSource=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmDefaultSource = xproc dmDefaultSource*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmDefaultSourceproc dmDefaultSource*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmDefaultSourceproc `dmPrintQuality=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPrintQuality = xproc dmPrintQuality*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPrintQualityproc dmPrintQuality*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPrintQualityproc `dmPosition=`*(self: var DEVMODEW, x: POINTL) {.inline.} = self.union1.struct2.dmPosition = xproc dmPosition*(self: DEVMODEW): POINTL {.inline.} = self.union1.struct2.dmPositionproc dmPosition*(self: var DEVMODEW): var POINTL {.inline.} = self.union1.struct2.dmPositionproc `dmDisplayOrientation=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayOrientation = xproc dmDisplayOrientation*(self: DEVMODEW): DWORD {.inline.} = self.union1.struct2.dmDisplayOrientationproc dmDisplayOrientation*(self: var DEVMODEW): var DWORD {.inline.} = self.union1.struct2.dmDisplayOrientationproc `dmDisplayFixedOutput=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayFixedOutput = xproc dmDisplayFixedOutput*(self: DEVMODEW): DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutputproc dmDisplayFixedOutput*(self: var DEVMODEW): var DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutputproc `dmDisplayFlags=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union2.dmDisplayFlags = xproc dmDisplayFlags*(self: DEVMODEW): DWORD {.inline.} = self.union2.dmDisplayFlagsproc dmDisplayFlags*(self: var DEVMODEW): var DWORD {.inline.} = self.union2.dmDisplayFlagsproc `dmNup=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union2.dmNup = xproc dmNup*(self: DEVMODEW): DWORD {.inline.} = self.union2.dmNupproc dmNup*(self: var DEVMODEW): var DWORD {.inline.} = self.union2.dmNupwhen winimUnicode:typeTEXTMETRIC* = TEXTMETRICWLOGFONT* = LOGFONTWDEVMODE* = DEVMODEWDOCINFO* = DOCINFOWproc CreateDC*(pwszDriver: LPCWSTR, pwszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateDCW".}proc CreateFontIndirect*(lplf: ptr LOGFONTW): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectW".}proc DeviceCapabilities*(pDevice: LPCWSTR, pPort: LPCWSTR, fwCapability: WORD, pOutput: LPWSTR, pDevMode: ptr DEVMODEW): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeviceCapabilitiesW".}proc GetCharWidth*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthW".}proc GetTextExtentPoint32*(hdc: HDC, lpString: LPCWSTR, c: int32, psizl: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPoint32W".}proc GetTextMetrics*(hdc: HDC, lptm: LPTEXTMETRICW): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextMetricsW".}proc StartDoc*(hdc: HDC, lpdi: ptr DOCINFOW): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "StartDocW".}proc GetObject*(h: HANDLE, c: int32, pv: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetObjectW".}proc TextOut*(hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "TextOutW".}proc ExtTextOut*(hdc: HDC, x: int32, y: int32, options: UINT, lprect: ptr RECT, lpString: LPCWSTR, c: UINT, lpDx: ptr INT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "ExtTextOutW".}when winimAnsi:typeTEXTMETRIC* = TEXTMETRICALOGFONT* = LOGFONTADEVMODE* = DEVMODEADOCINFO* = DOCINFOAproc CreateDC*(pwszDriver: LPCSTR, pwszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateDCA".}proc CreateFontIndirect*(lplf: ptr LOGFONTA): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectA".}proc DeviceCapabilities*(pDevice: LPCSTR, pPort: LPCSTR, fwCapability: WORD, pOutput: LPSTR, pDevMode: ptr DEVMODEA): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeviceCapabilitiesA".}proc GetCharWidth*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthA".}proc GetTextExtentPoint32*(hdc: HDC, lpString: LPCSTR, c: int32, psizl: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPoint32A".}proc GetTextMetrics*(hdc: HDC, lptm: LPTEXTMETRICA): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextMetricsA".}proc StartDoc*(hdc: HDC, lpdi: ptr DOCINFOA): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "StartDocA".}proc GetObject*(h: HANDLE, c: int32, pv: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetObjectA".}proc TextOut*(hdc: HDC, x: int32, y: int32, lpString: LPCSTR, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "TextOutA".}proc ExtTextOut*(hdc: HDC, x: int32, y: int32, options: UINT, lprect: ptr RECT, lpString: LPCSTR, c: UINT, lpDx: ptr INT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "ExtTextOutA".}typeCREATESTRUCTA* {.pure.} = objectlpCreateParams*: LPVOIDhInstance*: HINSTANCEhMenu*: HMENUhwndParent*: HWNDcy*: int32cx*: int32y*: int32x*: int32style*: LONGlpszName*: LPCSTRlpszClass*: LPCSTRdwExStyle*: DWORDCREATESTRUCTW* {.pure.} = objectlpCreateParams*: LPVOIDhInstance*: HINSTANCEhMenu*: HMENUhwndParent*: HWNDcy*: int32cx*: int32y*: int32x*: int32style*: LONGlpszName*: LPCWSTRlpszClass*: LPCWSTRdwExStyle*: DWORDKBDLLHOOKSTRUCT* {.pure.} = objectvkCode*: DWORDscanCode*: DWORDflags*: DWORDtime*: DWORDdwExtraInfo*: ULONG_PTRLPKBDLLHOOKSTRUCT* = ptr KBDLLHOOKSTRUCTWNDPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): LRESULT {.stdcall.}WNDCLASSEXA* {.pure.} = objectcbSize*: UINTstyle*: UINTlpfnWndProc*: WNDPROCcbClsExtra*: int32cbWndExtra*: int32hInstance*: HINSTANCEhIcon*: HICONhCursor*: HCURSORhbrBackground*: HBRUSHlpszMenuName*: LPCSTRlpszClassName*: LPCSTRhIconSm*: HICONWNDCLASSEXW* {.pure.} = objectcbSize*: UINTstyle*: UINTlpfnWndProc*: WNDPROCcbClsExtra*: int32cbWndExtra*: int32hInstance*: HINSTANCEhIcon*: HICONhCursor*: HCURSORhbrBackground*: HBRUSHlpszMenuName*: LPCWSTRlpszClassName*: LPCWSTRhIconSm*: HICONWNDCLASSA* {.pure.} = objectstyle*: UINTlpfnWndProc*: WNDPROCcbClsExtra*: int32cbWndExtra*: int32hInstance*: HINSTANCEhIcon*: HICONhCursor*: HCURSORhbrBackground*: HBRUSHlpszMenuName*: LPCSTRlpszClassName*: LPCSTRLPWNDCLASSA* = ptr WNDCLASSAWNDCLASSW* {.pure.} = objectstyle*: UINTlpfnWndProc*: WNDPROCcbClsExtra*: int32cbWndExtra*: int32hInstance*: HINSTANCEhIcon*: HICONhCursor*: HCURSORhbrBackground*: HBRUSHlpszMenuName*: LPCWSTRlpszClassName*: LPCWSTRLPWNDCLASSW* = ptr WNDCLASSWMSG* {.pure.} = objecthwnd*: HWNDmessage*: UINTwParam*: WPARAMlParam*: LPARAMtime*: DWORDpt*: POINTLPMSG* = ptr MSGMINMAXINFO* {.pure.} = objectptReserved*: POINTptMaxSize*: POINTptMaxPosition*: POINTptMinTrackSize*: POINTptMaxTrackSize*: POINTPMINMAXINFO* = ptr MINMAXINFOWINDOWPOS* {.pure.} = objecthwnd*: HWNDhwndInsertAfter*: HWNDx*: int32y*: int32cx*: int32cy*: int32flags*: UINTLPWINDOWPOS* = ptr WINDOWPOSTTRACKMOUSEEVENT* {.pure.} = objectcbSize*: DWORDdwFlags*: DWORDhwndTrack*: HWNDdwHoverTime*: DWORDLPTRACKMOUSEEVENT* = ptr TTRACKMOUSEEVENTACCEL* {.pure.} = objectfVirt*: BYTEkey*: WORDcmd*: WORDLPACCEL* = ptr ACCELPAINTSTRUCT* {.pure.} = objecthdc*: HDCfErase*: WINBOOLrcPaint*: RECTfRestore*: WINBOOLfIncUpdate*: WINBOOLrgbReserved*: array[32, BYTE]LPPAINTSTRUCT* = ptr PAINTSTRUCTNMHDR* {.pure.} = objecthwndFrom*: HWNDidFrom*: UINT_PTRcode*: UINTLPNMHDR* = ptr NMHDRMEASUREITEMSTRUCT* {.pure.} = objectCtlType*: UINTCtlID*: UINTitemID*: UINTitemWidth*: UINTitemHeight*: UINTitemData*: ULONG_PTRLPMEASUREITEMSTRUCT* = ptr MEASUREITEMSTRUCTDRAWITEMSTRUCT* {.pure.} = objectCtlType*: UINTCtlID*: UINTitemID*: UINTitemAction*: UINTitemState*: UINThwndItem*: HWNDhDC*: HDCrcItem*: RECTitemData*: ULONG_PTRLPDRAWITEMSTRUCT* = ptr DRAWITEMSTRUCTMENUINFO* {.pure.} = objectcbSize*: DWORDfMask*: DWORDdwStyle*: DWORDcyMax*: UINThbrBack*: HBRUSHdwContextHelpID*: DWORDdwMenuData*: ULONG_PTRLPMENUINFO* = ptr MENUINFOTPMPARAMS* {.pure.} = objectcbSize*: UINTrcExclude*: RECTLPTPMPARAMS* = ptr TPMPARAMSLPCMENUINFO* = ptr MENUINFOMENUITEMINFOA* {.pure.} = objectcbSize*: UINTfMask*: UINTfType*: UINTfState*: UINTwID*: UINThSubMenu*: HMENUhbmpChecked*: HBITMAPhbmpUnchecked*: HBITMAPdwItemData*: ULONG_PTRdwTypeData*: LPSTRcch*: UINThbmpItem*: HBITMAPLPMENUITEMINFOA* = ptr MENUITEMINFOAMENUITEMINFOW* {.pure.} = objectcbSize*: UINTfMask*: UINTfType*: UINTfState*: UINTwID*: UINThSubMenu*: HMENUhbmpChecked*: HBITMAPhbmpUnchecked*: HBITMAPdwItemData*: ULONG_PTRdwTypeData*: LPWSTRcch*: UINThbmpItem*: HBITMAPLPMENUITEMINFOW* = ptr MENUITEMINFOWLPCMENUITEMINFOA* = ptr MENUITEMINFOALPCMENUITEMINFOW* = ptr MENUITEMINFOWICONINFO* {.pure.} = objectfIcon*: WINBOOLxHotspot*: DWORDyHotspot*: DWORDhbmMask*: HBITMAPhbmColor*: HBITMAPPICONINFO* = ptr ICONINFOSCROLLINFO* {.pure.} = objectcbSize*: UINTfMask*: UINTnMin*: int32nMax*: int32nPage*: UINTnPos*: int32nTrackPos*: int32LPSCROLLINFO* = ptr SCROLLINFOLPCSCROLLINFO* = ptr SCROLLINFONONCLIENTMETRICSA* {.pure.} = objectcbSize*: UINTiBorderWidth*: int32iScrollWidth*: int32iScrollHeight*: int32iCaptionWidth*: int32iCaptionHeight*: int32lfCaptionFont*: LOGFONTAiSmCaptionWidth*: int32iSmCaptionHeight*: int32lfSmCaptionFont*: LOGFONTAiMenuWidth*: int32iMenuHeight*: int32lfMenuFont*: LOGFONTAlfStatusFont*: LOGFONTAlfMessageFont*: LOGFONTAiPaddedBorderWidth*: int32NONCLIENTMETRICSW* {.pure.} = objectcbSize*: UINTiBorderWidth*: int32iScrollWidth*: int32iScrollHeight*: int32iCaptionWidth*: int32iCaptionHeight*: int32lfCaptionFont*: LOGFONTWiSmCaptionWidth*: int32iSmCaptionHeight*: int32lfSmCaptionFont*: LOGFONTWiMenuWidth*: int32iMenuHeight*: int32lfMenuFont*: LOGFONTWlfStatusFont*: LOGFONTWlfMessageFont*: LOGFONTWiPaddedBorderWidth*: int32constCCHILDREN_SCROLLBAR* = 5typeSCROLLBARINFO* {.pure.} = objectcbSize*: DWORDrcScrollBar*: RECTdxyLineButton*: int32xyThumbTop*: int32xyThumbBottom*: int32reserved*: int32rgstate*: array[CCHILDREN_SCROLLBAR + 1, DWORD]PSCROLLBARINFO* = ptr SCROLLBARINFOCOMBOBOXINFO* {.pure.} = objectcbSize*: DWORDrcItem*: RECTrcButton*: RECTstateButton*: DWORDhwndCombo*: HWNDhwndItem*: HWNDhwndList*: HWNDPCOMBOBOXINFO* = ptr COMBOBOXINFOtemplate MAKEINTRESOURCE*(i: untyped): untyped = cast[LPTSTR](i and 0xffff)constRT_CURSOR* = MAKEINTRESOURCE(1)RT_ICON* = MAKEINTRESOURCE(3)DIFFERENCE* = 11SB_HORZ* = 0SB_VERT* = 1SB_CTL* = 2SB_LINEUP* = 0SB_LINEDOWN* = 1SB_PAGEUP* = 2SB_PAGEDOWN* = 3SB_THUMBPOSITION* = 4SB_THUMBTRACK* = 5SB_TOP* = 6SB_BOTTOM* = 7SB_ENDSCROLL* = 8SW_HIDE* = 0SW_SHOWNORMAL* = 1SW_SHOWMINIMIZED* = 2SW_SHOWMAXIMIZED* = 3SW_MAXIMIZE* = 3SW_SHOWNOACTIVATE* = 4SW_SHOW* = 5SW_MINIMIZE* = 6SW_SHOWMINNOACTIVE* = 7SW_SHOWNA* = 8SW_RESTORE* = 9SW_SHOWDEFAULT* = 10SW_FORCEMINIMIZE* = 11VK_LBUTTON* = 0x01VK_RBUTTON* = 0x02VK_CANCEL* = 0x03VK_MBUTTON* = 0x04VK_XBUTTON1* = 0x05VK_XBUTTON2* = 0x06VK_BACK* = 0x08VK_TAB* = 0x09VK_CLEAR* = 0x0CVK_RETURN* = 0x0DVK_SHIFT* = 0x10VK_CONTROL* = 0x11VK_MENU* = 0x12VK_PAUSE* = 0x13VK_CAPITAL* = 0x14VK_KANA* = 0x15VK_HANGEUL* = 0x15VK_HANGUL* = 0x15VK_JUNJA* = 0x17VK_FINAL* = 0x18VK_HANJA* = 0x19VK_KANJI* = 0x19VK_ESCAPE* = 0x1BVK_CONVERT* = 0x1CVK_NONCONVERT* = 0x1DVK_ACCEPT* = 0x1EVK_MODECHANGE* = 0x1FVK_SPACE* = 0x20VK_PRIOR* = 0x21VK_NEXT* = 0x22VK_END* = 0x23VK_HOME* = 0x24VK_LEFT* = 0x25VK_UP* = 0x26VK_RIGHT* = 0x27VK_DOWN* = 0x28VK_SELECT* = 0x29VK_PRINT* = 0x2AVK_EXECUTE* = 0x2BVK_SNAPSHOT* = 0x2CVK_INSERT* = 0x2DVK_DELETE* = 0x2EVK_HELP* = 0x2FVK_LWIN* = 0x5BVK_RWIN* = 0x5CVK_APPS* = 0x5DVK_SLEEP* = 0x5FVK_NUMPAD0* = 0x60VK_NUMPAD1* = 0x61VK_NUMPAD2* = 0x62VK_NUMPAD3* = 0x63VK_NUMPAD4* = 0x64VK_NUMPAD5* = 0x65VK_NUMPAD6* = 0x66VK_NUMPAD7* = 0x67VK_NUMPAD8* = 0x68VK_NUMPAD9* = 0x69VK_MULTIPLY* = 0x6AVK_ADD* = 0x6BVK_SEPARATOR* = 0x6CVK_SUBTRACT* = 0x6DVK_DECIMAL* = 0x6EVK_DIVIDE* = 0x6FVK_F1* = 0x70VK_F2* = 0x71VK_F3* = 0x72VK_F4* = 0x73VK_F5* = 0x74VK_F6* = 0x75VK_F7* = 0x76VK_F8* = 0x77VK_F9* = 0x78VK_F10* = 0x79VK_F11* = 0x7AVK_F12* = 0x7BVK_F13* = 0x7CVK_F14* = 0x7DVK_F15* = 0x7EVK_F16* = 0x7FVK_F17* = 0x80VK_F18* = 0x81VK_F19* = 0x82VK_F20* = 0x83VK_F21* = 0x84VK_F22* = 0x85VK_F23* = 0x86VK_F24* = 0x87VK_NUMLOCK* = 0x90VK_SCROLL* = 0x91VK_OEM_NEC_EQUAL* = 0x92VK_OEM_FJ_JISHO* = 0x92VK_OEM_FJ_MASSHOU* = 0x93VK_OEM_FJ_TOUROKU* = 0x94VK_OEM_FJ_LOYA* = 0x95VK_OEM_FJ_ROYA* = 0x96VK_LSHIFT* = 0xA0VK_RSHIFT* = 0xA1VK_LCONTROL* = 0xA2VK_RCONTROL* = 0xA3VK_LMENU* = 0xA4VK_RMENU* = 0xA5VK_BROWSER_BACK* = 0xA6VK_BROWSER_FORWARD* = 0xA7VK_BROWSER_REFRESH* = 0xA8VK_BROWSER_STOP* = 0xA9VK_BROWSER_SEARCH* = 0xAAVK_BROWSER_FAVORITES* = 0xABVK_BROWSER_HOME* = 0xACVK_VOLUME_MUTE* = 0xADVK_VOLUME_DOWN* = 0xAEVK_VOLUME_UP* = 0xAFVK_MEDIA_NEXT_TRACK* = 0xB0VK_MEDIA_PREV_TRACK* = 0xB1VK_MEDIA_STOP* = 0xB2VK_MEDIA_PLAY_PAUSE* = 0xB3VK_LAUNCH_MAIL* = 0xB4VK_LAUNCH_MEDIA_SELECT* = 0xB5VK_LAUNCH_APP1* = 0xB6VK_LAUNCH_APP2* = 0xB7VK_OEM_1* = 0xBAVK_OEM_PLUS* = 0xBBVK_OEM_COMMA* = 0xBCVK_OEM_MINUS* = 0xBDVK_OEM_PERIOD* = 0xBEVK_OEM_2* = 0xBFVK_OEM_3* = 0xC0VK_OEM_4* = 0xDBVK_OEM_5* = 0xDCVK_OEM_6* = 0xDDVK_OEM_7* = 0xDEVK_OEM_8* = 0xDFVK_OEM_AX* = 0xE1VK_OEM_102* = 0xE2VK_ICO_HELP* = 0xE3VK_ICO_00* = 0xE4VK_PROCESSKEY* = 0xE5VK_ICO_CLEAR* = 0xE6VK_PACKET* = 0xE7VK_OEM_RESET* = 0xE9VK_OEM_JUMP* = 0xEAVK_OEM_PA1* = 0xEBVK_OEM_PA2* = 0xECVK_OEM_PA3* = 0xEDVK_OEM_WSCTRL* = 0xEEVK_OEM_CUSEL* = 0xEFVK_OEM_ATTN* = 0xF0VK_OEM_FINISH* = 0xF1VK_OEM_COPY* = 0xF2VK_OEM_AUTO* = 0xF3VK_OEM_ENLW* = 0xF4VK_OEM_BACKTAB* = 0xF5VK_ATTN* = 0xF6VK_CRSEL* = 0xF7VK_EXSEL* = 0xF8VK_EREOF* = 0xF9VK_PLAY* = 0xFAVK_ZOOM* = 0xFBVK_NONAME* = 0xFCVK_PA1* = 0xFDVK_OEM_CLEAR* = 0xFEWH_MSGFILTER* = -1WH_CBT* = 5WH_KEYBOARD_LL* = 13HCBT_ACTIVATE* = 5GWL_STYLE* = -16GWL_EXSTYLE* = -20GWLP_USERDATA* = -21GWLP_ID* = -12WM_NULL* = 0x0000WM_CREATE* = 0x0001WM_DESTROY* = 0x0002WM_MOVE* = 0x0003WM_SIZE* = 0x0005WM_ACTIVATE* = 0x0006WM_SETFOCUS* = 0x0007WM_KILLFOCUS* = 0x0008WM_SETREDRAW* = 0x000BWM_SETTEXT* = 0x000CWM_PAINT* = 0x000FWM_CLOSE* = 0x0010WM_QUIT* = 0x0012WM_ERASEBKGND* = 0x0014WM_SHOWWINDOW* = 0x0018WM_CANCELMODE* = 0x001FWM_SETCURSOR* = 0x0020WM_GETMINMAXINFO* = 0x0024WM_DRAWITEM* = 0x002BWM_MEASUREITEM* = 0x002CWM_SETFONT* = 0x0030WM_GETFONT* = 0x0031WM_WINDOWPOSCHANGED* = 0x0047WM_NOTIFY* = 0x004EWM_CONTEXTMENU* = 0x007BWM_STYLECHANGED* = 0x007DWM_SETICON* = 0x0080WM_NCDESTROY* = 0x0082WM_NCCALCSIZE* = 0x0083WM_NCHITTEST* = 0x0084WM_NCPAINT* = 0x0085WM_NCMOUSEMOVE* = 0x00A0WM_NCLBUTTONDOWN* = 0x00A1WM_NCLBUTTONUP* = 0x00A2WM_NCLBUTTONDBLCLK* = 0x00A3WM_NCRBUTTONDOWN* = 0x00A4WM_NCRBUTTONUP* = 0x00A5WM_NCRBUTTONDBLCLK* = 0x00A6WM_NCMBUTTONDOWN* = 0x00A7WM_NCMBUTTONUP* = 0x00A8WM_NCMBUTTONDBLCLK* = 0x00A9WM_NCXBUTTONDOWN* = 0x00ABWM_NCXBUTTONUP* = 0x00ACWM_NCXBUTTONDBLCLK* = 0x00ADWM_KEYFIRST* = 0x0100WM_KEYDOWN* = 0x0100WM_KEYUP* = 0x0101WM_CHAR* = 0x0102WM_SYSKEYDOWN* = 0x0104WM_SYSKEYUP* = 0x0105WM_SYSCHAR* = 0x0106WM_KEYLAST* = 0x0109WM_INITDIALOG* = 0x0110WM_COMMAND* = 0x0111WM_SYSCOMMAND* = 0x0112WM_TIMER* = 0x0113WM_HSCROLL* = 0x0114WM_VSCROLL* = 0x0115WM_MENUSELECT* = 0x011FWM_MENURBUTTONUP* = 0x0122WM_MENUCOMMAND* = 0x0126WM_CHANGEUISTATE* = 0x0127WM_UPDATEUISTATE* = 0x0128WM_QUERYUISTATE* = 0x0129UIS_SET* = 1UIS_CLEAR* = 2UISF_HIDEFOCUS* = 0x1UISF_HIDEACCEL* = 0x2WM_CTLCOLOREDIT* = 0x0133WM_CTLCOLORLISTBOX* = 0x0134WM_CTLCOLORBTN* = 0x0135WM_CTLCOLORSTATIC* = 0x0138WM_MOUSEFIRST* = 0x0200WM_MOUSEMOVE* = 0x0200WM_LBUTTONDOWN* = 0x0201WM_LBUTTONUP* = 0x0202WM_LBUTTONDBLCLK* = 0x0203WM_RBUTTONDOWN* = 0x0204WM_RBUTTONUP* = 0x0205WM_RBUTTONDBLCLK* = 0x0206WM_MBUTTONDOWN* = 0x0207WM_MBUTTONUP* = 0x0208WM_MBUTTONDBLCLK* = 0x0209WM_MOUSEWHEEL* = 0x020AWM_MOUSEHWHEEL* = 0x020eWM_MOUSELAST* = 0x020eWM_MOVING* = 0x0216WM_MOUSEHOVER* = 0x02A1WM_MOUSELEAVE* = 0x02A3WM_CUT* = 0x0300WM_COPY* = 0x0301WM_HOTKEY* = 0x0312WM_APP* = 0x8000WM_USER* = 0x0400HTTRANSPARENT* = -1HTCLIENT* = 1HTCAPTION* = 2ICON_SMALL* = 0SIZE_RESTORED* = 0SIZE_MINIMIZED* = 1SIZE_MAXIMIZED* = 2SIZE_MAXSHOW* = 3SIZE_MAXHIDE* = 4TME_LEAVE* = 0x00000002HOVER_DEFAULT* = 0xFFFFFFFF'i32WS_POPUP* = 0x80000000'i32WS_CHILD* = 0x40000000WS_MINIMIZE* = 0x20000000WS_VISIBLE* = 0x10000000WS_CLIPSIBLINGS* = 0x04000000WS_CLIPCHILDREN* = 0x02000000WS_MAXIMIZE* = 0x01000000WS_CAPTION* = 0x00C00000WS_BORDER* = 0x00800000WS_VSCROLL* = 0x00200000WS_HSCROLL* = 0x00100000WS_SYSMENU* = 0x00080000WS_THICKFRAME* = 0x00040000WS_GROUP* = 0x00020000WS_TABSTOP* = 0x00010000WS_MINIMIZEBOX* = 0x00020000WS_MAXIMIZEBOX* = 0x00010000WS_ICONIC* = WS_MINIMIZEWS_SIZEBOX* = WS_THICKFRAMEWS_POPUPWINDOW* = WS_POPUP or WS_BORDER or WS_SYSMENUWS_EX_DLGMODALFRAME* = 0x00000001WS_EX_TOPMOST* = 0x00000008WS_EX_TRANSPARENT* = 0x00000020WS_EX_TOOLWINDOW* = 0x00000080WS_EX_WINDOWEDGE* = 0x00000100WS_EX_CLIENTEDGE* = 0x00000200WS_EX_RTLREADING* = 0x00002000WS_EX_STATICEDGE* = 0x00020000WS_EX_LAYERED* = 0x00080000WS_EX_LAYOUTRTL* = 0x00400000WS_EX_COMPOSITED* = 0x02000000CS_VREDRAW* = 0x0001CS_HREDRAW* = 0x0002CS_DBLCLKS* = 0x0008CS_PARENTDC* = 0x0080DFC_MENU* = 2DFCS_MENUCHECK* = 0x0001CF_TEXT* = 1CF_BITMAP* = 2CF_UNICODETEXT* = 13CF_HDROP* = 15FVIRTKEY* = TRUEFSHIFT* = 0x04FCONTROL* = 0x08FALT* = 0x10ODT_MENU* = 1ODT_COMBOBOX* = 3ODA_DRAWENTIRE* = 0x0001ODA_SELECT* = 0x0002ODS_SELECTED* = 0x0001ODS_COMBOBOXEDIT* = 0x1000PM_REMOVE* = 0x0001MOD_ALT* = 0x0001MOD_CONTROL* = 0x0002MOD_SHIFT* = 0x0004MOD_WIN* = 0x0008MOD_NOREPEAT* = 0x4000CW_USEDEFAULT* = int32 0x80000000'i32HWND_DESKTOP* = HWND 0LWA_ALPHA* = 0x00000002SWP_NOSIZE* = 0x0001SWP_NOMOVE* = 0x0002SWP_NOZORDER* = 0x0004SWP_NOACTIVATE* = 0x0010SWP_FRAMECHANGED* = 0x0020SWP_SHOWWINDOW* = 0x0040SWP_NOOWNERZORDER* = 0x0200SWP_DRAWFRAME* = SWP_FRAMECHANGEDSWP_NOREPOSITION* = SWP_NOOWNERZORDERHWND_TOP* = HWND 0HWND_BOTTOM* = HWND 1HWND_TOPMOST* = HWND(-1)HWND_NOTOPMOST* = HWND(-2)KEYEVENTF_KEYUP* = 0x0002SM_CXSCREEN* = 0SM_CYSCREEN* = 1SM_CXVSCROLL* = 2SM_CYHSCROLL* = 3SM_CYCAPTION* = 4SM_CXBORDER* = 5SM_CYBORDER* = 6SM_CYVTHUMB* = 9SM_CXHTHUMB* = 10SM_CXICON* = 11SM_CYICON* = 12SM_CXCURSOR* = 13SM_CYCURSOR* = 14SM_CYMENU* = 15SM_CYVSCROLL* = 20SM_CXHSCROLL* = 21SM_SWAPBUTTON* = 23SM_CXMIN* = 28SM_CYMIN* = 29SM_CXFRAME* = 32SM_CYFRAME* = 33SM_CXDOUBLECLK* = 36SM_CYDOUBLECLK* = 37SM_CXICONSPACING* = 38SM_CYICONSPACING* = 39SM_MENUDROPALIGNMENT* = 40SM_PENWINDOWS* = 41SM_CXSIZEFRAME* = SM_CXFRAMESM_CYSIZEFRAME* = SM_CYFRAMESM_CXEDGE* = 45SM_CYEDGE* = 46SM_CXSMICON* = 49SM_CYSMICON* = 50SM_CXMENUSIZE* = 54SM_CYMENUSIZE* = 55SM_NETWORK* = 63SM_CXDRAG* = 68SM_CYDRAG* = 69SM_SHOWSOUNDS* = 70MNS_NOTIFYBYPOS* = 0x08000000MNS_CHECKORBMP* = 0x04000000MIM_MENUDATA* = 0x00000008MIM_STYLE* = 0x00000010MIIM_STATE* = 0x00000001MIIM_ID* = 0x00000002MIIM_SUBMENU* = 0x00000004MIIM_DATA* = 0x00000020MIIM_STRING* = 0x00000040MIIM_BITMAP* = 0x00000080MIIM_FTYPE* = 0x00000100HBMMENU_CALLBACK* = HBITMAP(-1)TPM_LEFTBUTTON* = 0x0000TPM_LEFTALIGN* = 0x0000TPM_RIGHTALIGN* = 0x0008TPM_TOPALIGN* = 0x0000TPM_VCENTERALIGN* = 0x0010TPM_BOTTOMALIGN* = 0x0020TPM_VERTICAL* = 0x0040TPM_RETURNCMD* = 0x0100TPM_RECURSE* = 0x0001TPM_HORPOSANIMATION* = 0x0400TPM_HORNEGANIMATION* = 0x0800TPM_LAYOUTRTL* = 0x8000DT_TOP* = 0x00000000DT_LEFT* = 0x00000000DT_CENTER* = 0x00000001DT_RIGHT* = 0x00000002DT_VCENTER* = 0x00000004DT_BOTTOM* = 0x00000008DT_SINGLELINE* = 0x00000020DT_CALCRECT* = 0x00000400DT_NOPREFIX* = 0x00000800DT_END_ELLIPSIS* = 0x00008000DT_HIDEPREFIX* = 0x00100000RDW_INVALIDATE* = 0x0001RDW_ERASE* = 0x0004RDW_ALLCHILDREN* = 0x0080RDW_UPDATENOW* = 0x0100ESB_ENABLE_BOTH* = 0x0000ESB_DISABLE_BOTH* = 0x0003MB_OK* = 0x00000000MB_OKCANCEL* = 0x00000001MB_ABORTRETRYIGNORE* = 0x00000002MB_YESNOCANCEL* = 0x00000003MB_YESNO* = 0x00000004MB_RETRYCANCEL* = 0x00000005MB_CANCELTRYCONTINUE* = 0x00000006MB_ICONHAND* = 0x00000010MB_ICONQUESTION* = 0x00000020MB_ICONEXCLAMATION* = 0x00000030MB_ICONASTERISK* = 0x00000040MB_ICONWARNING* = MB_ICONEXCLAMATIONMB_ICONERROR* = MB_ICONHANDMB_ICONINFORMATION* = MB_ICONASTERISKMB_ICONSTOP* = MB_ICONHANDMB_DEFBUTTON1* = 0x00000000MB_DEFBUTTON2* = 0x00000100MB_DEFBUTTON3* = 0x00000200MB_DEFBUTTON4* = 0x00000300MB_APPLMODAL* = 0x00000000MB_TASKMODAL* = 0x00002000MB_TOPMOST* = 0x00040000COLOR_MENUTEXT* = 7COLOR_ACTIVEBORDER* = 10COLOR_APPWORKSPACE* = 12COLOR_HIGHLIGHT* = 13COLOR_HIGHLIGHTTEXT* = 14COLOR_BTNFACE* = 15COLOR_GRAYTEXT* = 17GW_HWNDNEXT* = 2GW_OWNER* = 4GW_CHILD* = 5MF_BYCOMMAND* = 0x00000000MF_BYPOSITION* = 0x00000400MF_SEPARATOR* = 0x00000800MF_ENABLED* = 0x00000000MF_GRAYED* = 0x00000001MF_DISABLED* = 0x00000002MF_CHECKED* = 0x00000008MF_STRING* = 0x00000000MF_POPUP* = 0x00000010MF_MENUBARBREAK* = 0x00000020MF_MENUBREAK* = 0x00000040MFT_STRING* = MF_STRINGMFT_SEPARATOR* = MF_SEPARATORMFS_GRAYED* = 0x00000003MFS_DISABLED* = MFS_GRAYEDMFS_CHECKED* = MF_CHECKEDSC_SIZE* = 0xF000SC_MOVE* = 0xF010SC_MINIMIZE* = 0xF020SC_MAXIMIZE* = 0xF030SC_CLOSE* = 0xF060SC_RESTORE* = 0xF120IDC_ARROW* = MAKEINTRESOURCE(32512)IMAGE_BITMAP* = 0IMAGE_ICON* = 1LR_COPYDELETEORG* = 0x0008LR_DEFAULTSIZE* = 0x0040LR_CREATEDIBSECTION* = 0x2000LR_SHARED* = 0x8000DI_NORMAL* = 0x0003IDI_ASTERISK* = MAKEINTRESOURCE(32516)IDI_INFORMATION* = IDI_ASTERISKIDOK* = 1IDCANCEL* = 2IDABORT* = 3IDRETRY* = 4IDIGNORE* = 5IDYES* = 6IDNO* = 7IDTRYAGAIN* = 10IDCONTINUE* = 11ES_LEFT* = 0x0000ES_CENTER* = 0x0001ES_RIGHT* = 0x0002ES_MULTILINE* = 0x0004ES_PASSWORD* = 0x0020ES_AUTOHSCROLL* = 0x0080ES_NOHIDESEL* = 0x0100ES_READONLY* = 0x0800EN_CHANGE* = 0x0300EN_UPDATE* = 0x0400EN_MAXTEXT* = 0x0501EC_LEFTMARGIN* = 0x0001EC_RIGHTMARGIN* = 0x0002EM_GETSEL* = 0x00B0EM_SETSEL* = 0x00B1EM_LINESCROLL* = 0x00B6EM_GETMODIFY* = 0x00B8EM_SETMODIFY* = 0x00B9EM_GETLINECOUNT* = 0x00BAEM_LINEINDEX* = 0x00BBEM_LINELENGTH* = 0x00C1EM_REPLACESEL* = 0x00C2EM_GETLINE* = 0x00C4EM_LIMITTEXT* = 0x00C5EM_CANUNDO* = 0x00C6EM_UNDO* = 0x00C7EM_LINEFROMCHAR* = 0x00C9EM_GETFIRSTVISIBLELINE* = 0x00CEEM_SETREADONLY* = 0x00CFEM_SETMARGINS* = 0x00D3EM_GETMARGINS* = 0x00D4BS_PUSHBUTTON* = 0x00000000BS_DEFPUSHBUTTON* = 0x00000001BS_AUTOCHECKBOX* = 0x00000003BS_3STATE* = 0x00000005BS_AUTO3STATE* = 0x00000006BS_GROUPBOX* = 0x00000007BS_AUTORADIOBUTTON* = 0x00000009BS_LEFTTEXT* = 0x00000020BS_LEFT* = 0x00000100BS_RIGHT* = 0x00000200BS_TOP* = 0x00000400BS_BOTTOM* = 0x00000800BS_FLAT* = 0x00008000BN_CLICKED* = 0BM_GETCHECK* = 0x00F0BM_SETCHECK* = 0x00F1BM_CLICK* = 0x00F5BST_UNCHECKED* = 0x0000BST_CHECKED* = 0x0001BST_INDETERMINATE* = 0x0002SS_LEFT* = 0x00000000SS_CENTER* = 0x00000001SS_RIGHT* = 0x00000002SS_LEFTNOWORDWRAP* = 0x0000000CSS_BITMAP* = 0x0000000ESS_REALSIZECONTROL* = 0x00000040SS_NOTIFY* = 0x00000100SS_CENTERIMAGE* = 0x00000200SS_SUNKEN* = 0x00001000STM_SETIMAGE* = 0x0172STN_CLICKED* = 0STN_DBLCLK* = 1DS_MODALFRAME* = 0x80LB_ERR* = -1LBN_SELCHANGE* = 1LBN_DBLCLK* = 2LBN_SETFOCUS* = 4LB_ADDSTRING* = 0x0180LB_INSERTSTRING* = 0x0181LB_DELETESTRING* = 0x0182LB_RESETCONTENT* = 0x0184LB_SETSEL* = 0x0185LB_SETCURSEL* = 0x0186LB_GETSEL* = 0x0187LB_GETCURSEL* = 0x0188LB_GETTEXT* = 0x0189LB_GETTEXTLEN* = 0x018ALB_GETCOUNT* = 0x018BLB_GETTOPINDEX* = 0x018ELB_GETSELITEMS* = 0x0191LB_SETTOPINDEX* = 0x0197LB_GETITEMRECT* = 0x0198LB_GETITEMDATA* = 0x0199LB_SETITEMDATA* = 0x019ALB_SETCARETINDEX* = 0x019ELB_GETCARETINDEX* = 0x019FLB_GETITEMHEIGHT* = 0x01A1LB_ITEMFROMPOINT* = 0x01A9LBS_NOTIFY* = 0x0001LBS_SORT* = 0x0002LBS_MULTIPLESEL* = 0x0008LBS_NOINTEGRALHEIGHT* = 0x0100LBS_EXTENDEDSEL* = 0x0800LBS_DISABLENOSCROLL* = 0x1000LBS_NOSEL* = 0x4000CB_ERR* = -1CBN_DBLCLK* = 2CBN_SETFOCUS* = 3CBN_KILLFOCUS* = 4CBN_DROPDOWN* = 7CBN_CLOSEUP* = 8CBN_SELENDOK* = 9CBS_SIMPLE* = 0x0001CBS_DROPDOWN* = 0x0002CBS_DROPDOWNLIST* = 0x0003CBS_OWNERDRAWFIXED* = 0x0010CBS_OWNERDRAWVARIABLE* = 0x0020CBS_AUTOHSCROLL* = 0x0040CBS_SORT* = 0x0100CBS_HASSTRINGS* = 0x0200CBS_NOINTEGRALHEIGHT* = 0x0400CBS_DISABLENOSCROLL* = 0x0800CB_ADDSTRING* = 0x0143CB_DELETESTRING* = 0x0144CB_GETCOUNT* = 0x0146CB_GETCURSEL* = 0x0147CB_GETLBTEXT* = 0x0148CB_GETLBTEXTLEN* = 0x0149CB_INSERTSTRING* = 0x014ACB_RESETCONTENT* = 0x014BCB_SETCURSEL* = 0x014ECB_SHOWDROPDOWN* = 0x014FCB_GETITEMDATA* = 0x0150CB_SETITEMDATA* = 0x0151CB_SETITEMHEIGHT* = 0x0153CB_GETITEMHEIGHT* = 0x0154CB_GETDROPPEDSTATE* = 0x0157SBS_HORZ* = 0x0000SBS_VERT* = 0x0001SIF_RANGE* = 0x0001SIF_PAGE* = 0x0002SIF_POS* = 0x0004SIF_TRACKPOS* = 0x0010SIF_ALL* = SIF_RANGE or SIF_PAGE or SIF_POS or SIF_TRACKPOSSPI_GETNONCLIENTMETRICS* = 0x0029SPI_GETKEYBOARDCUES* = 0x100ASPI_GETMENUUNDERLINES* = SPI_GETKEYBOARDCUESOBJID_VSCROLL* = LONG 0xFFFFFFFB'i32OBJID_HSCROLL* = LONG 0xFFFFFFFA'i32STATE_SYSTEM_PRESSED* = 0x00000008STATE_SYSTEM_INVISIBLE* = 0x00008000GA_PARENT* = 1GA_ROOT* = 2RT_GROUP_CURSOR* = MAKEINTRESOURCE(1+DIFFERENCE)RT_GROUP_ICON* = MAKEINTRESOURCE(3+DIFFERENCE)typeTIMERPROC* = proc (P1: HWND, P2: UINT, P3: UINT_PTR, P4: DWORD): VOID {.stdcall.}WNDENUMPROC* = proc (P1: HWND, P2: LPARAM): WINBOOL {.stdcall.}HOOKPROC* = proc (code: int32, wParam: WPARAM, lParam: LPARAM): LRESULT {.stdcall.}proc TrackMouseEvent*(lpEventTrack: LPTRACKMOUSEEVENT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc DrawFrameControl*(P1: HDC, P2: LPRECT, P3: UINT, P4: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc TranslateMessage*(lpMsg: ptr MSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc RegisterHotKey*(hWnd: HWND, id: int32, fsModifiers: UINT, vk: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc UnregisterHotKey*(hWnd: HWND, id: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetMessagePos*(): DWORD {.winapi, stdcall, dynlib: "user32", importc.}proc GetMessageTime*(): LONG {.winapi, stdcall, dynlib: "user32", importc.}proc AttachThreadInput*(idAttach: DWORD, idAttachTo: DWORD, fAttach: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc PostQuitMessage*(nExitCode: int32): VOID {.winapi, stdcall, dynlib: "user32", importc.}proc IsWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IsMenu*(hMenu: HMENU): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IsChild*(hWndParent: HWND, hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc DestroyWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc ShowWindow*(hWnd: HWND, nCmdShow: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetLayeredWindowAttributes*(hwnd: HWND, pcrKey: ptr COLORREF, pbAlpha: ptr BYTE, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetLayeredWindowAttributes*(hwnd: HWND, crKey: COLORREF, bAlpha: BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetWindowPos*(hWnd: HWND, hWndInsertAfter: HWND, X: int32, Y: int32, cx: int32, cy: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IsWindowVisible*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IsIconic*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc BringWindowToTop*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IsZoomed*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetDlgItem*(hDlg: HWND, nIDDlgItem: int32): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetNextDlgGroupItem*(hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetNextDlgTabItem*(hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetDialogBaseUnits*(): LONG32 {.winapi, stdcall, dynlib: "user32", importc.}proc SetFocus*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetFocus*(): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetKeyState*(nVirtKey: int32): SHORT {.winapi, stdcall, dynlib: "user32", importc.}proc GetAsyncKeyState*(vKey: int32): SHORT {.winapi, stdcall, dynlib: "user32", importc.}proc GetKeyboardState*(lpKeyState: PBYTE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc keybd_event*(bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: ULONG_PTR): VOID {.winapi, stdcall, dynlib: "user32", importc.}proc GetCapture*(): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc SetCapture*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc ReleaseCapture*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetTimer*(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC): UINT_PTR {.winapi, stdcall, dynlib: "user32", importc.}proc KillTimer*(hWnd: HWND, uIDEvent: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc EnableWindow*(hWnd: HWND, bEnable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IsWindowEnabled*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc DestroyAcceleratorTable*(hAccel: HACCEL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetSystemMetrics*(nIndex: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc GetMenu*(hWnd: HWND): HMENU {.winapi, stdcall, dynlib: "user32", importc.}proc SetMenu*(hWnd: HWND, hMenu: HMENU): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetMenuState*(hMenu: HMENU, uId: UINT, uFlags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.}proc DrawMenuBar*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetSystemMenu*(hWnd: HWND, bRevert: WINBOOL): HMENU {.winapi, stdcall, dynlib: "user32", importc.}proc CreateMenu*(): HMENU {.winapi, stdcall, dynlib: "user32", importc.}proc CreatePopupMenu*(): HMENU {.winapi, stdcall, dynlib: "user32", importc.}proc DestroyMenu*(hMenu: HMENU): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc EnableMenuItem*(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetSubMenu*(hMenu: HMENU, nPos: int32): HMENU {.winapi, stdcall, dynlib: "user32", importc.}proc GetMenuItemCount*(hMenu: HMENU): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc RemoveMenu*(hMenu: HMENU, uPosition: UINT, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc TrackPopupMenu*(hMenu: HMENU, uFlags: UINT, x: int32, y: int32, nReserved: int32, hWnd: HWND, prcRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc TrackPopupMenuEx*(P1: HMENU, P2: UINT, P3: int32, P4: int32, P5: HWND, P6: LPTPMPARAMS): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetMenuInfo*(P1: HMENU, P2: LPMENUINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetMenuInfo*(P1: HMENU, P2: LPCMENUINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc DrawIcon*(hDC: HDC, X: int32, Y: int32, hIcon: HICON): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc UpdateWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetForegroundWindow*(): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc SetForegroundWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetDC*(hWnd: HWND): HDC {.winapi, stdcall, dynlib: "user32", importc.}proc GetWindowDC*(hWnd: HWND): HDC {.winapi, stdcall, dynlib: "user32", importc.}proc ReleaseDC*(hWnd: HWND, hDC: HDC): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc BeginPaint*(hWnd: HWND, lpPaint: LPPAINTSTRUCT): HDC {.winapi, stdcall, dynlib: "user32", importc.}proc EndPaint*(hWnd: HWND, lpPaint: ptr PAINTSTRUCT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetUpdateRect*(hWnd: HWND, lpRect: LPRECT, bErase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetWindowRgn*(hWnd: HWND, hRgn: HRGN, bRedraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc InvalidateRect*(hWnd: HWND, lpRect: ptr RECT, bErase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc RedrawWindow*(hWnd: HWND, lprcUpdate: ptr RECT, hrgnUpdate: HRGN, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc ShowScrollBar*(hWnd: HWND, wBar: int32, bShow: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc EnableScrollBar*(hWnd: HWND, wSBflags: UINT, wArrows: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetClientRect*(hWnd: HWND, lpRect: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetWindowRect*(hWnd: HWND, lpRect: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetCursorPos*(X: int32, Y: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetCursor*(hCursor: HCURSOR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.}proc GetCursorPos*(lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc HideCaret*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc ShowCaret*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc ClientToScreen*(hWnd: HWND, lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc ScreenToClient*(hWnd: HWND, lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc MapWindowPoints*(hWndFrom: HWND, hWndTo: HWND, lpPoints: LPPOINT, cPoints: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc WindowFromPoint*(Point: POINT): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetSysColor*(nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc.}proc DrawFocusRect*(hDC: HDC, lprc: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc FillRect*(hDC: HDC, lprc: ptr RECT, hbr: HBRUSH): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc InflateRect*(lprc: LPRECT, dx: int32, dy: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc IntersectRect*(lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc OffsetRect*(lprc: LPRECT, dx: int32, dy: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc PtInRect*(lprc: ptr RECT, pt: POINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetDesktopWindow*(): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc GetParent*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc SetParent*(hWndChild: HWND, hWndNewParent: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc EnumChildWindows*(hWndParent: HWND, lpEnumFunc: WNDENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetWindowThreadProcessId*(hWnd: HWND, lpdwProcessId: LPDWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.}proc GetWindow*(hWnd: HWND, uCmd: UINT): HWND {.winapi, stdcall, dynlib: "user32", importc.}proc UnhookWindowsHookEx*(hhk: HHOOK): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc CallNextHookEx*(hhk: HHOOK, nCode: int32, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.}proc CheckMenuRadioItem*(hmenu: HMENU, first: UINT, last: UINT, check: UINT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc DestroyCursor*(hCursor: HCURSOR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc DestroyIcon*(hIcon: HICON): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc LookupIconIdFromDirectoryEx*(presbits: PBYTE, fIcon: WINBOOL, cxDesired: int32, cyDesired: int32, Flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc CreateIconFromResourceEx*(presbits: PBYTE, dwResSize: DWORD, fIcon: WINBOOL, dwVer: DWORD, cxDesired: int32, cyDesired: int32, Flags: UINT): HICON {.winapi, stdcall, dynlib: "user32", importc.}proc CopyImage*(h: HANDLE, `type`: UINT, cx: int32, cy: int32, flags: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc.}proc DrawIconEx*(hdc: HDC, xLeft: int32, yTop: int32, hIcon: HICON, cxWidth: int32, cyWidth: int32, istepIfAniCur: UINT, hbrFlickerFreeDraw: HBRUSH, diFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc CreateIconIndirect*(piconinfo: PICONINFO): HICON {.winapi, stdcall, dynlib: "user32", importc.}proc GetIconInfo*(hIcon: HICON, piconinfo: PICONINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetScrollInfo*(hwnd: HWND, nBar: int32, lpsi: LPCSCROLLINFO, redraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.}proc GetScrollInfo*(hwnd: HWND, nBar: int32, lpsi: LPSCROLLINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc SetProcessDPIAware*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetScrollBarInfo*(hwnd: HWND, idObject: LONG, psbi: PSCROLLBARINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetComboBoxInfo*(hwndCombo: HWND, pcbi: PCOMBOBOXINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.}proc GetAncestor*(hwnd: HWND, gaFlags: UINT): HWND {.winapi, stdcall, dynlib: "user32", importc.}template MAKEWPARAM*(l: untyped, h: untyped): WPARAM = WPARAM MAKELONG(l, h)template MAKELPARAM*(l: untyped, h: untyped): LPARAM = LPARAM MAKELONG(l, h)template GET_WHEEL_DELTA_WPARAM*(wParam: untyped): SHORT = cast[SHORT](HIWORD(wParam))when winimAnsi:proc CreateWindowEx*(dwExStyle: DWORD, lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowExA".}when winimUnicode:proc CreateWindowEx*(dwExStyle: DWORD, lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowExW".}typeWNDCLASSEX* = WNDCLASSEXWWNDCLASS* = WNDCLASSWCREATESTRUCT* = CREATESTRUCTWMENUITEMINFO* = MENUITEMINFOWNONCLIENTMETRICS* = NONCLIENTMETRICSWproc RegisterWindowMessage*(lpString: LPCWSTR): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterWindowMessageW".}proc GetMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMessageW".}proc DispatchMessage*(lpMsg: ptr MSG): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DispatchMessageW".}proc PeekMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PeekMessageW".}proc SendMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageW".}proc PostMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostMessageW".}proc DefWindowProc*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefWindowProcW".}proc CallWindowProc*(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "CallWindowProcW".}proc UnregisterClass*(lpClassName: LPCWSTR, hInstance: HINSTANCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "UnregisterClassW".}proc GetClassInfo*(hInstance: HINSTANCE, lpClassName: LPCWSTR, lpWndClass: LPWNDCLASSW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoW".}proc RegisterClassEx*(P1: ptr WNDCLASSEXW): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassExW".}proc CreateAcceleratorTable*(paccel: LPACCEL, cAccel: int32): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "CreateAcceleratorTableW".}proc TranslateAccelerator*(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG): int32 {.winapi, stdcall, dynlib: "user32", importc: "TranslateAcceleratorW".}proc InsertMenuItem*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuItemW".}proc GetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMenuItemInfoW".}proc SetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetMenuItemInfoW".}proc DrawText*(hdc: HDC, lpchText: LPCWSTR, cchText: int32, lprc: LPRECT, format: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextW".}proc SetWindowText*(hWnd: HWND, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetWindowTextW".}proc GetWindowText*(hWnd: HWND, lpString: LPWSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextW".}proc GetWindowTextLength*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextLengthW".}proc MessageBox*(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxW".}proc FindWindow*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowW".}proc FindWindowEx*(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCWSTR, lpszWindow: LPCWSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowExW".}proc GetClassName*(hWnd: HWND, lpClassName: LPWSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClassNameW".}proc SetWindowsHookEx*(idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookExW".}proc LoadCursor*(hInstance: HINSTANCE, lpCursorName: LPCWSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorW".}proc LoadImage*(hInst: HINSTANCE, name: LPCWSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "LoadImageW".}proc IsDialogMessage*(hDlg: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsDialogMessageW".}proc SystemParametersInfo*(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SystemParametersInfoW".}when winimAnsi:typeWNDCLASSEX* = WNDCLASSEXAWNDCLASS* = WNDCLASSACREATESTRUCT* = CREATESTRUCTAMENUITEMINFO* = MENUITEMINFOANONCLIENTMETRICS* = NONCLIENTMETRICSAproc RegisterWindowMessage*(lpString: LPCSTR): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterWindowMessageA".}proc GetMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMessageA".}proc DispatchMessage*(lpMsg: ptr MSG): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DispatchMessageA".}proc PeekMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PeekMessageA".}proc SendMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageA".}proc PostMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostMessageA".}proc DefWindowProc*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefWindowProcA".}proc CallWindowProc*(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "CallWindowProcA".}proc UnregisterClass*(lpClassName: LPCSTR, hInstance: HINSTANCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "UnregisterClassA".}proc GetClassInfo*(hInstance: HINSTANCE, lpClassName: LPCSTR, lpWndClass: LPWNDCLASSA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoA".}proc RegisterClassEx*(P1: ptr WNDCLASSEXA): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassExA".}proc CreateAcceleratorTable*(paccel: LPACCEL, cAccel: int32): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "CreateAcceleratorTableA".}proc TranslateAccelerator*(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG): int32 {.winapi, stdcall, dynlib: "user32", importc: "TranslateAcceleratorA".}proc InsertMenuItem*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuItemA".}proc GetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMenuItemInfoA".}proc SetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetMenuItemInfoA".}proc DrawText*(hdc: HDC, lpchText: LPCSTR, cchText: int32, lprc: LPRECT, format: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextA".}proc SetWindowText*(hWnd: HWND, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetWindowTextA".}proc GetWindowText*(hWnd: HWND, lpString: LPSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextA".}proc GetWindowTextLength*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextLengthA".}proc MessageBox*(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxA".}proc FindWindow*(lpClassName: LPCSTR, lpWindowName: LPCSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowA".}proc FindWindowEx*(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCSTR, lpszWindow: LPCSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowExA".}proc GetClassName*(hWnd: HWND, lpClassName: LPSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClassNameA".}proc SetWindowsHookEx*(idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookExA".}proc LoadCursor*(hInstance: HINSTANCE, lpCursorName: LPCSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorA".}proc LoadImage*(hInst: HINSTANCE, name: LPCSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "LoadImageA".}proc IsDialogMessage*(hDlg: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsDialogMessageA".}proc SystemParametersInfo*(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SystemParametersInfoA".}when winimUnicode and winimCpu64:proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongPtrW".}proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongPtrW".}when winimAnsi and winimCpu64:proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongPtrA".}proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongPtrA".}when winimUnicode and winimCpu32:proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".}proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".}when winimAnsi and winimCpu32:proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".}proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".}constCP_ACP* = 0typeREGSAM* = ACCESS_MASKconstHKEY_CURRENT_USER* = HKEY 0x80000001'i32proc RegCloseKey*(hKey: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.}when winimUnicode:proc RegCreateKeyEx*(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyExW".}proc RegSetValueEx*(hKey: HKEY, lpValueName: LPCWSTR, Reserved: DWORD, dwType: DWORD, lpData: ptr BYTE, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueExW".}when winimAnsi:proc RegCreateKeyEx*(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyExA".}proc RegSetValueEx*(hKey: HKEY, lpValueName: LPCSTR, Reserved: DWORD, dwType: DWORD, lpData: ptr BYTE, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueExA".}typeSOCKET* = intconstFD_SETSIZE* = 64typefd_set* {.pure.} = objectfd_count*: int32fd_array*: array[FD_SETSIZE, SOCKET]sockaddr* {.pure.} = objectsa_family*: uint16sa_data*: array[14, char]timeval* {.pure.} = objecttv_sec*: int32tv_usec*: int32PTIMEVAL* = ptr timevalproc accept*(s: SOCKET, `addr`: ptr sockaddr, addrlen: ptr int32): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.}proc connect*(s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.}proc select*(nfds: int32, readfds: ptr fd_set, writefds: ptr fd_set, exceptfds: ptr fd_set, timeout: PTIMEVAL): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.}proc send*(s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.}constnetwork* = 3batch* = 4typePercentage* = UINT8VARTYPE* = uint16TYPEKIND* = int32CALLCONV* = int32FUNCKIND* = int32INVOKEKIND* = int32VARKIND* = int32DESCKIND* = int32SYSKIND* = int32READYSTATE* = int32OLECMDF* = int32OLECMDEXECOPT* = int32OLECMDID* = int32GETPROPERTYSTOREFLAGS* = int32CLIPFORMAT* = WORDDISPID* = LONGHREFTYPE* = DWORDSCODE* = LONGHMETAFILEPICT* = HANDLEDATE* = float64CY_STRUCT1* {.pure.} = objectLo*: int32Hi*: int32CY* {.pure, union.} = objectstruct1*: CY_STRUCT1int64*: LONGLONGDECIMAL_UNION1_STRUCT1* {.pure.} = objectscale*: BYTEsign*: BYTEDECIMAL_UNION1* {.pure, union.} = objectstruct1*: DECIMAL_UNION1_STRUCT1signscale*: USHORTDECIMAL_UNION2_STRUCT1* {.pure.} = objectLo32*: ULONGMid32*: ULONGDECIMAL_UNION2* {.pure, union.} = objectstruct1*: DECIMAL_UNION2_STRUCT1Lo64*: ULONGLONGDECIMAL* {.pure.} = objectwReserved*: USHORTunion1*: DECIMAL_UNION1Hi32*: ULONGunion2*: DECIMAL_UNION2VARIANT_BOOL* = int16IUnknown* {.pure.} = objectlpVtbl*: ptr IUnknownVtblIUnknownVtbl* {.pure, inheritable.} = objectQueryInterface*: proc(self: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.}AddRef*: proc(self: ptr IUnknown): ULONG {.stdcall.}Release*: proc(self: ptr IUnknown): ULONG {.stdcall.}LPUNKNOWN* = ptr IUnknownISequentialStream* {.pure.} = objectlpVtbl*: ptr ISequentialStreamVtblISequentialStreamVtbl* {.pure, inheritable.} = object of IUnknownVtblRead*: proc(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.stdcall.}Write*: proc(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.stdcall.}LPOLESTR* = ptr OLECHARSTATSTG* {.pure.} = objectpwcsName*: LPOLESTR`type`*: DWORDcbSize*: ULARGE_INTEGERmtime*: FILETIMEctime*: FILETIMEatime*: FILETIMEgrfMode*: DWORDgrfLocksSupported*: DWORDclsid*: CLSIDgrfStateBits*: DWORDreserved*: DWORDIStream* {.pure.} = objectlpVtbl*: ptr IStreamVtblIStreamVtbl* {.pure, inheritable.} = object of ISequentialStreamVtblSeek*: proc(self: ptr IStream, dlibMove: LARGE_INTEGER, dwOrigin: DWORD, plibNewPosition: ptr ULARGE_INTEGER): HRESULT {.stdcall.}SetSize*: proc(self: ptr IStream, libNewSize: ULARGE_INTEGER): HRESULT {.stdcall.}CopyTo*: proc(self: ptr IStream, pstm: ptr IStream, cb: ULARGE_INTEGER, pcbRead: ptr ULARGE_INTEGER, pcbWritten: ptr ULARGE_INTEGER): HRESULT {.stdcall.}Commit*: proc(self: ptr IStream, grfCommitFlags: DWORD): HRESULT {.stdcall.}Revert*: proc(self: ptr IStream): HRESULT {.stdcall.}LockRegion*: proc(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.stdcall.}UnlockRegion*: proc(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.stdcall.}Stat*: proc(self: ptr IStream, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.stdcall.}Clone*: proc(self: ptr IStream, ppstm: ptr ptr IStream): HRESULT {.stdcall.}IEnumUnknown* {.pure.} = objectlpVtbl*: ptr IEnumUnknownVtblIEnumUnknownVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumUnknown, celt: ULONG, rgelt: ptr ptr IUnknown, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumUnknown, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumUnknown): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumUnknown, ppenum: ptr ptr IEnumUnknown): HRESULT {.stdcall.}IEnumString* {.pure.} = objectlpVtbl*: ptr IEnumStringVtblIEnumStringVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumString, celt: ULONG, rgelt: ptr LPOLESTR, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumString, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumString): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumString, ppenum: ptr ptr IEnumString): HRESULT {.stdcall.}BIND_OPTS* {.pure.} = objectcbStruct*: DWORDgrfFlags*: DWORDgrfMode*: DWORDdwTickCountDeadline*: DWORDIPersist* {.pure.} = objectlpVtbl*: ptr IPersistVtblIPersistVtbl* {.pure, inheritable.} = object of IUnknownVtblGetClassID*: proc(self: ptr IPersist, pClassID: ptr CLSID): HRESULT {.stdcall.}IPersistStream* {.pure.} = objectlpVtbl*: ptr IPersistStreamVtblIPersistStreamVtbl* {.pure, inheritable.} = object of IPersistVtblIsDirty*: proc(self: ptr IPersistStream): HRESULT {.stdcall.}Load*: proc(self: ptr IPersistStream, pStm: ptr IStream): HRESULT {.stdcall.}Save*: proc(self: ptr IPersistStream, pStm: ptr IStream, fClearDirty: WINBOOL): HRESULT {.stdcall.}GetSizeMax*: proc(self: ptr IPersistStream, pcbSize: ptr ULARGE_INTEGER): HRESULT {.stdcall.}IEnumMoniker* {.pure.} = objectlpVtbl*: ptr IEnumMonikerVtblIEnumMonikerVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumMoniker, celt: ULONG, rgelt: ptr ptr IMoniker, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumMoniker, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumMoniker): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumMoniker, ppenum: ptr ptr IEnumMoniker): HRESULT {.stdcall.}IMoniker* {.pure.} = objectlpVtbl*: ptr IMonikerVtblIMonikerVtbl* {.pure, inheritable.} = object of IPersistStreamVtblBindToObject*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riidResult: REFIID, ppvResult: ptr pointer): HRESULT {.stdcall.}BindToStorage*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riid: REFIID, ppvObj: ptr pointer): HRESULT {.stdcall.}Reduce*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, dwReduceHowFar: DWORD, ppmkToLeft: ptr ptr IMoniker, ppmkReduced: ptr ptr IMoniker): HRESULT {.stdcall.}ComposeWith*: proc(self: ptr IMoniker, pmkRight: ptr IMoniker, fOnlyIfNotGeneric: WINBOOL, ppmkComposite: ptr ptr IMoniker): HRESULT {.stdcall.}Enum*: proc(self: ptr IMoniker, fForward: WINBOOL, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.stdcall.}IsEqual*: proc(self: ptr IMoniker, pmkOtherMoniker: ptr IMoniker): HRESULT {.stdcall.}Hash*: proc(self: ptr IMoniker, pdwHash: ptr DWORD): HRESULT {.stdcall.}IsRunning*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pmkNewlyRunning: ptr IMoniker): HRESULT {.stdcall.}GetTimeOfLastChange*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pFileTime: ptr FILETIME): HRESULT {.stdcall.}Inverse*: proc(self: ptr IMoniker, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.}CommonPrefixWith*: proc(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkPrefix: ptr ptr IMoniker): HRESULT {.stdcall.}RelativePathTo*: proc(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkRelPath: ptr ptr IMoniker): HRESULT {.stdcall.}GetDisplayName*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, ppszDisplayName: ptr LPOLESTR): HRESULT {.stdcall.}ParseDisplayName*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.stdcall.}IsSystemMoniker*: proc(self: ptr IMoniker, pdwMksys: ptr DWORD): HRESULT {.stdcall.}IRunningObjectTable* {.pure.} = objectlpVtbl*: ptr IRunningObjectTableVtblIRunningObjectTableVtbl* {.pure, inheritable.} = object of IUnknownVtblRegister*: proc(self: ptr IRunningObjectTable, grfFlags: DWORD, punkObject: ptr IUnknown, pmkObjectName: ptr IMoniker, pdwRegister: ptr DWORD): HRESULT {.stdcall.}Revoke*: proc(self: ptr IRunningObjectTable, dwRegister: DWORD): HRESULT {.stdcall.}IsRunning*: proc(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker): HRESULT {.stdcall.}GetObject*: proc(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, ppunkObject: ptr ptr IUnknown): HRESULT {.stdcall.}NoteChangeTime*: proc(self: ptr IRunningObjectTable, dwRegister: DWORD, pfiletime: ptr FILETIME): HRESULT {.stdcall.}GetTimeOfLastChange*: proc(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, pfiletime: ptr FILETIME): HRESULT {.stdcall.}EnumRunning*: proc(self: ptr IRunningObjectTable, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.stdcall.}IBindCtx* {.pure.} = objectlpVtbl*: ptr IBindCtxVtblIBindCtxVtbl* {.pure, inheritable.} = object of IUnknownVtblRegisterObjectBound*: proc(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.stdcall.}RevokeObjectBound*: proc(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.stdcall.}ReleaseBoundObjects*: proc(self: ptr IBindCtx): HRESULT {.stdcall.}SetBindOptions*: proc(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.stdcall.}GetBindOptions*: proc(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.stdcall.}GetRunningObjectTable*: proc(self: ptr IBindCtx, pprot: ptr ptr IRunningObjectTable): HRESULT {.stdcall.}RegisterObjectParam*: proc(self: ptr IBindCtx, pszKey: LPOLESTR, punk: ptr IUnknown): HRESULT {.stdcall.}GetObjectParam*: proc(self: ptr IBindCtx, pszKey: LPOLESTR, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.}EnumObjectParam*: proc(self: ptr IBindCtx, ppenum: ptr ptr IEnumString): HRESULT {.stdcall.}RevokeObjectParam*: proc(self: ptr IBindCtx, pszKey: LPOLESTR): HRESULT {.stdcall.}IEnumSTATSTG* {.pure.} = objectlpVtbl*: ptr IEnumSTATSTGVtblIEnumSTATSTGVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumSTATSTG, celt: ULONG, rgelt: ptr STATSTG, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumSTATSTG, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumSTATSTG): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumSTATSTG, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.stdcall.}SNB* = ptr LPOLESTRIStorage* {.pure.} = objectlpVtbl*: ptr IStorageVtblIStorageVtbl* {.pure, inheritable.} = object of IUnknownVtblCreateStream*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.stdcall.}OpenStream*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, reserved1: pointer, grfMode: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.stdcall.}CreateStorage*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstg: ptr ptr IStorage): HRESULT {.stdcall.}OpenStorage*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgPriority: ptr IStorage, grfMode: DWORD, snbExclude: SNB, reserved: DWORD, ppstg: ptr ptr IStorage): HRESULT {.stdcall.}CopyTo*: proc(self: ptr IStorage, ciidExclude: DWORD, rgiidExclude: ptr IID, snbExclude: SNB, pstgDest: ptr IStorage): HRESULT {.stdcall.}MoveElementTo*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgDest: ptr IStorage, pwcsNewName: ptr OLECHAR, grfFlags: DWORD): HRESULT {.stdcall.}Commit*: proc(self: ptr IStorage, grfCommitFlags: DWORD): HRESULT {.stdcall.}Revert*: proc(self: ptr IStorage): HRESULT {.stdcall.}EnumElements*: proc(self: ptr IStorage, reserved1: DWORD, reserved2: pointer, reserved3: DWORD, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.stdcall.}DestroyElement*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR): HRESULT {.stdcall.}RenameElement*: proc(self: ptr IStorage, pwcsOldName: ptr OLECHAR, pwcsNewName: ptr OLECHAR): HRESULT {.stdcall.}SetElementTimes*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.stdcall.}SetClass*: proc(self: ptr IStorage, clsid: REFCLSID): HRESULT {.stdcall.}SetStateBits*: proc(self: ptr IStorage, grfStateBits: DWORD, grfMask: DWORD): HRESULT {.stdcall.}Stat*: proc(self: ptr IStorage, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.stdcall.}LPCOLESTR* = ptr OLECHARDVTARGETDEVICE* {.pure.} = objecttdSize*: DWORDtdDriverNameOffset*: WORDtdDeviceNameOffset*: WORDtdPortNameOffset*: WORDtdExtDevmodeOffset*: WORDtdData*: array[1, BYTE]FORMATETC* {.pure.} = objectcfFormat*: CLIPFORMATptd*: ptr DVTARGETDEVICEdwAspect*: DWORDlindex*: LONGtymed*: DWORDIEnumFORMATETC* {.pure.} = objectlpVtbl*: ptr IEnumFORMATETCVtblIEnumFORMATETCVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumFORMATETC, celt: ULONG, rgelt: ptr FORMATETC, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumFORMATETC, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumFORMATETC): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumFORMATETC, ppenum: ptr ptr IEnumFORMATETC): HRESULT {.stdcall.}uSTGMEDIUM_u* {.pure, union.} = objecthBitmap*: HBITMAPhMetaFilePict*: HMETAFILEPICThEnhMetaFile*: HENHMETAFILEhGlobal*: HGLOBALlpszFileName*: LPOLESTRpstm*: ptr IStreampstg*: ptr IStorageuSTGMEDIUM* {.pure.} = objecttymed*: DWORDu*: uSTGMEDIUM_upUnkForRelease*: ptr IUnknownSTGMEDIUM* = uSTGMEDIUMIAdviseSink* {.pure.} = objectlpVtbl*: ptr IAdviseSinkVtblIAdviseSinkVtbl* {.pure, inheritable.} = object of IUnknownVtblOnDataChange*: proc(self: ptr IAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM): void {.stdcall.}OnViewChange*: proc(self: ptr IAdviseSink, dwAspect: DWORD, lindex: LONG): void {.stdcall.}OnRename*: proc(self: ptr IAdviseSink, pmk: ptr IMoniker): void {.stdcall.}OnSave*: proc(self: ptr IAdviseSink): void {.stdcall.}OnClose*: proc(self: ptr IAdviseSink): void {.stdcall.}STATDATA* {.pure.} = objectformatetc*: FORMATETCadvf*: DWORDpAdvSink*: ptr IAdviseSinkdwConnection*: DWORDIEnumSTATDATA* {.pure.} = objectlpVtbl*: ptr IEnumSTATDATAVtblIEnumSTATDATAVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumSTATDATA, celt: ULONG, rgelt: ptr STATDATA, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumSTATDATA, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumSTATDATA): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumSTATDATA, ppenum: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.}LPSTGMEDIUM* = ptr STGMEDIUMIDataObject* {.pure.} = objectlpVtbl*: ptr IDataObjectVtblIDataObjectVtbl* {.pure, inheritable.} = object of IUnknownVtblGetData*: proc(self: ptr IDataObject, pformatetcIn: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.stdcall.}GetDataHere*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.stdcall.}QueryGetData*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC): HRESULT {.stdcall.}GetCanonicalFormatEtc*: proc(self: ptr IDataObject, pformatectIn: ptr FORMATETC, pformatetcOut: ptr FORMATETC): HRESULT {.stdcall.}SetData*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM, fRelease: WINBOOL): HRESULT {.stdcall.}EnumFormatEtc*: proc(self: ptr IDataObject, dwDirection: DWORD, ppenumFormatEtc: ptr ptr IEnumFORMATETC): HRESULT {.stdcall.}DAdvise*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC, advf: DWORD, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.stdcall.}DUnadvise*: proc(self: ptr IDataObject, dwConnection: DWORD): HRESULT {.stdcall.}EnumDAdvise*: proc(self: ptr IDataObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.}LPDATAOBJECT* = ptr IDataObjectSAFEARRAYBOUND* {.pure.} = objectcElements*: ULONGlLbound*: LONGMEMBERID* = DISPIDARRAYDESC* {.pure.} = objecttdescElem*: TYPEDESCcDims*: USHORTrgbounds*: array[1, SAFEARRAYBOUND]TYPEDESC_UNION1* {.pure, union.} = objectlptdesc*: ptr TYPEDESClpadesc*: ptr ARRAYDESChreftype*: HREFTYPETYPEDESC* {.pure.} = objectunion1*: TYPEDESC_UNION1vt*: VARTYPEIDLDESC* {.pure.} = objectdwReserved*: ULONG_PTRwIDLFlags*: USHORTTYPEATTR* {.pure.} = objectguid*: GUIDlcid*: LCIDdwReserved*: DWORDmemidConstructor*: MEMBERIDmemidDestructor*: MEMBERIDlpstrSchema*: LPOLESTRcbSizeInstance*: ULONGtypekind*: TYPEKINDcFuncs*: WORDcVars*: WORDcImplTypes*: WORDcbSizeVft*: WORDcbAlignment*: WORDwTypeFlags*: WORDwMajorVerNum*: WORDwMinorVerNum*: WORDtdescAlias*: TYPEDESCidldescType*: IDLDESCSAFEARRAY* {.pure.} = objectcDims*: USHORTfFeatures*: USHORTcbElements*: ULONGcLocks*: ULONGpvData*: PVOIDrgsabound*: array[1, SAFEARRAYBOUND]IRecordInfo* {.pure.} = objectlpVtbl*: ptr IRecordInfoVtblIRecordInfoVtbl* {.pure, inheritable.} = object of IUnknownVtblRecordInit*: proc(self: ptr IRecordInfo, pvNew: PVOID): HRESULT {.stdcall.}RecordClear*: proc(self: ptr IRecordInfo, pvExisting: PVOID): HRESULT {.stdcall.}RecordCopy*: proc(self: ptr IRecordInfo, pvExisting: PVOID, pvNew: PVOID): HRESULT {.stdcall.}GetGuid*: proc(self: ptr IRecordInfo, pguid: ptr GUID): HRESULT {.stdcall.}GetName*: proc(self: ptr IRecordInfo, pbstrName: ptr BSTR): HRESULT {.stdcall.}GetSize*: proc(self: ptr IRecordInfo, pcbSize: ptr ULONG): HRESULT {.stdcall.}GetTypeInfo*: proc(self: ptr IRecordInfo, ppTypeInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.}GetField*: proc(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.stdcall.}GetFieldNoCopy*: proc(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT, ppvDataCArray: ptr PVOID): HRESULT {.stdcall.}PutField*: proc(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.stdcall.}PutFieldNoCopy*: proc(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.stdcall.}GetFieldNames*: proc(self: ptr IRecordInfo, pcNames: ptr ULONG, rgBstrNames: ptr BSTR): HRESULT {.stdcall.}IsMatchingType*: proc(self: ptr IRecordInfo, pRecordInfo: ptr IRecordInfo): WINBOOL {.stdcall.}RecordCreate*: proc(self: ptr IRecordInfo): PVOID {.stdcall.}RecordCreateCopy*: proc(self: ptr IRecordInfo, pvSource: PVOID, ppvDest: ptr PVOID): HRESULT {.stdcall.}RecordDestroy*: proc(self: ptr IRecordInfo, pvRecord: PVOID): HRESULT {.stdcall.}VARIANT_UNION1_STRUCT1_UNION1_STRUCT1* {.pure.} = objectpvRecord*: PVOIDpRecInfo*: ptr IRecordInfoVARIANT_UNION1_STRUCT1_UNION1* {.pure, union.} = objectllVal*: LONGLONGlVal*: LONGbVal*: BYTEiVal*: SHORTfltVal*: FLOATdblVal*: DOUBLEboolVal*: VARIANT_BOOLscode*: SCODEcyVal*: CYdate*: DATEbstrVal*: BSTRpunkVal*: ptr IUnknownpdispVal*: ptr IDispatchparray*: ptr SAFEARRAYpbVal*: ptr BYTEpiVal*: ptr SHORTplVal*: ptr LONGpllVal*: ptr LONGLONGpfltVal*: ptr FLOATpdblVal*: ptr DOUBLEpboolVal*: ptr VARIANT_BOOLpscode*: ptr SCODEpcyVal*: ptr CYpdate*: ptr DATEpbstrVal*: ptr BSTRppunkVal*: ptr ptr IUnknownppdispVal*: ptr ptr IDispatchpparray*: ptr ptr SAFEARRAYpvarVal*: ptr VARIANTbyref*: PVOIDcVal*: CHARuiVal*: USHORTulVal*: ULONGullVal*: ULONGLONGintVal*: INTuintVal*: UINTpdecVal*: ptr DECIMALpcVal*: ptr CHARpuiVal*: ptr USHORTpulVal*: ptr ULONGpullVal*: ptr ULONGLONGpintVal*: ptr INTpuintVal*: ptr UINTstruct1*: VARIANT_UNION1_STRUCT1_UNION1_STRUCT1VARIANT_UNION1_STRUCT1* {.pure.} = objectvt*: VARTYPEwReserved1*: WORDwReserved2*: WORDwReserved3*: WORDunion1*: VARIANT_UNION1_STRUCT1_UNION1VARIANT_UNION1* {.pure, union.} = objectstruct1*: VARIANT_UNION1_STRUCT1decVal*: DECIMALVARIANT* {.pure.} = objectunion1*: VARIANT_UNION1VARIANTARG* = VARIANTPARAMDESCEX* {.pure.} = objectcBytes*: ULONGvarDefaultValue*: VARIANTARGLPPARAMDESCEX* = ptr PARAMDESCEXPARAMDESC* {.pure.} = objectpparamdescex*: LPPARAMDESCEXwParamFlags*: USHORTELEMDESC_UNION1* {.pure, union.} = objectidldesc*: IDLDESCparamdesc*: PARAMDESCELEMDESC* {.pure.} = objecttdesc*: TYPEDESCunion1*: ELEMDESC_UNION1FUNCDESC* {.pure.} = objectmemid*: MEMBERIDlprgscode*: ptr SCODElprgelemdescParam*: ptr ELEMDESCfunckind*: FUNCKINDinvkind*: INVOKEKINDcallconv*: CALLCONVcParams*: SHORTcParamsOpt*: SHORToVft*: SHORTcScodes*: SHORTelemdescFunc*: ELEMDESCwFuncFlags*: WORDVARDESC_UNION1* {.pure, union.} = objectoInst*: ULONGlpvarValue*: ptr VARIANTVARDESC* {.pure.} = objectmemid*: MEMBERIDlpstrSchema*: LPOLESTRunion1*: VARDESC_UNION1elemdescVar*: ELEMDESCwVarFlags*: WORDvarkind*: VARKINDBINDPTR* {.pure, union.} = objectlpfuncdesc*: ptr FUNCDESClpvardesc*: ptr VARDESClptcomp*: ptr ITypeCompITypeComp* {.pure.} = objectlpVtbl*: ptr ITypeCompVtblITypeCompVtbl* {.pure, inheritable.} = object of IUnknownVtblBind*: proc(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, wFlags: WORD, ppTInfo: ptr ptr ITypeInfo, pDescKind: ptr DESCKIND, pBindPtr: ptr BINDPTR): HRESULT {.stdcall.}BindType*: proc(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.}DISPPARAMS* {.pure.} = objectrgvarg*: ptr VARIANTARGrgdispidNamedArgs*: ptr DISPIDcArgs*: UINTcNamedArgs*: UINTEXCEPINFO* {.pure.} = objectwCode*: WORDwReserved*: WORDbstrSource*: BSTRbstrDescription*: BSTRbstrHelpFile*: BSTRdwHelpContext*: DWORDpvReserved*: PVOIDpfnDeferredFillIn*: proc(P1: ptr EXCEPINFO): HRESULT {.stdcall.}scode*: SCODETLIBATTR* {.pure.} = objectguid*: GUIDlcid*: LCIDsyskind*: SYSKINDwMajorVerNum*: WORDwMinorVerNum*: WORDwLibFlags*: WORDITypeLib* {.pure.} = objectlpVtbl*: ptr ITypeLibVtblITypeLibVtbl* {.pure, inheritable.} = object of IUnknownVtblGetTypeInfoCount*: proc(self: ptr ITypeLib): UINT {.stdcall.}GetTypeInfo*: proc(self: ptr ITypeLib, index: UINT, ppTInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.}GetTypeInfoType*: proc(self: ptr ITypeLib, index: UINT, pTKind: ptr TYPEKIND): HRESULT {.stdcall.}GetTypeInfoOfGuid*: proc(self: ptr ITypeLib, guid: REFGUID, ppTinfo: ptr ptr ITypeInfo): HRESULT {.stdcall.}GetLibAttr*: proc(self: ptr ITypeLib, ppTLibAttr: ptr ptr TLIBATTR): HRESULT {.stdcall.}GetTypeComp*: proc(self: ptr ITypeLib, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.}GetDocumentation*: proc(self: ptr ITypeLib, index: INT, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.stdcall.}IsName*: proc(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, pfName: ptr WINBOOL): HRESULT {.stdcall.}FindName*: proc(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, rgMemId: ptr MEMBERID, pcFound: ptr USHORT): HRESULT {.stdcall.}ReleaseTLibAttr*: proc(self: ptr ITypeLib, pTLibAttr: ptr TLIBATTR): void {.stdcall.}ITypeInfo* {.pure.} = objectlpVtbl*: ptr ITypeInfoVtblITypeInfoVtbl* {.pure, inheritable.} = object of IUnknownVtblGetTypeAttr*: proc(self: ptr ITypeInfo, ppTypeAttr: ptr ptr TYPEATTR): HRESULT {.stdcall.}GetTypeComp*: proc(self: ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.}GetFuncDesc*: proc(self: ptr ITypeInfo, index: UINT, ppFuncDesc: ptr ptr FUNCDESC): HRESULT {.stdcall.}GetVarDesc*: proc(self: ptr ITypeInfo, index: UINT, ppVarDesc: ptr ptr VARDESC): HRESULT {.stdcall.}GetNames*: proc(self: ptr ITypeInfo, memid: MEMBERID, rgBstrNames: ptr BSTR, cMaxNames: UINT, pcNames: ptr UINT): HRESULT {.stdcall.}GetRefTypeOfImplType*: proc(self: ptr ITypeInfo, index: UINT, pRefType: ptr HREFTYPE): HRESULT {.stdcall.}GetImplTypeFlags*: proc(self: ptr ITypeInfo, index: UINT, pImplTypeFlags: ptr INT): HRESULT {.stdcall.}GetIDsOfNames*: proc(self: ptr ITypeInfo, rgszNames: ptr LPOLESTR, cNames: UINT, pMemId: ptr MEMBERID): HRESULT {.stdcall.}Invoke*: proc(self: ptr ITypeInfo, pvInstance: PVOID, memid: MEMBERID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.stdcall.}GetDocumentation*: proc(self: ptr ITypeInfo, memid: MEMBERID, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.stdcall.}GetDllEntry*: proc(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, pBstrDllName: ptr BSTR, pBstrName: ptr BSTR, pwOrdinal: ptr WORD): HRESULT {.stdcall.}GetRefTypeInfo*: proc(self: ptr ITypeInfo, hRefType: HREFTYPE, ppTInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.}AddressOfMember*: proc(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, ppv: ptr PVOID): HRESULT {.stdcall.}CreateInstance*: proc(self: ptr ITypeInfo, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObj: ptr PVOID): HRESULT {.stdcall.}GetMops*: proc(self: ptr ITypeInfo, memid: MEMBERID, pBstrMops: ptr BSTR): HRESULT {.stdcall.}GetContainingTypeLib*: proc(self: ptr ITypeInfo, ppTLib: ptr ptr ITypeLib, pIndex: ptr UINT): HRESULT {.stdcall.}ReleaseTypeAttr*: proc(self: ptr ITypeInfo, pTypeAttr: ptr TYPEATTR): void {.stdcall.}ReleaseFuncDesc*: proc(self: ptr ITypeInfo, pFuncDesc: ptr FUNCDESC): void {.stdcall.}ReleaseVarDesc*: proc(self: ptr ITypeInfo, pVarDesc: ptr VARDESC): void {.stdcall.}IDispatch* {.pure.} = objectlpVtbl*: ptr IDispatchVtblIDispatchVtbl* {.pure, inheritable.} = object of IUnknownVtblGetTypeInfoCount*: proc(self: ptr IDispatch, pctinfo: ptr UINT): HRESULT {.stdcall.}GetTypeInfo*: proc(self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.}GetIDsOfNames*: proc(self: ptr IDispatch, riid: REFIID, rgszNames: ptr LPOLESTR, cNames: UINT, lcid: LCID, rgDispId: ptr DISPID): HRESULT {.stdcall.}Invoke*: proc(self: ptr IDispatch, dispIdMember: DISPID, riid: REFIID, lcid: LCID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.stdcall.}IParseDisplayName* {.pure.} = objectlpVtbl*: ptr IParseDisplayNameVtblIParseDisplayNameVtbl* {.pure, inheritable.} = object of IUnknownVtblParseDisplayName*: proc(self: ptr IParseDisplayName, pbc: ptr IBindCtx, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.stdcall.}IOleContainer* {.pure.} = objectlpVtbl*: ptr IOleContainerVtblIOleContainerVtbl* {.pure, inheritable.} = object of IParseDisplayNameVtblEnumObjects*: proc(self: ptr IOleContainer, grfFlags: DWORD, ppenum: ptr ptr IEnumUnknown): HRESULT {.stdcall.}LockContainer*: proc(self: ptr IOleContainer, fLock: WINBOOL): HRESULT {.stdcall.}IOleClientSite* {.pure.} = objectlpVtbl*: ptr IOleClientSiteVtblIOleClientSiteVtbl* {.pure, inheritable.} = object of IUnknownVtblSaveObject*: proc(self: ptr IOleClientSite): HRESULT {.stdcall.}GetMoniker*: proc(self: ptr IOleClientSite, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.}GetContainer*: proc(self: ptr IOleClientSite, ppContainer: ptr ptr IOleContainer): HRESULT {.stdcall.}ShowObject*: proc(self: ptr IOleClientSite): HRESULT {.stdcall.}OnShowWindow*: proc(self: ptr IOleClientSite, fShow: WINBOOL): HRESULT {.stdcall.}RequestNewObjectLayout*: proc(self: ptr IOleClientSite): HRESULT {.stdcall.}OLEVERB* {.pure.} = objectlVerb*: LONGlpszVerbName*: LPOLESTRfuFlags*: DWORDgrfAttribs*: DWORDLPOLEVERB* = ptr OLEVERBIEnumOLEVERB* {.pure.} = objectlpVtbl*: ptr IEnumOLEVERBVtblIEnumOLEVERBVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumOLEVERB, celt: ULONG, rgelt: LPOLEVERB, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumOLEVERB, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumOLEVERB): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumOLEVERB, ppenum: ptr ptr IEnumOLEVERB): HRESULT {.stdcall.}IOleObject* {.pure.} = objectlpVtbl*: ptr IOleObjectVtblIOleObjectVtbl* {.pure, inheritable.} = object of IUnknownVtblSetClientSite*: proc(self: ptr IOleObject, pClientSite: ptr IOleClientSite): HRESULT {.stdcall.}GetClientSite*: proc(self: ptr IOleObject, ppClientSite: ptr ptr IOleClientSite): HRESULT {.stdcall.}SetHostNames*: proc(self: ptr IOleObject, szContainerApp: LPCOLESTR, szContainerObj: LPCOLESTR): HRESULT {.stdcall.}Close*: proc(self: ptr IOleObject, dwSaveOption: DWORD): HRESULT {.stdcall.}SetMoniker*: proc(self: ptr IOleObject, dwWhichMoniker: DWORD, pmk: ptr IMoniker): HRESULT {.stdcall.}GetMoniker*: proc(self: ptr IOleObject, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.}InitFromData*: proc(self: ptr IOleObject, pDataObject: ptr IDataObject, fCreation: WINBOOL, dwReserved: DWORD): HRESULT {.stdcall.}GetClipboardData*: proc(self: ptr IOleObject, dwReserved: DWORD, ppDataObject: ptr ptr IDataObject): HRESULT {.stdcall.}DoVerb*: proc(self: ptr IOleObject, iVerb: LONG, lpmsg: LPMSG, pActiveSite: ptr IOleClientSite, lindex: LONG, hwndParent: HWND, lprcPosRect: LPCRECT): HRESULT {.stdcall.}EnumVerbs*: proc(self: ptr IOleObject, ppEnumOleVerb: ptr ptr IEnumOLEVERB): HRESULT {.stdcall.}Update*: proc(self: ptr IOleObject): HRESULT {.stdcall.}IsUpToDate*: proc(self: ptr IOleObject): HRESULT {.stdcall.}GetUserClassID*: proc(self: ptr IOleObject, pClsid: ptr CLSID): HRESULT {.stdcall.}GetUserType*: proc(self: ptr IOleObject, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR): HRESULT {.stdcall.}SetExtent*: proc(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.stdcall.}GetExtent*: proc(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.stdcall.}Advise*: proc(self: ptr IOleObject, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.stdcall.}Unadvise*: proc(self: ptr IOleObject, dwConnection: DWORD): HRESULT {.stdcall.}EnumAdvise*: proc(self: ptr IOleObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.}GetMiscStatus*: proc(self: ptr IOleObject, dwAspect: DWORD, pdwStatus: ptr DWORD): HRESULT {.stdcall.}SetColorScheme*: proc(self: ptr IOleObject, pLogpal: ptr LOGPALETTE): HRESULT {.stdcall.}IOleWindow* {.pure.} = objectlpVtbl*: ptr IOleWindowVtblIOleWindowVtbl* {.pure, inheritable.} = object of IUnknownVtblGetWindow*: proc(self: ptr IOleWindow, phwnd: ptr HWND): HRESULT {.stdcall.}ContextSensitiveHelp*: proc(self: ptr IOleWindow, fEnterMode: WINBOOL): HRESULT {.stdcall.}LPCBORDERWIDTHS* = LPCRECTIOleInPlaceActiveObject* {.pure.} = objectlpVtbl*: ptr IOleInPlaceActiveObjectVtblIOleInPlaceActiveObjectVtbl* {.pure, inheritable.} = object of IOleWindowVtblTranslateAccelerator*: proc(self: ptr IOleInPlaceActiveObject, lpmsg: LPMSG): HRESULT {.stdcall.}OnFrameWindowActivate*: proc(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.stdcall.}OnDocWindowActivate*: proc(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.stdcall.}ResizeBorder*: proc(self: ptr IOleInPlaceActiveObject, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fFrameWindow: WINBOOL): HRESULT {.stdcall.}EnableModeless*: proc(self: ptr IOleInPlaceActiveObject, fEnable: WINBOOL): HRESULT {.stdcall.}IOleInPlaceUIWindow* {.pure.} = objectlpVtbl*: ptr IOleInPlaceUIWindowVtblIOleInPlaceUIWindowVtbl* {.pure, inheritable.} = object of IOleWindowVtblGetBorder*: proc(self: ptr IOleInPlaceUIWindow, lprectBorder: LPRECT): HRESULT {.stdcall.}RequestBorderSpace*: proc(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.stdcall.}SetBorderSpace*: proc(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.stdcall.}SetActiveObject*: proc(self: ptr IOleInPlaceUIWindow, pActiveObject: ptr IOleInPlaceActiveObject, pszObjName: LPCOLESTR): HRESULT {.stdcall.}OLEMENUGROUPWIDTHS* {.pure.} = objectwidth*: array[6, LONG]LPOLEMENUGROUPWIDTHS* = ptr OLEMENUGROUPWIDTHSHOLEMENU* = HGLOBALIOleInPlaceFrame* {.pure.} = objectlpVtbl*: ptr IOleInPlaceFrameVtblIOleInPlaceFrameVtbl* {.pure, inheritable.} = object of IOleInPlaceUIWindowVtblInsertMenus*: proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HRESULT {.stdcall.}SetMenu*: proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, holemenu: HOLEMENU, hwndActiveObject: HWND): HRESULT {.stdcall.}RemoveMenus*: proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU): HRESULT {.stdcall.}SetStatusText*: proc(self: ptr IOleInPlaceFrame, pszStatusText: LPCOLESTR): HRESULT {.stdcall.}EnableModeless*: proc(self: ptr IOleInPlaceFrame, fEnable: WINBOOL): HRESULT {.stdcall.}TranslateAccelerator*: proc(self: ptr IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD): HRESULT {.stdcall.}IOleInPlaceObject* {.pure.} = objectlpVtbl*: ptr IOleInPlaceObjectVtblIOleInPlaceObjectVtbl* {.pure, inheritable.} = object of IOleWindowVtblInPlaceDeactivate*: proc(self: ptr IOleInPlaceObject): HRESULT {.stdcall.}UIDeactivate*: proc(self: ptr IOleInPlaceObject): HRESULT {.stdcall.}SetObjectRects*: proc(self: ptr IOleInPlaceObject, lprcPosRect: LPCRECT, lprcClipRect: LPCRECT): HRESULT {.stdcall.}ReactivateAndUndo*: proc(self: ptr IOleInPlaceObject): HRESULT {.stdcall.}OLEINPLACEFRAMEINFO* {.pure.} = objectcb*: UINTfMDIApp*: WINBOOLhwndFrame*: HWNDhaccel*: HACCELcAccelEntries*: UINTLPOLEINPLACEFRAMEINFO* = ptr OLEINPLACEFRAMEINFOIOleInPlaceSite* {.pure.} = objectlpVtbl*: ptr IOleInPlaceSiteVtblIOleInPlaceSiteVtbl* {.pure, inheritable.} = object of IOleWindowVtblCanInPlaceActivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.}OnInPlaceActivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.}OnUIActivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.}GetWindowContext*: proc(self: ptr IOleInPlaceSite, ppFrame: ptr ptr IOleInPlaceFrame, ppDoc: ptr ptr IOleInPlaceUIWindow, lprcPosRect: LPRECT, lprcClipRect: LPRECT, lpFrameInfo: LPOLEINPLACEFRAMEINFO): HRESULT {.stdcall.}Scroll*: proc(self: ptr IOleInPlaceSite, scrollExtant: SIZE): HRESULT {.stdcall.}OnUIDeactivate*: proc(self: ptr IOleInPlaceSite, fUndoable: WINBOOL): HRESULT {.stdcall.}OnInPlaceDeactivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.}DiscardUndoState*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.}DeactivateAndUndo*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.}OnPosRectChange*: proc(self: ptr IOleInPlaceSite, lprcPosRect: LPCRECT): HRESULT {.stdcall.}IDropSource* {.pure.} = objectlpVtbl*: ptr IDropSourceVtblIDropSourceVtbl* {.pure, inheritable.} = object of IUnknownVtblQueryContinueDrag*: proc(self: ptr IDropSource, fEscapePressed: WINBOOL, grfKeyState: DWORD): HRESULT {.stdcall.}GiveFeedback*: proc(self: ptr IDropSource, dwEffect: DWORD): HRESULT {.stdcall.}LPDROPSOURCE* = ptr IDropSourceIDropTarget* {.pure.} = objectlpVtbl*: ptr IDropTargetVtblIDropTargetVtbl* {.pure, inheritable.} = object of IUnknownVtblDragEnter*: proc(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.stdcall.}DragOver*: proc(self: ptr IDropTarget, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.stdcall.}DragLeave*: proc(self: ptr IDropTarget): HRESULT {.stdcall.}Drop*: proc(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.stdcall.}LPDROPTARGET* = ptr IDropTargetCONNECTDATA* {.pure.} = objectpUnk*: ptr IUnknowndwCookie*: DWORDLPCONNECTDATA* = ptr CONNECTDATAIEnumConnections* {.pure.} = objectlpVtbl*: ptr IEnumConnectionsVtblIEnumConnectionsVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumConnections, cConnections: ULONG, rgcd: LPCONNECTDATA, pcFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumConnections, cConnections: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumConnections): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumConnections, ppEnum: ptr ptr IEnumConnections): HRESULT {.stdcall.}LPCONNECTIONPOINT* = ptr IConnectionPointIEnumConnectionPoints* {.pure.} = objectlpVtbl*: ptr IEnumConnectionPointsVtblIEnumConnectionPointsVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumConnectionPoints, cConnections: ULONG, ppCP: ptr LPCONNECTIONPOINT, pcFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumConnectionPoints, cConnections: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumConnectionPoints): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumConnectionPoints, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.stdcall.}IConnectionPointContainer* {.pure.} = objectlpVtbl*: ptr IConnectionPointContainerVtblIConnectionPointContainerVtbl* {.pure, inheritable.} = object of IUnknownVtblEnumConnectionPoints*: proc(self: ptr IConnectionPointContainer, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.stdcall.}FindConnectionPoint*: proc(self: ptr IConnectionPointContainer, riid: REFIID, ppCP: ptr ptr IConnectionPoint): HRESULT {.stdcall.}IConnectionPoint* {.pure.} = objectlpVtbl*: ptr IConnectionPointVtblIConnectionPointVtbl* {.pure, inheritable.} = object of IUnknownVtblGetConnectionInterface*: proc(self: ptr IConnectionPoint, pIID: ptr IID): HRESULT {.stdcall.}GetConnectionPointContainer*: proc(self: ptr IConnectionPoint, ppCPC: ptr ptr IConnectionPointContainer): HRESULT {.stdcall.}Advise*: proc(self: ptr IConnectionPoint, pUnkSink: ptr IUnknown, pdwCookie: ptr DWORD): HRESULT {.stdcall.}Unadvise*: proc(self: ptr IConnectionPoint, dwCookie: DWORD): HRESULT {.stdcall.}EnumConnections*: proc(self: ptr IConnectionPoint, ppEnum: ptr ptr IEnumConnections): HRESULT {.stdcall.}IOleInPlaceSiteEx* {.pure.} = objectlpVtbl*: ptr IOleInPlaceSiteExVtblIOleInPlaceSiteExVtbl* {.pure, inheritable.} = object of IOleInPlaceSiteVtblOnInPlaceActivateEx*: proc(self: ptr IOleInPlaceSiteEx, pfNoRedraw: ptr WINBOOL, dwFlags: DWORD): HRESULT {.stdcall.}OnInPlaceDeactivateEx*: proc(self: ptr IOleInPlaceSiteEx, fNoRedraw: WINBOOL): HRESULT {.stdcall.}RequestUIActivate*: proc(self: ptr IOleInPlaceSiteEx): HRESULT {.stdcall.}IObjectWithSite* {.pure.} = objectlpVtbl*: ptr IObjectWithSiteVtblIObjectWithSiteVtbl* {.pure, inheritable.} = object of IUnknownVtblSetSite*: proc(self: ptr IObjectWithSite, pUnkSite: ptr IUnknown): HRESULT {.stdcall.}GetSite*: proc(self: ptr IObjectWithSite, riid: REFIID, ppvSite: ptr pointer): HRESULT {.stdcall.}SHITEMID* {.pure, packed.} = objectcb*: USHORTabID*: array[1, BYTE]ITEMIDLIST* {.pure, packed.} = objectmkid*: SHITEMIDITEMIDLIST_RELATIVE* = ITEMIDLISTITEMID_CHILD* = ITEMIDLISTITEMIDLIST_ABSOLUTE* = ITEMIDLISTPIDLIST_ABSOLUTE* = ptr ITEMIDLIST_ABSOLUTEPCIDLIST_ABSOLUTE* = ptr ITEMIDLIST_ABSOLUTEPIDLIST_RELATIVE* = ptr ITEMIDLIST_RELATIVEPCUITEMID_CHILD* = ptr ITEMID_CHILDPCUITEMID_CHILD_ARRAY* = ptr PCUITEMID_CHILDPROPERTYKEY* {.pure.} = objectfmtid*: GUIDpid*: DWORDOLECMD* {.pure.} = objectcmdID*: ULONGcmdf*: DWORDOLECMDTEXT* {.pure.} = objectcmdtextf*: DWORDcwActual*: ULONGcwBuf*: ULONGrgwz*: array[1, uint16]IOleCommandTarget* {.pure.} = objectlpVtbl*: ptr IOleCommandTargetVtblIOleCommandTargetVtbl* {.pure, inheritable.} = object of IUnknownVtblQueryStatus*: proc(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, cCmds: ULONG, prgCmds: ptr OLECMD, pCmdText: ptr OLECMDTEXT): HRESULT {.stdcall.}Exec*: proc(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, nCmdID: DWORD, nCmdexecopt: DWORD, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.stdcall.}REFPROPERTYKEY* = ptr PROPERTYKEYconstCLSCTX_INPROC_SERVER* = 0x1CLSCTX_INPROC_HANDLER* = 0x2CLSCTX_LOCAL_SERVER* = 0x4CLSCTX_REMOTE_SERVER* = 0x10CLSCTX_ALL* = CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER or CLSCTX_REMOTE_SERVERDVASPECT_CONTENT* = 1STATFLAG_NONAME* = 1VARIANT_TRUE* = VARIANT_BOOL(-1)VARIANT_FALSE* = VARIANT_BOOL 0VT_I4* = 3VT_BSTR* = 8VT_VARIANT* = 12IID_IUnknown* = DEFINE_GUID("00000000-0000-0000-c000-000000000046")IID_IEnumString* = DEFINE_GUID("00000101-0000-0000-c000-000000000046")STREAM_SEEK_SET* = 0TYMED_HGLOBAL* = 1TYMED_GDI* = 16DATADIR_GET* = 1IID_IDataObject* = DEFINE_GUID("0000010e-0000-0000-c000-000000000046")DISPID_UNKNOWN* = -1IID_IDispatch* = DEFINE_GUID("00020400-0000-0000-c000-000000000046")OLEIVERB_HIDE* = -3OLEIVERB_INPLACEACTIVATE* = -5IID_IOleClientSite* = DEFINE_GUID("00000118-0000-0000-c000-000000000046")OLECLOSE_NOSAVE* = 1IID_IOleObject* = DEFINE_GUID("00000112-0000-0000-c000-000000000046")IID_IOleWindow* = DEFINE_GUID("00000114-0000-0000-c000-000000000046")IID_IOleInPlaceActiveObject* = DEFINE_GUID("00000117-0000-0000-c000-000000000046")IID_IOleInPlaceFrame* = DEFINE_GUID("00000116-0000-0000-c000-000000000046")IID_IOleInPlaceObject* = DEFINE_GUID("00000113-0000-0000-c000-000000000046")IID_IOleInPlaceSite* = DEFINE_GUID("00000119-0000-0000-c000-000000000046")DROPEFFECT_NONE* = 0DROPEFFECT_COPY* = 1DROPEFFECT_MOVE* = 2DROPEFFECT_LINK* = 4IID_IConnectionPointContainer* = DEFINE_GUID("b196b284-bab4-101a-b69c-00aa00341d07")IID_IOleInPlaceSiteEx* = DEFINE_GUID("9c2cad80-3424-11cf-b670-00aa004cd6d8")IID_IObjectWithSite* = DEFINE_GUID("fc4801a3-2ba9-11cf-a229-00aa003d7352")navNoHistory* = 0x2DIID_DWebBrowserEvents* = DEFINE_GUID("eab22ac2-30c1-11cf-a7eb-0000c05bae0b")CSC_NAVIGATEFORWARD* = 1CSC_NAVIGATEBACK* = 2IID_IWebBrowser2* = DEFINE_GUID("d30c1661-cdaf-11d0-8a3e-00c04fc9e26e")DIID_DWebBrowserEvents2* = DEFINE_GUID("34a715a0-6587-11d0-924a-0020afc7ac4d")CLSID_WebBrowser* = DEFINE_GUID("8856f961-340a-11d0-a96b-00c04fd705a2")DISPID_STATUSTEXTCHANGE* = 102DISPID_COMMANDSTATECHANGE* = 105DISPID_PROGRESSCHANGE* = 108DISPID_TITLECHANGE* = 113DISPID_BEFORENAVIGATE2* = 250DISPID_NEWWINDOW2* = 251DISPID_NAVIGATECOMPLETE2* = 252DISPID_NAVIGATEERROR* = 271DISPID_NEWWINDOW3* = 273typeCOMDLG_FILTERSPEC* {.pure.} = objectpszName*: LPCWSTRpszSpec*: LPCWSTRIWebBrowser* {.pure.} = objectlpVtbl*: ptr IWebBrowserVtblIWebBrowserVtbl* {.pure, inheritable.} = object of IDispatchVtblGoBack*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.}GoForward*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.}GoHome*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.}GoSearch*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.}Navigate*: proc(self: ptr IWebBrowser, URL: BSTR, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.stdcall.}Refresh*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.}Refresh2*: proc(self: ptr IWebBrowser, Level: ptr VARIANT): HRESULT {.stdcall.}Stop*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.}get_Application*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.}get_Parent*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.}get_Container*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.}get_Document*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.}get_TopLevelContainer*: proc(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_Type*: proc(self: ptr IWebBrowser, Type: ptr BSTR): HRESULT {.stdcall.}get_Left*: proc(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.stdcall.}put_Left*: proc(self: ptr IWebBrowser, Left: LONG): HRESULT {.stdcall.}get_Top*: proc(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.stdcall.}put_Top*: proc(self: ptr IWebBrowser, Top: LONG): HRESULT {.stdcall.}get_Width*: proc(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.stdcall.}put_Width*: proc(self: ptr IWebBrowser, Width: LONG): HRESULT {.stdcall.}get_Height*: proc(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.stdcall.}put_Height*: proc(self: ptr IWebBrowser, Height: LONG): HRESULT {.stdcall.}get_LocationName*: proc(self: ptr IWebBrowser, LocationName: ptr BSTR): HRESULT {.stdcall.}get_LocationURL*: proc(self: ptr IWebBrowser, LocationURL: ptr BSTR): HRESULT {.stdcall.}get_Busy*: proc(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.}IWebBrowserApp* {.pure.} = objectlpVtbl*: ptr IWebBrowserAppVtblIWebBrowserAppVtbl* {.pure, inheritable.} = object of IWebBrowserVtblQuit*: proc(self: ptr IWebBrowserApp): HRESULT {.stdcall.}ClientToWindow*: proc(self: ptr IWebBrowserApp, pcx: ptr int32, pcy: ptr int32): HRESULT {.stdcall.}PutProperty*: proc(self: ptr IWebBrowserApp, Property: BSTR, vtValue: VARIANT): HRESULT {.stdcall.}GetProperty*: proc(self: ptr IWebBrowserApp, Property: BSTR, pvtValue: ptr VARIANT): HRESULT {.stdcall.}get_Name*: proc(self: ptr IWebBrowserApp, Name: ptr BSTR): HRESULT {.stdcall.}get_HWND*: proc(self: ptr IWebBrowserApp, pHWND: ptr SHANDLE_PTR): HRESULT {.stdcall.}get_FullName*: proc(self: ptr IWebBrowserApp, FullName: ptr BSTR): HRESULT {.stdcall.}get_Path*: proc(self: ptr IWebBrowserApp, Path: ptr BSTR): HRESULT {.stdcall.}get_Visible*: proc(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_Visible*: proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.}get_StatusBar*: proc(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_StatusBar*: proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.}get_StatusText*: proc(self: ptr IWebBrowserApp, StatusText: ptr BSTR): HRESULT {.stdcall.}put_StatusText*: proc(self: ptr IWebBrowserApp, StatusText: BSTR): HRESULT {.stdcall.}get_ToolBar*: proc(self: ptr IWebBrowserApp, Value: ptr int32): HRESULT {.stdcall.}put_ToolBar*: proc(self: ptr IWebBrowserApp, Value: int32): HRESULT {.stdcall.}get_MenuBar*: proc(self: ptr IWebBrowserApp, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_MenuBar*: proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.}get_FullScreen*: proc(self: ptr IWebBrowserApp, pbFullScreen: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_FullScreen*: proc(self: ptr IWebBrowserApp, bFullScreen: VARIANT_BOOL): HRESULT {.stdcall.}IWebBrowser2* {.pure.} = objectlpVtbl*: ptr IWebBrowser2VtblIWebBrowser2Vtbl* {.pure, inheritable.} = object of IWebBrowserAppVtblNavigate2*: proc(self: ptr IWebBrowser2, URL: ptr VARIANT, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.stdcall.}QueryStatusWB*: proc(self: ptr IWebBrowser2, cmdID: OLECMDID, pcmdf: ptr OLECMDF): HRESULT {.stdcall.}ExecWB*: proc(self: ptr IWebBrowser2, cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.stdcall.}ShowBrowserBar*: proc(self: ptr IWebBrowser2, pvaClsid: ptr VARIANT, pvarShow: ptr VARIANT, pvarSize: ptr VARIANT): HRESULT {.stdcall.}get_ReadyState*: proc(self: ptr IWebBrowser2, plReadyState: ptr READYSTATE): HRESULT {.stdcall.}get_Offline*: proc(self: ptr IWebBrowser2, pbOffline: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_Offline*: proc(self: ptr IWebBrowser2, bOffline: VARIANT_BOOL): HRESULT {.stdcall.}get_Silent*: proc(self: ptr IWebBrowser2, pbSilent: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_Silent*: proc(self: ptr IWebBrowser2, bSilent: VARIANT_BOOL): HRESULT {.stdcall.}get_RegisterAsBrowser*: proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_RegisterAsBrowser*: proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.}get_RegisterAsDropTarget*: proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_RegisterAsDropTarget*: proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.}get_TheaterMode*: proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_TheaterMode*: proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.}get_AddressBar*: proc(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_AddressBar*: proc(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.stdcall.}get_Resizable*: proc(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_Resizable*: proc(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.stdcall.}proc SysAllocString*(P1: ptr OLECHAR): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.}proc SysFreeString*(P1: BSTR): void {.winapi, stdcall, dynlib: "oleaut32", importc.}proc SafeArrayDestroy*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.}proc SafeArrayAccessData*(psa: ptr SAFEARRAY, ppvData: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.}proc SafeArrayUnaccessData*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.}proc SafeArrayCreateVector*(vt: VARTYPE, lLbound: LONG, cElements: ULONG): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.}proc VariantClear*(pvarg: ptr VARIANTARG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.}proc OleInitialize*(pvReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc OleSetContainedObject*(pUnknown: LPUNKNOWN, fContained: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc RegisterDragDrop*(hwnd: HWND, pDropTarget: LPDROPTARGET): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc RevokeDragDrop*(hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc DoDragDrop*(pDataObj: LPDATAOBJECT, pDropSource: LPDROPSOURCE, dwOKEffects: DWORD, pdwEffect: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc OleSetClipboard*(pDataObj: LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc OleGetClipboard*(ppDataObj: ptr LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc OleFlushClipboard*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc OleIsCurrentClipboard*(pDataObj: LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc ReleaseStgMedium*(P1: LPSTGMEDIUM): void {.winapi, stdcall, dynlib: "ole32", importc.}proc CoDisconnectObject*(pUnk: LPUNKNOWN, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc CoCreateInstance*(rclsid: REFCLSID, pUnkOuter: LPUNKNOWN, dwClsContext: DWORD, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.}proc CoTaskMemAlloc*(cb: SIZE_T): LPVOID {.winapi, stdcall, dynlib: "ole32", importc.}proc CoTaskMemFree*(pv: LPVOID): void {.winapi, stdcall, dynlib: "ole32", importc.}proc `Lo=`*(self: var CY, x: int32) {.inline.} = self.struct1.Lo = xproc Lo*(self: CY): int32 {.inline.} = self.struct1.Loproc Lo*(self: var CY): var int32 {.inline.} = self.struct1.Loproc `Hi=`*(self: var CY, x: int32) {.inline.} = self.struct1.Hi = xproc Hi*(self: CY): int32 {.inline.} = self.struct1.Hiproc Hi*(self: var CY): var int32 {.inline.} = self.struct1.Hiproc `scale=`*(self: var DECIMAL, x: BYTE) {.inline.} = self.union1.struct1.scale = xproc scale*(self: DECIMAL): BYTE {.inline.} = self.union1.struct1.scaleproc scale*(self: var DECIMAL): var BYTE {.inline.} = self.union1.struct1.scaleproc `sign=`*(self: var DECIMAL, x: BYTE) {.inline.} = self.union1.struct1.sign = xproc sign*(self: DECIMAL): BYTE {.inline.} = self.union1.struct1.signproc sign*(self: var DECIMAL): var BYTE {.inline.} = self.union1.struct1.signproc `signscale=`*(self: var DECIMAL, x: USHORT) {.inline.} = self.union1.signscale = xproc signscale*(self: DECIMAL): USHORT {.inline.} = self.union1.signscaleproc signscale*(self: var DECIMAL): var USHORT {.inline.} = self.union1.signscaleproc `Lo32=`*(self: var DECIMAL, x: ULONG) {.inline.} = self.union2.struct1.Lo32 = xproc Lo32*(self: DECIMAL): ULONG {.inline.} = self.union2.struct1.Lo32proc Lo32*(self: var DECIMAL): var ULONG {.inline.} = self.union2.struct1.Lo32proc `Mid32=`*(self: var DECIMAL, x: ULONG) {.inline.} = self.union2.struct1.Mid32 = xproc Mid32*(self: DECIMAL): ULONG {.inline.} = self.union2.struct1.Mid32proc Mid32*(self: var DECIMAL): var ULONG {.inline.} = self.union2.struct1.Mid32proc `Lo64=`*(self: var DECIMAL, x: ULONGLONG) {.inline.} = self.union2.Lo64 = xproc Lo64*(self: DECIMAL): ULONGLONG {.inline.} = self.union2.Lo64proc Lo64*(self: var DECIMAL): var ULONGLONG {.inline.} = self.union2.Lo64proc `vt=`*(self: var VARIANT, x: VARTYPE) {.inline.} = self.union1.struct1.vt = xproc vt*(self: VARIANT): VARTYPE {.inline.} = self.union1.struct1.vtproc vt*(self: var VARIANT): var VARTYPE {.inline.} = self.union1.struct1.vtproc `wReserved1=`*(self: var VARIANT, x: WORD) {.inline.} = self.union1.struct1.wReserved1 = xproc wReserved1*(self: VARIANT): WORD {.inline.} = self.union1.struct1.wReserved1proc wReserved1*(self: var VARIANT): var WORD {.inline.} = self.union1.struct1.wReserved1proc `wReserved2=`*(self: var VARIANT, x: WORD) {.inline.} = self.union1.struct1.wReserved2 = xproc wReserved2*(self: VARIANT): WORD {.inline.} = self.union1.struct1.wReserved2proc wReserved2*(self: var VARIANT): var WORD {.inline.} = self.union1.struct1.wReserved2proc `wReserved3=`*(self: var VARIANT, x: WORD) {.inline.} = self.union1.struct1.wReserved3 = xproc wReserved3*(self: VARIANT): WORD {.inline.} = self.union1.struct1.wReserved3proc wReserved3*(self: var VARIANT): var WORD {.inline.} = self.union1.struct1.wReserved3proc `llVal=`*(self: var VARIANT, x: LONGLONG) {.inline.} = self.union1.struct1.union1.llVal = xproc llVal*(self: VARIANT): LONGLONG {.inline.} = self.union1.struct1.union1.llValproc llVal*(self: var VARIANT): var LONGLONG {.inline.} = self.union1.struct1.union1.llValproc `lVal=`*(self: var VARIANT, x: LONG) {.inline.} = self.union1.struct1.union1.lVal = xproc lVal*(self: VARIANT): LONG {.inline.} = self.union1.struct1.union1.lValproc lVal*(self: var VARIANT): var LONG {.inline.} = self.union1.struct1.union1.lValproc `bVal=`*(self: var VARIANT, x: BYTE) {.inline.} = self.union1.struct1.union1.bVal = xproc bVal*(self: VARIANT): BYTE {.inline.} = self.union1.struct1.union1.bValproc bVal*(self: var VARIANT): var BYTE {.inline.} = self.union1.struct1.union1.bValproc `iVal=`*(self: var VARIANT, x: SHORT) {.inline.} = self.union1.struct1.union1.iVal = xproc iVal*(self: VARIANT): SHORT {.inline.} = self.union1.struct1.union1.iValproc iVal*(self: var VARIANT): var SHORT {.inline.} = self.union1.struct1.union1.iValproc `fltVal=`*(self: var VARIANT, x: FLOAT) {.inline.} = self.union1.struct1.union1.fltVal = xproc fltVal*(self: VARIANT): FLOAT {.inline.} = self.union1.struct1.union1.fltValproc fltVal*(self: var VARIANT): var FLOAT {.inline.} = self.union1.struct1.union1.fltValproc `dblVal=`*(self: var VARIANT, x: DOUBLE) {.inline.} = self.union1.struct1.union1.dblVal = xproc dblVal*(self: VARIANT): DOUBLE {.inline.} = self.union1.struct1.union1.dblValproc dblVal*(self: var VARIANT): var DOUBLE {.inline.} = self.union1.struct1.union1.dblValproc `boolVal=`*(self: var VARIANT, x: VARIANT_BOOL) {.inline.} = self.union1.struct1.union1.boolVal = xproc boolVal*(self: VARIANT): VARIANT_BOOL {.inline.} = self.union1.struct1.union1.boolValproc boolVal*(self: var VARIANT): var VARIANT_BOOL {.inline.} = self.union1.struct1.union1.boolValproc `scode=`*(self: var VARIANT, x: SCODE) {.inline.} = self.union1.struct1.union1.scode = xproc scode*(self: VARIANT): SCODE {.inline.} = self.union1.struct1.union1.scodeproc scode*(self: var VARIANT): var SCODE {.inline.} = self.union1.struct1.union1.scodeproc `cyVal=`*(self: var VARIANT, x: CY) {.inline.} = self.union1.struct1.union1.cyVal = xproc cyVal*(self: VARIANT): CY {.inline.} = self.union1.struct1.union1.cyValproc cyVal*(self: var VARIANT): var CY {.inline.} = self.union1.struct1.union1.cyValproc `date=`*(self: var VARIANT, x: DATE) {.inline.} = self.union1.struct1.union1.date = xproc date*(self: VARIANT): DATE {.inline.} = self.union1.struct1.union1.dateproc date*(self: var VARIANT): var DATE {.inline.} = self.union1.struct1.union1.dateproc `bstrVal=`*(self: var VARIANT, x: BSTR) {.inline.} = self.union1.struct1.union1.bstrVal = xproc bstrVal*(self: VARIANT): BSTR {.inline.} = self.union1.struct1.union1.bstrValproc bstrVal*(self: var VARIANT): var BSTR {.inline.} = self.union1.struct1.union1.bstrValproc `punkVal=`*(self: var VARIANT, x: ptr IUnknown) {.inline.} = self.union1.struct1.union1.punkVal = xproc punkVal*(self: VARIANT): ptr IUnknown {.inline.} = self.union1.struct1.union1.punkValproc punkVal*(self: var VARIANT): var ptr IUnknown {.inline.} = self.union1.struct1.union1.punkValproc `pdispVal=`*(self: var VARIANT, x: ptr IDispatch) {.inline.} = self.union1.struct1.union1.pdispVal = xproc pdispVal*(self: VARIANT): ptr IDispatch {.inline.} = self.union1.struct1.union1.pdispValproc pdispVal*(self: var VARIANT): var ptr IDispatch {.inline.} = self.union1.struct1.union1.pdispValproc `parray=`*(self: var VARIANT, x: ptr SAFEARRAY) {.inline.} = self.union1.struct1.union1.parray = xproc parray*(self: VARIANT): ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.parrayproc parray*(self: var VARIANT): var ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.parrayproc `pbVal=`*(self: var VARIANT, x: ptr BYTE) {.inline.} = self.union1.struct1.union1.pbVal = xproc pbVal*(self: VARIANT): ptr BYTE {.inline.} = self.union1.struct1.union1.pbValproc pbVal*(self: var VARIANT): var ptr BYTE {.inline.} = self.union1.struct1.union1.pbValproc `piVal=`*(self: var VARIANT, x: ptr SHORT) {.inline.} = self.union1.struct1.union1.piVal = xproc piVal*(self: VARIANT): ptr SHORT {.inline.} = self.union1.struct1.union1.piValproc piVal*(self: var VARIANT): var ptr SHORT {.inline.} = self.union1.struct1.union1.piValproc `plVal=`*(self: var VARIANT, x: ptr LONG) {.inline.} = self.union1.struct1.union1.plVal = xproc plVal*(self: VARIANT): ptr LONG {.inline.} = self.union1.struct1.union1.plValproc plVal*(self: var VARIANT): var ptr LONG {.inline.} = self.union1.struct1.union1.plValproc `pllVal=`*(self: var VARIANT, x: ptr LONGLONG) {.inline.} = self.union1.struct1.union1.pllVal = xproc pllVal*(self: VARIANT): ptr LONGLONG {.inline.} = self.union1.struct1.union1.pllValproc pllVal*(self: var VARIANT): var ptr LONGLONG {.inline.} = self.union1.struct1.union1.pllValproc `pfltVal=`*(self: var VARIANT, x: ptr FLOAT) {.inline.} = self.union1.struct1.union1.pfltVal = xproc pfltVal*(self: VARIANT): ptr FLOAT {.inline.} = self.union1.struct1.union1.pfltValproc pfltVal*(self: var VARIANT): var ptr FLOAT {.inline.} = self.union1.struct1.union1.pfltValproc `pdblVal=`*(self: var VARIANT, x: ptr DOUBLE) {.inline.} = self.union1.struct1.union1.pdblVal = xproc pdblVal*(self: VARIANT): ptr DOUBLE {.inline.} = self.union1.struct1.union1.pdblValproc pdblVal*(self: var VARIANT): var ptr DOUBLE {.inline.} = self.union1.struct1.union1.pdblValproc `pboolVal=`*(self: var VARIANT, x: ptr VARIANT_BOOL) {.inline.} = self.union1.struct1.union1.pboolVal = xproc pboolVal*(self: VARIANT): ptr VARIANT_BOOL {.inline.} = self.union1.struct1.union1.pboolValproc pboolVal*(self: var VARIANT): var ptr VARIANT_BOOL {.inline.} = self.union1.struct1.union1.pboolValproc `pscode=`*(self: var VARIANT, x: ptr SCODE) {.inline.} = self.union1.struct1.union1.pscode = xproc pscode*(self: VARIANT): ptr SCODE {.inline.} = self.union1.struct1.union1.pscodeproc pscode*(self: var VARIANT): var ptr SCODE {.inline.} = self.union1.struct1.union1.pscodeproc `pcyVal=`*(self: var VARIANT, x: ptr CY) {.inline.} = self.union1.struct1.union1.pcyVal = xproc pcyVal*(self: VARIANT): ptr CY {.inline.} = self.union1.struct1.union1.pcyValproc pcyVal*(self: var VARIANT): var ptr CY {.inline.} = self.union1.struct1.union1.pcyValproc `pdate=`*(self: var VARIANT, x: ptr DATE) {.inline.} = self.union1.struct1.union1.pdate = xproc pdate*(self: VARIANT): ptr DATE {.inline.} = self.union1.struct1.union1.pdateproc pdate*(self: var VARIANT): var ptr DATE {.inline.} = self.union1.struct1.union1.pdateproc `pbstrVal=`*(self: var VARIANT, x: ptr BSTR) {.inline.} = self.union1.struct1.union1.pbstrVal = xproc pbstrVal*(self: VARIANT): ptr BSTR {.inline.} = self.union1.struct1.union1.pbstrValproc pbstrVal*(self: var VARIANT): var ptr BSTR {.inline.} = self.union1.struct1.union1.pbstrValproc `ppunkVal=`*(self: var VARIANT, x: ptr ptr IUnknown) {.inline.} = self.union1.struct1.union1.ppunkVal = xproc ppunkVal*(self: VARIANT): ptr ptr IUnknown {.inline.} = self.union1.struct1.union1.ppunkValproc ppunkVal*(self: var VARIANT): var ptr ptr IUnknown {.inline.} = self.union1.struct1.union1.ppunkValproc `ppdispVal=`*(self: var VARIANT, x: ptr ptr IDispatch) {.inline.} = self.union1.struct1.union1.ppdispVal = xproc ppdispVal*(self: VARIANT): ptr ptr IDispatch {.inline.} = self.union1.struct1.union1.ppdispValproc ppdispVal*(self: var VARIANT): var ptr ptr IDispatch {.inline.} = self.union1.struct1.union1.ppdispValproc `pparray=`*(self: var VARIANT, x: ptr ptr SAFEARRAY) {.inline.} = self.union1.struct1.union1.pparray = xproc pparray*(self: VARIANT): ptr ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.pparrayproc pparray*(self: var VARIANT): var ptr ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.pparrayproc `pvarVal=`*(self: var VARIANT, x: ptr VARIANT) {.inline.} = self.union1.struct1.union1.pvarVal = xproc pvarVal*(self: VARIANT): ptr VARIANT {.inline.} = self.union1.struct1.union1.pvarValproc pvarVal*(self: var VARIANT): var ptr VARIANT {.inline.} = self.union1.struct1.union1.pvarValproc `byref=`*(self: var VARIANT, x: PVOID) {.inline.} = self.union1.struct1.union1.byref = xproc byref*(self: VARIANT): PVOID {.inline.} = self.union1.struct1.union1.byrefproc byref*(self: var VARIANT): var PVOID {.inline.} = self.union1.struct1.union1.byrefproc `cVal=`*(self: var VARIANT, x: CHAR) {.inline.} = self.union1.struct1.union1.cVal = xproc cVal*(self: VARIANT): CHAR {.inline.} = self.union1.struct1.union1.cValproc cVal*(self: var VARIANT): var CHAR {.inline.} = self.union1.struct1.union1.cValproc `uiVal=`*(self: var VARIANT, x: USHORT) {.inline.} = self.union1.struct1.union1.uiVal = xproc uiVal*(self: VARIANT): USHORT {.inline.} = self.union1.struct1.union1.uiValproc uiVal*(self: var VARIANT): var USHORT {.inline.} = self.union1.struct1.union1.uiValproc `ulVal=`*(self: var VARIANT, x: ULONG) {.inline.} = self.union1.struct1.union1.ulVal = xproc ulVal*(self: VARIANT): ULONG {.inline.} = self.union1.struct1.union1.ulValproc ulVal*(self: var VARIANT): var ULONG {.inline.} = self.union1.struct1.union1.ulValproc `ullVal=`*(self: var VARIANT, x: ULONGLONG) {.inline.} = self.union1.struct1.union1.ullVal = xproc ullVal*(self: VARIANT): ULONGLONG {.inline.} = self.union1.struct1.union1.ullValproc ullVal*(self: var VARIANT): var ULONGLONG {.inline.} = self.union1.struct1.union1.ullValproc `intVal=`*(self: var VARIANT, x: INT) {.inline.} = self.union1.struct1.union1.intVal = xproc intVal*(self: VARIANT): INT {.inline.} = self.union1.struct1.union1.intValproc intVal*(self: var VARIANT): var INT {.inline.} = self.union1.struct1.union1.intValproc `uintVal=`*(self: var VARIANT, x: UINT) {.inline.} = self.union1.struct1.union1.uintVal = xproc uintVal*(self: VARIANT): UINT {.inline.} = self.union1.struct1.union1.uintValproc uintVal*(self: var VARIANT): var UINT {.inline.} = self.union1.struct1.union1.uintValproc `pdecVal=`*(self: var VARIANT, x: ptr DECIMAL) {.inline.} = self.union1.struct1.union1.pdecVal = xproc pdecVal*(self: VARIANT): ptr DECIMAL {.inline.} = self.union1.struct1.union1.pdecValproc pdecVal*(self: var VARIANT): var ptr DECIMAL {.inline.} = self.union1.struct1.union1.pdecValproc `pcVal=`*(self: var VARIANT, x: ptr CHAR) {.inline.} = self.union1.struct1.union1.pcVal = xproc pcVal*(self: VARIANT): ptr CHAR {.inline.} = self.union1.struct1.union1.pcValproc pcVal*(self: var VARIANT): var ptr CHAR {.inline.} = self.union1.struct1.union1.pcValproc `puiVal=`*(self: var VARIANT, x: ptr USHORT) {.inline.} = self.union1.struct1.union1.puiVal = xproc puiVal*(self: VARIANT): ptr USHORT {.inline.} = self.union1.struct1.union1.puiValproc puiVal*(self: var VARIANT): var ptr USHORT {.inline.} = self.union1.struct1.union1.puiValproc `pulVal=`*(self: var VARIANT, x: ptr ULONG) {.inline.} = self.union1.struct1.union1.pulVal = xproc pulVal*(self: VARIANT): ptr ULONG {.inline.} = self.union1.struct1.union1.pulValproc pulVal*(self: var VARIANT): var ptr ULONG {.inline.} = self.union1.struct1.union1.pulValproc `pullVal=`*(self: var VARIANT, x: ptr ULONGLONG) {.inline.} = self.union1.struct1.union1.pullVal = xproc pullVal*(self: VARIANT): ptr ULONGLONG {.inline.} = self.union1.struct1.union1.pullValproc pullVal*(self: var VARIANT): var ptr ULONGLONG {.inline.} = self.union1.struct1.union1.pullValproc `pintVal=`*(self: var VARIANT, x: ptr INT) {.inline.} = self.union1.struct1.union1.pintVal = xproc pintVal*(self: VARIANT): ptr INT {.inline.} = self.union1.struct1.union1.pintValproc pintVal*(self: var VARIANT): var ptr INT {.inline.} = self.union1.struct1.union1.pintValproc `puintVal=`*(self: var VARIANT, x: ptr UINT) {.inline.} = self.union1.struct1.union1.puintVal = xproc puintVal*(self: VARIANT): ptr UINT {.inline.} = self.union1.struct1.union1.puintValproc puintVal*(self: var VARIANT): var ptr UINT {.inline.} = self.union1.struct1.union1.puintValproc `pvRecord=`*(self: var VARIANT, x: PVOID) {.inline.} = self.union1.struct1.union1.struct1.pvRecord = xproc pvRecord*(self: VARIANT): PVOID {.inline.} = self.union1.struct1.union1.struct1.pvRecordproc pvRecord*(self: var VARIANT): var PVOID {.inline.} = self.union1.struct1.union1.struct1.pvRecordproc `pRecInfo=`*(self: var VARIANT, x: ptr IRecordInfo) {.inline.} = self.union1.struct1.union1.struct1.pRecInfo = xproc pRecInfo*(self: VARIANT): ptr IRecordInfo {.inline.} = self.union1.struct1.union1.struct1.pRecInfoproc pRecInfo*(self: var VARIANT): var ptr IRecordInfo {.inline.} = self.union1.struct1.union1.struct1.pRecInfoproc `decVal=`*(self: var VARIANT, x: DECIMAL) {.inline.} = self.union1.decVal = xproc decVal*(self: VARIANT): DECIMAL {.inline.} = self.union1.decValproc decVal*(self: var VARIANT): var DECIMAL {.inline.} = self.union1.decValproc `lptdesc=`*(self: var TYPEDESC, x: ptr TYPEDESC) {.inline.} = self.union1.lptdesc = xproc lptdesc*(self: TYPEDESC): ptr TYPEDESC {.inline.} = self.union1.lptdescproc lptdesc*(self: var TYPEDESC): var ptr TYPEDESC {.inline.} = self.union1.lptdescproc `lpadesc=`*(self: var TYPEDESC, x: ptr ARRAYDESC) {.inline.} = self.union1.lpadesc = xproc lpadesc*(self: TYPEDESC): ptr ARRAYDESC {.inline.} = self.union1.lpadescproc lpadesc*(self: var TYPEDESC): var ptr ARRAYDESC {.inline.} = self.union1.lpadescproc `hreftype=`*(self: var TYPEDESC, x: HREFTYPE) {.inline.} = self.union1.hreftype = xproc hreftype*(self: TYPEDESC): HREFTYPE {.inline.} = self.union1.hreftypeproc hreftype*(self: var TYPEDESC): var HREFTYPE {.inline.} = self.union1.hreftypeproc `idldesc=`*(self: var ELEMDESC, x: IDLDESC) {.inline.} = self.union1.idldesc = xproc idldesc*(self: ELEMDESC): IDLDESC {.inline.} = self.union1.idldescproc idldesc*(self: var ELEMDESC): var IDLDESC {.inline.} = self.union1.idldescproc `paramdesc=`*(self: var ELEMDESC, x: PARAMDESC) {.inline.} = self.union1.paramdesc = xproc paramdesc*(self: ELEMDESC): PARAMDESC {.inline.} = self.union1.paramdescproc paramdesc*(self: var ELEMDESC): var PARAMDESC {.inline.} = self.union1.paramdescproc `oInst=`*(self: var VARDESC, x: ULONG) {.inline.} = self.union1.oInst = xproc oInst*(self: VARDESC): ULONG {.inline.} = self.union1.oInstproc oInst*(self: var VARDESC): var ULONG {.inline.} = self.union1.oInstproc `lpvarValue=`*(self: var VARDESC, x: ptr VARIANT) {.inline.} = self.union1.lpvarValue = xproc lpvarValue*(self: VARDESC): ptr VARIANT {.inline.} = self.union1.lpvarValueproc lpvarValue*(self: var VARDESC): var ptr VARIANT {.inline.} = self.union1.lpvarValueproc QueryInterface*(self: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryInterface(self, riid, ppvObject)proc AddRef*(self: ptr IUnknown): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddRef(self)proc Release*(self: ptr IUnknown): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Release(self)proc Next*(self: ptr IEnumUnknown, celt: ULONG, rgelt: ptr ptr IUnknown, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumUnknown, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumUnknown, ppenum: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc Next*(self: ptr IEnumString, celt: ULONG, rgelt: ptr LPOLESTR, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumString, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumString, ppenum: ptr ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc Read*(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Read(self, pv, cb, pcbRead)proc Write*(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Write(self, pv, cb, pcbWritten)proc Seek*(self: ptr IStream, dlibMove: LARGE_INTEGER, dwOrigin: DWORD, plibNewPosition: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Seek(self, dlibMove, dwOrigin, plibNewPosition)proc SetSize*(self: ptr IStream, libNewSize: ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSize(self, libNewSize)proc CopyTo*(self: ptr IStream, pstm: ptr IStream, cb: ULARGE_INTEGER, pcbRead: ptr ULARGE_INTEGER, pcbWritten: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyTo(self, pstm, cb, pcbRead, pcbWritten)proc Commit*(self: ptr IStream, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self, grfCommitFlags)proc Revert*(self: ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revert(self)proc LockRegion*(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockRegion(self, libOffset, cb, dwLockType)proc UnlockRegion*(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockRegion(self, libOffset, cb, dwLockType)proc Stat*(self: ptr IStream, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stat(self, pstatstg, grfStatFlag)proc Clone*(self: ptr IStream, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppstm)proc RegisterObjectBound*(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterObjectBound(self, punk)proc RevokeObjectBound*(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevokeObjectBound(self, punk)proc ReleaseBoundObjects*(self: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseBoundObjects(self)proc SetBindOptions*(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBindOptions(self, pbindopts)proc GetBindOptions*(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindOptions(self, pbindopts)proc GetRunningObjectTable*(self: ptr IBindCtx, pprot: ptr ptr IRunningObjectTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRunningObjectTable(self, pprot)proc RegisterObjectParam*(self: ptr IBindCtx, pszKey: LPOLESTR, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterObjectParam(self, pszKey, punk)proc GetObjectParam*(self: ptr IBindCtx, pszKey: LPOLESTR, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectParam(self, pszKey, ppunk)proc EnumObjectParam*(self: ptr IBindCtx, ppenum: ptr ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumObjectParam(self, ppenum)proc RevokeObjectParam*(self: ptr IBindCtx, pszKey: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevokeObjectParam(self, pszKey)proc Next*(self: ptr IEnumMoniker, celt: ULONG, rgelt: ptr ptr IMoniker, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumMoniker, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumMoniker, ppenum: ptr ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc Register*(self: ptr IRunningObjectTable, grfFlags: DWORD, punkObject: ptr IUnknown, pmkObjectName: ptr IMoniker, pdwRegister: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Register(self, grfFlags, punkObject, pmkObjectName, pdwRegister)proc Revoke*(self: ptr IRunningObjectTable, dwRegister: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revoke(self, dwRegister)proc IsRunning*(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self, pmkObjectName)proc GetObject*(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, ppunkObject: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObject(self, pmkObjectName, ppunkObject)proc NoteChangeTime*(self: ptr IRunningObjectTable, dwRegister: DWORD, pfiletime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NoteChangeTime(self, dwRegister, pfiletime)proc GetTimeOfLastChange*(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, pfiletime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTimeOfLastChange(self, pmkObjectName, pfiletime)proc EnumRunning*(self: ptr IRunningObjectTable, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRunning(self, ppenumMoniker)proc GetClassID*(self: ptr IPersist, pClassID: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClassID(self, pClassID)proc IsDirty*(self: ptr IPersistStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self)proc Load*(self: ptr IPersistStream, pStm: ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pStm)proc Save*(self: ptr IPersistStream, pStm: ptr IStream, fClearDirty: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pStm, fClearDirty)proc GetSizeMax*(self: ptr IPersistStream, pcbSize: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSizeMax(self, pcbSize)proc BindToObject*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riidResult: REFIID, ppvResult: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToObject(self, pbc, pmkToLeft, riidResult, ppvResult)proc BindToStorage*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riid: REFIID, ppvObj: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToStorage(self, pbc, pmkToLeft, riid, ppvObj)proc Reduce*(self: ptr IMoniker, pbc: ptr IBindCtx, dwReduceHowFar: DWORD, ppmkToLeft: ptr ptr IMoniker, ppmkReduced: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reduce(self, pbc, dwReduceHowFar, ppmkToLeft, ppmkReduced)proc ComposeWith*(self: ptr IMoniker, pmkRight: ptr IMoniker, fOnlyIfNotGeneric: WINBOOL, ppmkComposite: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComposeWith(self, pmkRight, fOnlyIfNotGeneric, ppmkComposite)proc Enum*(self: ptr IMoniker, fForward: WINBOOL, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enum(self, fForward, ppenumMoniker)proc IsEqual*(self: ptr IMoniker, pmkOtherMoniker: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqual(self, pmkOtherMoniker)proc Hash*(self: ptr IMoniker, pdwHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Hash(self, pdwHash)proc IsRunning*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pmkNewlyRunning: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self, pbc, pmkToLeft, pmkNewlyRunning)proc GetTimeOfLastChange*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pFileTime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTimeOfLastChange(self, pbc, pmkToLeft, pFileTime)proc Inverse*(self: ptr IMoniker, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Inverse(self, ppmk)proc CommonPrefixWith*(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkPrefix: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CommonPrefixWith(self, pmkOther, ppmkPrefix)proc RelativePathTo*(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkRelPath: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RelativePathTo(self, pmkOther, ppmkRelPath)proc GetDisplayName*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, ppszDisplayName: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayName(self, pbc, pmkToLeft, ppszDisplayName)proc ParseDisplayName*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseDisplayName(self, pbc, pmkToLeft, pszDisplayName, pchEaten, ppmkOut)proc IsSystemMoniker*(self: ptr IMoniker, pdwMksys: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSystemMoniker(self, pdwMksys)proc Next*(self: ptr IEnumSTATSTG, celt: ULONG, rgelt: ptr STATSTG, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumSTATSTG, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumSTATSTG, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc CreateStream*(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStream(self, pwcsName, grfMode, reserved1, reserved2, ppstm)proc OpenStream*(self: ptr IStorage, pwcsName: ptr OLECHAR, reserved1: pointer, grfMode: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenStream(self, pwcsName, reserved1, grfMode, reserved2, ppstm)proc CreateStorage*(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstg: ptr ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStorage(self, pwcsName, grfMode, reserved1, reserved2, ppstg)proc OpenStorage*(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgPriority: ptr IStorage, grfMode: DWORD, snbExclude: SNB, reserved: DWORD, ppstg: ptr ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenStorage(self, pwcsName, pstgPriority, grfMode, snbExclude, reserved, ppstg)proc CopyTo*(self: ptr IStorage, ciidExclude: DWORD, rgiidExclude: ptr IID, snbExclude: SNB, pstgDest: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyTo(self, ciidExclude, rgiidExclude, snbExclude, pstgDest)proc MoveElementTo*(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgDest: ptr IStorage, pwcsNewName: ptr OLECHAR, grfFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveElementTo(self, pwcsName, pstgDest, pwcsNewName, grfFlags)proc Commit*(self: ptr IStorage, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self, grfCommitFlags)proc Revert*(self: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revert(self)proc EnumElements*(self: ptr IStorage, reserved1: DWORD, reserved2: pointer, reserved3: DWORD, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumElements(self, reserved1, reserved2, reserved3, ppenum)proc DestroyElement*(self: ptr IStorage, pwcsName: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyElement(self, pwcsName)proc RenameElement*(self: ptr IStorage, pwcsOldName: ptr OLECHAR, pwcsNewName: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RenameElement(self, pwcsOldName, pwcsNewName)proc SetElementTimes*(self: ptr IStorage, pwcsName: ptr OLECHAR, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetElementTimes(self, pwcsName, pctime, patime, pmtime)proc SetClass*(self: ptr IStorage, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClass(self, clsid)proc SetStateBits*(self: ptr IStorage, grfStateBits: DWORD, grfMask: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStateBits(self, grfStateBits, grfMask)proc Stat*(self: ptr IStorage, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stat(self, pstatstg, grfStatFlag)proc Next*(self: ptr IEnumFORMATETC, celt: ULONG, rgelt: ptr FORMATETC, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumFORMATETC, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumFORMATETC, ppenum: ptr ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc Next*(self: ptr IEnumSTATDATA, celt: ULONG, rgelt: ptr STATDATA, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumSTATDATA, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumSTATDATA, ppenum: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc OnDataChange*(self: ptr IAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDataChange(self, pFormatetc, pStgmed)proc OnViewChange*(self: ptr IAdviseSink, dwAspect: DWORD, lindex: LONG): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnViewChange(self, dwAspect, lindex)proc OnRename*(self: ptr IAdviseSink, pmk: ptr IMoniker): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnRename(self, pmk)proc OnSave*(self: ptr IAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSave(self)proc OnClose*(self: ptr IAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnClose(self)proc GetData*(self: ptr IDataObject, pformatetcIn: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetData(self, pformatetcIn, pmedium)proc GetDataHere*(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDataHere(self, pformatetc, pmedium)proc QueryGetData*(self: ptr IDataObject, pformatetc: ptr FORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryGetData(self, pformatetc)proc GetCanonicalFormatEtc*(self: ptr IDataObject, pformatectIn: ptr FORMATETC, pformatetcOut: ptr FORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCanonicalFormatEtc(self, pformatectIn, pformatetcOut)proc SetData*(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM, fRelease: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetData(self, pformatetc, pmedium, fRelease)proc EnumFormatEtc*(self: ptr IDataObject, dwDirection: DWORD, ppenumFormatEtc: ptr ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumFormatEtc(self, dwDirection, ppenumFormatEtc)proc DAdvise*(self: ptr IDataObject, pformatetc: ptr FORMATETC, advf: DWORD, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DAdvise(self, pformatetc, advf, pAdvSink, pdwConnection)proc DUnadvise*(self: ptr IDataObject, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DUnadvise(self, dwConnection)proc EnumDAdvise*(self: ptr IDataObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumDAdvise(self, ppenumAdvise)proc GetTypeInfoCount*(self: ptr IDispatch, pctinfo: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoCount(self, pctinfo)proc GetTypeInfo*(self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo)proc GetIDsOfNames*(self: ptr IDispatch, riid: REFIID, rgszNames: ptr LPOLESTR, cNames: UINT, lcid: LCID, rgDispId: ptr DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId)proc Invoke*(self: ptr IDispatch, dispIdMember: DISPID, riid: REFIID, lcid: LCID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr)proc Bind*(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, wFlags: WORD, ppTInfo: ptr ptr ITypeInfo, pDescKind: ptr DESCKIND, pBindPtr: ptr BINDPTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Bind(self, szName, lHashVal, wFlags, ppTInfo, pDescKind, pBindPtr)proc BindType*(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindType(self, szName, lHashVal, ppTInfo, ppTComp)proc GetTypeAttr*(self: ptr ITypeInfo, ppTypeAttr: ptr ptr TYPEATTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeAttr(self, ppTypeAttr)proc GetTypeComp*(self: ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeComp(self, ppTComp)proc GetFuncDesc*(self: ptr ITypeInfo, index: UINT, ppFuncDesc: ptr ptr FUNCDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFuncDesc(self, index, ppFuncDesc)proc GetVarDesc*(self: ptr ITypeInfo, index: UINT, ppVarDesc: ptr ptr VARDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVarDesc(self, index, ppVarDesc)proc GetNames*(self: ptr ITypeInfo, memid: MEMBERID, rgBstrNames: ptr BSTR, cMaxNames: UINT, pcNames: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNames(self, memid, rgBstrNames, cMaxNames, pcNames)proc GetRefTypeOfImplType*(self: ptr ITypeInfo, index: UINT, pRefType: ptr HREFTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRefTypeOfImplType(self, index, pRefType)proc GetImplTypeFlags*(self: ptr ITypeInfo, index: UINT, pImplTypeFlags: ptr INT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImplTypeFlags(self, index, pImplTypeFlags)proc GetIDsOfNames*(self: ptr ITypeInfo, rgszNames: ptr LPOLESTR, cNames: UINT, pMemId: ptr MEMBERID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDsOfNames(self, rgszNames, cNames, pMemId)proc Invoke*(self: ptr ITypeInfo, pvInstance: PVOID, memid: MEMBERID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, pvInstance, memid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr)proc GetDocumentation*(self: ptr ITypeInfo, memid: MEMBERID, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocumentation(self, memid, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile)proc GetDllEntry*(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, pBstrDllName: ptr BSTR, pBstrName: ptr BSTR, pwOrdinal: ptr WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDllEntry(self, memid, invKind, pBstrDllName, pBstrName, pwOrdinal)proc GetRefTypeInfo*(self: ptr ITypeInfo, hRefType: HREFTYPE, ppTInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRefTypeInfo(self, hRefType, ppTInfo)proc AddressOfMember*(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, ppv: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddressOfMember(self, memid, invKind, ppv)proc CreateInstance*(self: ptr ITypeInfo, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObj: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, pUnkOuter, riid, ppvObj)proc GetMops*(self: ptr ITypeInfo, memid: MEMBERID, pBstrMops: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMops(self, memid, pBstrMops)proc GetContainingTypeLib*(self: ptr ITypeInfo, ppTLib: ptr ptr ITypeLib, pIndex: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainingTypeLib(self, ppTLib, pIndex)proc ReleaseTypeAttr*(self: ptr ITypeInfo, pTypeAttr: ptr TYPEATTR): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseTypeAttr(self, pTypeAttr)proc ReleaseFuncDesc*(self: ptr ITypeInfo, pFuncDesc: ptr FUNCDESC): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseFuncDesc(self, pFuncDesc)proc ReleaseVarDesc*(self: ptr ITypeInfo, pVarDesc: ptr VARDESC): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseVarDesc(self, pVarDesc)proc GetTypeInfoCount*(self: ptr ITypeLib): UINT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoCount(self)proc GetTypeInfo*(self: ptr ITypeLib, index: UINT, ppTInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, index, ppTInfo)proc GetTypeInfoType*(self: ptr ITypeLib, index: UINT, pTKind: ptr TYPEKIND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoType(self, index, pTKind)proc GetTypeInfoOfGuid*(self: ptr ITypeLib, guid: REFGUID, ppTinfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoOfGuid(self, guid, ppTinfo)proc GetLibAttr*(self: ptr ITypeLib, ppTLibAttr: ptr ptr TLIBATTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLibAttr(self, ppTLibAttr)proc GetTypeComp*(self: ptr ITypeLib, ppTComp: ptr ptr ITypeComp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeComp(self, ppTComp)proc GetDocumentation*(self: ptr ITypeLib, index: INT, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocumentation(self, index, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile)proc IsName*(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, pfName: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsName(self, szNameBuf, lHashVal, pfName)proc FindName*(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, rgMemId: ptr MEMBERID, pcFound: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindName(self, szNameBuf, lHashVal, ppTInfo, rgMemId, pcFound)proc ReleaseTLibAttr*(self: ptr ITypeLib, pTLibAttr: ptr TLIBATTR): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseTLibAttr(self, pTLibAttr)proc RecordInit*(self: ptr IRecordInfo, pvNew: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordInit(self, pvNew)proc RecordClear*(self: ptr IRecordInfo, pvExisting: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordClear(self, pvExisting)proc RecordCopy*(self: ptr IRecordInfo, pvExisting: PVOID, pvNew: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordCopy(self, pvExisting, pvNew)proc GetGuid*(self: ptr IRecordInfo, pguid: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGuid(self, pguid)proc GetName*(self: ptr IRecordInfo, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName(self, pbstrName)proc GetSize*(self: ptr IRecordInfo, pcbSize: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, pcbSize)proc GetTypeInfo*(self: ptr IRecordInfo, ppTypeInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, ppTypeInfo)proc GetField*(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetField(self, pvData, szFieldName, pvarField)proc GetFieldNoCopy*(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT, ppvDataCArray: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFieldNoCopy(self, pvData, szFieldName, pvarField, ppvDataCArray)proc PutField*(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutField(self, wFlags, pvData, szFieldName, pvarField)proc PutFieldNoCopy*(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutFieldNoCopy(self, wFlags, pvData, szFieldName, pvarField)proc GetFieldNames*(self: ptr IRecordInfo, pcNames: ptr ULONG, rgBstrNames: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFieldNames(self, pcNames, rgBstrNames)proc IsMatchingType*(self: ptr IRecordInfo, pRecordInfo: ptr IRecordInfo): WINBOOL {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsMatchingType(self, pRecordInfo)proc RecordCreate*(self: ptr IRecordInfo): PVOID {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordCreate(self)proc RecordCreateCopy*(self: ptr IRecordInfo, pvSource: PVOID, ppvDest: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordCreateCopy(self, pvSource, ppvDest)proc RecordDestroy*(self: ptr IRecordInfo, pvRecord: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordDestroy(self, pvRecord)proc ParseDisplayName*(self: ptr IParseDisplayName, pbc: ptr IBindCtx, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseDisplayName(self, pbc, pszDisplayName, pchEaten, ppmkOut)proc EnumObjects*(self: ptr IOleContainer, grfFlags: DWORD, ppenum: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumObjects(self, grfFlags, ppenum)proc LockContainer*(self: ptr IOleContainer, fLock: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockContainer(self, fLock)proc SaveObject*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveObject(self)proc GetMoniker*(self: ptr IOleClientSite, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMoniker(self, dwAssign, dwWhichMoniker, ppmk)proc GetContainer*(self: ptr IOleClientSite, ppContainer: ptr ptr IOleContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainer(self, ppContainer)proc ShowObject*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowObject(self)proc OnShowWindow*(self: ptr IOleClientSite, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnShowWindow(self, fShow)proc RequestNewObjectLayout*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestNewObjectLayout(self)proc SetClientSite*(self: ptr IOleObject, pClientSite: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClientSite(self, pClientSite)proc GetClientSite*(self: ptr IOleObject, ppClientSite: ptr ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClientSite(self, ppClientSite)proc SetHostNames*(self: ptr IOleObject, szContainerApp: LPCOLESTR, szContainerObj: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHostNames(self, szContainerApp, szContainerObj)proc Close*(self: ptr IOleObject, dwSaveOption: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, dwSaveOption)proc SetMoniker*(self: ptr IOleObject, dwWhichMoniker: DWORD, pmk: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMoniker(self, dwWhichMoniker, pmk)proc GetMoniker*(self: ptr IOleObject, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMoniker(self, dwAssign, dwWhichMoniker, ppmk)proc InitFromData*(self: ptr IOleObject, pDataObject: ptr IDataObject, fCreation: WINBOOL, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitFromData(self, pDataObject, fCreation, dwReserved)proc GetClipboardData*(self: ptr IOleObject, dwReserved: DWORD, ppDataObject: ptr ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClipboardData(self, dwReserved, ppDataObject)proc DoVerb*(self: ptr IOleObject, iVerb: LONG, lpmsg: LPMSG, pActiveSite: ptr IOleClientSite, lindex: LONG, hwndParent: HWND, lprcPosRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoVerb(self, iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect)proc EnumVerbs*(self: ptr IOleObject, ppEnumOleVerb: ptr ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumVerbs(self, ppEnumOleVerb)proc Update*(self: ptr IOleObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Update(self)proc IsUpToDate*(self: ptr IOleObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsUpToDate(self)proc GetUserClassID*(self: ptr IOleObject, pClsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserClassID(self, pClsid)proc GetUserType*(self: ptr IOleObject, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserType(self, dwFormOfType, pszUserType)proc SetExtent*(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetExtent(self, dwDrawAspect, psizel)proc GetExtent*(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtent(self, dwDrawAspect, psizel)proc Advise*(self: ptr IOleObject, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pAdvSink, pdwConnection)proc Unadvise*(self: ptr IOleObject, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwConnection)proc EnumAdvise*(self: ptr IOleObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumAdvise(self, ppenumAdvise)proc GetMiscStatus*(self: ptr IOleObject, dwAspect: DWORD, pdwStatus: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMiscStatus(self, dwAspect, pdwStatus)proc SetColorScheme*(self: ptr IOleObject, pLogpal: ptr LOGPALETTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColorScheme(self, pLogpal)proc GetWindow*(self: ptr IOleWindow, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindow(self, phwnd)proc ContextSensitiveHelp*(self: ptr IOleWindow, fEnterMode: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ContextSensitiveHelp(self, fEnterMode)proc GetBorder*(self: ptr IOleInPlaceUIWindow, lprectBorder: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBorder(self, lprectBorder)proc RequestBorderSpace*(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestBorderSpace(self, pborderwidths)proc SetBorderSpace*(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBorderSpace(self, pborderwidths)proc SetActiveObject*(self: ptr IOleInPlaceUIWindow, pActiveObject: ptr IOleInPlaceActiveObject, pszObjName: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActiveObject(self, pActiveObject, pszObjName)proc TranslateAccelerator*(self: ptr IOleInPlaceActiveObject, lpmsg: LPMSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, lpmsg)proc OnFrameWindowActivate*(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFrameWindowActivate(self, fActivate)proc OnDocWindowActivate*(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDocWindowActivate(self, fActivate)proc ResizeBorder*(self: ptr IOleInPlaceActiveObject, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fFrameWindow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResizeBorder(self, prcBorder, pUIWindow, fFrameWindow)proc EnableModeless*(self: ptr IOleInPlaceActiveObject, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable)proc InsertMenus*(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertMenus(self, hmenuShared, lpMenuWidths)proc SetMenu*(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, holemenu: HOLEMENU, hwndActiveObject: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMenu(self, hmenuShared, holemenu, hwndActiveObject)proc RemoveMenus*(self: ptr IOleInPlaceFrame, hmenuShared: HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveMenus(self, hmenuShared)proc SetStatusText*(self: ptr IOleInPlaceFrame, pszStatusText: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStatusText(self, pszStatusText)proc EnableModeless*(self: ptr IOleInPlaceFrame, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable)proc TranslateAccelerator*(self: ptr IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, lpmsg, wID)proc InPlaceDeactivate*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InPlaceDeactivate(self)proc UIDeactivate*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UIDeactivate(self)proc SetObjectRects*(self: ptr IOleInPlaceObject, lprcPosRect: LPCRECT, lprcClipRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetObjectRects(self, lprcPosRect, lprcClipRect)proc ReactivateAndUndo*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReactivateAndUndo(self)proc CanInPlaceActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanInPlaceActivate(self)proc OnInPlaceActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceActivate(self)proc OnUIActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnUIActivate(self)proc GetWindowContext*(self: ptr IOleInPlaceSite, ppFrame: ptr ptr IOleInPlaceFrame, ppDoc: ptr ptr IOleInPlaceUIWindow, lprcPosRect: LPRECT, lprcClipRect: LPRECT, lpFrameInfo: LPOLEINPLACEFRAMEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindowContext(self, ppFrame, ppDoc, lprcPosRect, lprcClipRect, lpFrameInfo)proc Scroll*(self: ptr IOleInPlaceSite, scrollExtant: SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Scroll(self, scrollExtant)proc OnUIDeactivate*(self: ptr IOleInPlaceSite, fUndoable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnUIDeactivate(self, fUndoable)proc OnInPlaceDeactivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceDeactivate(self)proc DiscardUndoState*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DiscardUndoState(self)proc DeactivateAndUndo*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeactivateAndUndo(self)proc OnPosRectChange*(self: ptr IOleInPlaceSite, lprcPosRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPosRectChange(self, lprcPosRect)proc QueryContinueDrag*(self: ptr IDropSource, fEscapePressed: WINBOOL, grfKeyState: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryContinueDrag(self, fEscapePressed, grfKeyState)proc GiveFeedback*(self: ptr IDropSource, dwEffect: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GiveFeedback(self, dwEffect)proc DragEnter*(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragEnter(self, pDataObj, grfKeyState, pt, pdwEffect)proc DragOver*(self: ptr IDropTarget, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragOver(self, grfKeyState, pt, pdwEffect)proc DragLeave*(self: ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragLeave(self)proc Drop*(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Drop(self, pDataObj, grfKeyState, pt, pdwEffect)proc Next*(self: ptr IEnumOLEVERB, celt: ULONG, rgelt: LPOLEVERB, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumOLEVERB, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumOLEVERB, ppenum: ptr ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc Next*(self: ptr IEnumConnections, cConnections: ULONG, rgcd: LPCONNECTDATA, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, cConnections, rgcd, pcFetched)proc Skip*(self: ptr IEnumConnections, cConnections: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, cConnections)proc Reset*(self: ptr IEnumConnections): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumConnections, ppEnum: ptr ptr IEnumConnections): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum)proc GetConnectionInterface*(self: ptr IConnectionPoint, pIID: ptr IID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConnectionInterface(self, pIID)proc GetConnectionPointContainer*(self: ptr IConnectionPoint, ppCPC: ptr ptr IConnectionPointContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConnectionPointContainer(self, ppCPC)proc Advise*(self: ptr IConnectionPoint, pUnkSink: ptr IUnknown, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pUnkSink, pdwCookie)proc Unadvise*(self: ptr IConnectionPoint, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie)proc EnumConnections*(self: ptr IConnectionPoint, ppEnum: ptr ptr IEnumConnections): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumConnections(self, ppEnum)proc Next*(self: ptr IEnumConnectionPoints, cConnections: ULONG, ppCP: ptr LPCONNECTIONPOINT, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, cConnections, ppCP, pcFetched)proc Skip*(self: ptr IEnumConnectionPoints, cConnections: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, cConnections)proc Reset*(self: ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumConnectionPoints, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum)proc EnumConnectionPoints*(self: ptr IConnectionPointContainer, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumConnectionPoints(self, ppEnum)proc FindConnectionPoint*(self: ptr IConnectionPointContainer, riid: REFIID, ppCP: ptr ptr IConnectionPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindConnectionPoint(self, riid, ppCP)proc OnInPlaceActivateEx*(self: ptr IOleInPlaceSiteEx, pfNoRedraw: ptr WINBOOL, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceActivateEx(self, pfNoRedraw, dwFlags)proc OnInPlaceDeactivateEx*(self: ptr IOleInPlaceSiteEx, fNoRedraw: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceDeactivateEx(self, fNoRedraw)proc RequestUIActivate*(self: ptr IOleInPlaceSiteEx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestUIActivate(self)proc SetSite*(self: ptr IObjectWithSite, pUnkSite: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSite(self, pUnkSite)proc GetSite*(self: ptr IObjectWithSite, riid: REFIID, ppvSite: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSite(self, riid, ppvSite)proc QueryStatus*(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, cCmds: ULONG, prgCmds: ptr OLECMD, pCmdText: ptr OLECMDTEXT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryStatus(self, pguidCmdGroup, cCmds, prgCmds, pCmdText)proc Exec*(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, nCmdID: DWORD, nCmdexecopt: DWORD, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Exec(self, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut)proc GoBack*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoBack(self)proc GoForward*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoForward(self)proc GoHome*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoHome(self)proc GoSearch*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoSearch(self)proc Navigate*(self: ptr IWebBrowser, URL: BSTR, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate(self, URL, Flags, TargetFrameName, PostData, Headers)proc Refresh*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Refresh(self)proc Refresh2*(self: ptr IWebBrowser, Level: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Refresh2(self, Level)proc Stop*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stop(self)proc get_Application*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppDisp)proc get_Parent*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppDisp)proc get_Container*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Container(self, ppDisp)proc get_Document*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Document(self, ppDisp)proc get_TopLevelContainer*(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TopLevelContainer(self, pBool)proc get_Type*(self: ptr IWebBrowser, Type: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Type(self, Type)proc get_Left*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Left(self, pl)proc put_Left*(self: ptr IWebBrowser, Left: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Left(self, Left)proc get_Top*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Top(self, pl)proc put_Top*(self: ptr IWebBrowser, Top: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Top(self, Top)proc get_Width*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Width(self, pl)proc put_Width*(self: ptr IWebBrowser, Width: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Width(self, Width)proc get_Height*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Height(self, pl)proc put_Height*(self: ptr IWebBrowser, Height: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Height(self, Height)proc get_LocationName*(self: ptr IWebBrowser, LocationName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LocationName(self, LocationName)proc get_LocationURL*(self: ptr IWebBrowser, LocationURL: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LocationURL(self, LocationURL)proc get_Busy*(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Busy(self, pBool)proc Quit*(self: ptr IWebBrowserApp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Quit(self)proc ClientToWindow*(self: ptr IWebBrowserApp, pcx: ptr int32, pcy: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClientToWindow(self, pcx, pcy)proc PutProperty*(self: ptr IWebBrowserApp, Property: BSTR, vtValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutProperty(self, Property, vtValue)proc GetProperty*(self: ptr IWebBrowserApp, Property: BSTR, pvtValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, Property, pvtValue)proc get_Name*(self: ptr IWebBrowserApp, Name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, Name)proc get_HWND*(self: ptr IWebBrowserApp, pHWND: ptr SHANDLE_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HWND(self, pHWND)proc get_FullName*(self: ptr IWebBrowserApp, FullName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FullName(self, FullName)proc get_Path*(self: ptr IWebBrowserApp, Path: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Path(self, Path)proc get_Visible*(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Visible(self, pBool)proc put_Visible*(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Visible(self, Value)proc get_StatusBar*(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StatusBar(self, pBool)proc put_StatusBar*(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_StatusBar(self, Value)proc get_StatusText*(self: ptr IWebBrowserApp, StatusText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StatusText(self, StatusText)proc put_StatusText*(self: ptr IWebBrowserApp, StatusText: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_StatusText(self, StatusText)proc get_ToolBar*(self: ptr IWebBrowserApp, Value: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToolBar(self, Value)proc put_ToolBar*(self: ptr IWebBrowserApp, Value: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ToolBar(self, Value)proc get_MenuBar*(self: ptr IWebBrowserApp, Value: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_MenuBar(self, Value)proc put_MenuBar*(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_MenuBar(self, Value)proc get_FullScreen*(self: ptr IWebBrowserApp, pbFullScreen: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FullScreen(self, pbFullScreen)proc put_FullScreen*(self: ptr IWebBrowserApp, bFullScreen: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_FullScreen(self, bFullScreen)proc Navigate2*(self: ptr IWebBrowser2, URL: ptr VARIANT, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate2(self, URL, Flags, TargetFrameName, PostData, Headers)proc QueryStatusWB*(self: ptr IWebBrowser2, cmdID: OLECMDID, pcmdf: ptr OLECMDF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryStatusWB(self, cmdID, pcmdf)proc ExecWB*(self: ptr IWebBrowser2, cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecWB(self, cmdID, cmdexecopt, pvaIn, pvaOut)proc ShowBrowserBar*(self: ptr IWebBrowser2, pvaClsid: ptr VARIANT, pvarShow: ptr VARIANT, pvarSize: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowBrowserBar(self, pvaClsid, pvarShow, pvarSize)proc get_ReadyState*(self: ptr IWebBrowser2, plReadyState: ptr READYSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReadyState(self, plReadyState)proc get_Offline*(self: ptr IWebBrowser2, pbOffline: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Offline(self, pbOffline)proc put_Offline*(self: ptr IWebBrowser2, bOffline: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Offline(self, bOffline)proc get_Silent*(self: ptr IWebBrowser2, pbSilent: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Silent(self, pbSilent)proc put_Silent*(self: ptr IWebBrowser2, bSilent: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Silent(self, bSilent)proc get_RegisterAsBrowser*(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RegisterAsBrowser(self, pbRegister)proc put_RegisterAsBrowser*(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_RegisterAsBrowser(self, bRegister)proc get_RegisterAsDropTarget*(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RegisterAsDropTarget(self, pbRegister)proc put_RegisterAsDropTarget*(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_RegisterAsDropTarget(self, bRegister)proc get_TheaterMode*(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TheaterMode(self, pbRegister)proc put_TheaterMode*(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_TheaterMode(self, bRegister)proc get_AddressBar*(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AddressBar(self, Value)proc put_AddressBar*(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_AddressBar(self, Value)proc get_Resizable*(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Resizable(self, Value)proc put_Resizable*(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Resizable(self, Value)converter winimConverterIEnumUnknownToIUnknown*(x: ptr IEnumUnknown): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumStringToIUnknown*(x: ptr IEnumString): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterISequentialStreamToIUnknown*(x: ptr ISequentialStream): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIStreamToISequentialStream*(x: ptr IStream): ptr ISequentialStream = cast[ptr ISequentialStream](x)converter winimConverterIStreamToIUnknown*(x: ptr IStream): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIBindCtxToIUnknown*(x: ptr IBindCtx): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumMonikerToIUnknown*(x: ptr IEnumMoniker): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIRunningObjectTableToIUnknown*(x: ptr IRunningObjectTable): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIPersistToIUnknown*(x: ptr IPersist): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIPersistStreamToIPersist*(x: ptr IPersistStream): ptr IPersist = cast[ptr IPersist](x)converter winimConverterIPersistStreamToIUnknown*(x: ptr IPersistStream): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIMonikerToIPersistStream*(x: ptr IMoniker): ptr IPersistStream = cast[ptr IPersistStream](x)converter winimConverterIMonikerToIPersist*(x: ptr IMoniker): ptr IPersist = cast[ptr IPersist](x)converter winimConverterIMonikerToIUnknown*(x: ptr IMoniker): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumSTATSTGToIUnknown*(x: ptr IEnumSTATSTG): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIStorageToIUnknown*(x: ptr IStorage): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumFORMATETCToIUnknown*(x: ptr IEnumFORMATETC): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumSTATDATAToIUnknown*(x: ptr IEnumSTATDATA): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIAdviseSinkToIUnknown*(x: ptr IAdviseSink): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIDataObjectToIUnknown*(x: ptr IDataObject): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIDispatchToIUnknown*(x: ptr IDispatch): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterITypeCompToIUnknown*(x: ptr ITypeComp): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterITypeInfoToIUnknown*(x: ptr ITypeInfo): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterITypeLibToIUnknown*(x: ptr ITypeLib): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIRecordInfoToIUnknown*(x: ptr IRecordInfo): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIParseDisplayNameToIUnknown*(x: ptr IParseDisplayName): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleContainerToIParseDisplayName*(x: ptr IOleContainer): ptr IParseDisplayName = cast[ptr IParseDisplayName](x)converter winimConverterIOleContainerToIUnknown*(x: ptr IOleContainer): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleClientSiteToIUnknown*(x: ptr IOleClientSite): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleObjectToIUnknown*(x: ptr IOleObject): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleWindowToIUnknown*(x: ptr IOleWindow): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleInPlaceUIWindowToIOleWindow*(x: ptr IOleInPlaceUIWindow): ptr IOleWindow = cast[ptr IOleWindow](x)converter winimConverterIOleInPlaceUIWindowToIUnknown*(x: ptr IOleInPlaceUIWindow): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleInPlaceActiveObjectToIOleWindow*(x: ptr IOleInPlaceActiveObject): ptr IOleWindow = cast[ptr IOleWindow](x)converter winimConverterIOleInPlaceActiveObjectToIUnknown*(x: ptr IOleInPlaceActiveObject): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleInPlaceFrameToIOleInPlaceUIWindow*(x: ptr IOleInPlaceFrame): ptr IOleInPlaceUIWindow = cast[ptr IOleInPlaceUIWindow](x)converter winimConverterIOleInPlaceFrameToIOleWindow*(x: ptr IOleInPlaceFrame): ptr IOleWindow = cast[ptr IOleWindow](x)converter winimConverterIOleInPlaceFrameToIUnknown*(x: ptr IOleInPlaceFrame): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleInPlaceObjectToIOleWindow*(x: ptr IOleInPlaceObject): ptr IOleWindow = cast[ptr IOleWindow](x)converter winimConverterIOleInPlaceObjectToIUnknown*(x: ptr IOleInPlaceObject): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleInPlaceSiteToIOleWindow*(x: ptr IOleInPlaceSite): ptr IOleWindow = cast[ptr IOleWindow](x)converter winimConverterIOleInPlaceSiteToIUnknown*(x: ptr IOleInPlaceSite): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIDropSourceToIUnknown*(x: ptr IDropSource): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIDropTargetToIUnknown*(x: ptr IDropTarget): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumOLEVERBToIUnknown*(x: ptr IEnumOLEVERB): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumConnectionsToIUnknown*(x: ptr IEnumConnections): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIConnectionPointToIUnknown*(x: ptr IConnectionPoint): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumConnectionPointsToIUnknown*(x: ptr IEnumConnectionPoints): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIConnectionPointContainerToIUnknown*(x: ptr IConnectionPointContainer): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleInPlaceSiteExToIOleInPlaceSite*(x: ptr IOleInPlaceSiteEx): ptr IOleInPlaceSite = cast[ptr IOleInPlaceSite](x)converter winimConverterIOleInPlaceSiteExToIOleWindow*(x: ptr IOleInPlaceSiteEx): ptr IOleWindow = cast[ptr IOleWindow](x)converter winimConverterIOleInPlaceSiteExToIUnknown*(x: ptr IOleInPlaceSiteEx): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIObjectWithSiteToIUnknown*(x: ptr IObjectWithSite): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOleCommandTargetToIUnknown*(x: ptr IOleCommandTarget): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIWebBrowserToIDispatch*(x: ptr IWebBrowser): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIWebBrowserToIUnknown*(x: ptr IWebBrowser): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIWebBrowserAppToIWebBrowser*(x: ptr IWebBrowserApp): ptr IWebBrowser = cast[ptr IWebBrowser](x)converter winimConverterIWebBrowserAppToIDispatch*(x: ptr IWebBrowserApp): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIWebBrowserAppToIUnknown*(x: ptr IWebBrowserApp): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIWebBrowser2ToIWebBrowserApp*(x: ptr IWebBrowser2): ptr IWebBrowserApp = cast[ptr IWebBrowserApp](x)converter winimConverterIWebBrowser2ToIWebBrowser*(x: ptr IWebBrowser2): ptr IWebBrowser = cast[ptr IWebBrowser](x)converter winimConverterIWebBrowser2ToIDispatch*(x: ptr IWebBrowser2): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIWebBrowser2ToIUnknown*(x: ptr IWebBrowser2): ptr IUnknown = cast[ptr IUnknown](x)typeHIMAGELIST* = HANDLEHPROPSHEETPAGE* = HANDLEHTREEITEM* = HANDLETINITCOMMONCONTROLSEX* {.pure.} = objectdwSize*: DWORDdwICC*: DWORDNMMOUSE* {.pure.} = objecthdr*: NMHDRdwItemSpec*: DWORD_PTRdwItemData*: DWORD_PTRpt*: POINTdwHitInfo*: LPARAMLPNMMOUSE* = ptr NMMOUSETNMCUSTOMDRAW* {.pure.} = objecthdr*: NMHDRdwDrawStage*: DWORDhdc*: HDCrc*: RECTdwItemSpec*: DWORD_PTRuItemState*: UINTlItemlParam*: LPARAMIMAGEINFO* {.pure.} = objecthbmImage*: HBITMAPhbmMask*: HBITMAPUnused1*: int32Unused2*: int32rcImage*: RECTHDITEMA* {.pure.} = objectmask*: UINTcxy*: int32pszText*: LPSTRhbm*: HBITMAPcchTextMax*: int32fmt*: int32lParam*: LPARAMiImage*: int32iOrder*: int32`type`*: UINTpvFilter*: pointerstate*: UINTHDITEMW* {.pure.} = objectmask*: UINTcxy*: int32pszText*: LPWSTRhbm*: HBITMAPcchTextMax*: int32fmt*: int32lParam*: LPARAMiImage*: int32iOrder*: int32`type`*: UINTpvFilter*: pointerstate*: UINTHDHITTESTINFO* {.pure.} = objectpt*: POINTflags*: UINTiItem*: int32NMHEADERA* {.pure.} = objecthdr*: NMHDRiItem*: int32iButton*: int32pitem*: ptr HDITEMANMHEADERW* {.pure.} = objecthdr*: NMHDRiItem*: int32iButton*: int32pitem*: ptr HDITEMWLPNMHEADERA* = ptr NMHEADERALPNMHEADERW* = ptr NMHEADERWwhen winimCpu64:typeTBBUTTON* {.pure.} = objectiBitmap*: int32idCommand*: int32fsState*: BYTEfsStyle*: BYTEbReserved*: array[6, BYTE]dwData*: DWORD_PTRiString*: INT_PTRwhen winimCpu32:typeTBBUTTON* {.pure.} = objectiBitmap*: int32idCommand*: int32fsState*: BYTEfsStyle*: BYTEbReserved*: array[2, BYTE]dwData*: DWORD_PTRiString*: INT_PTRtypeNMTBCUSTOMDRAW* {.pure.} = objectnmcd*: TNMCUSTOMDRAWhbrMonoDither*: HBRUSHhbrLines*: HBRUSHhpenLines*: HPENclrText*: COLORREFclrMark*: COLORREFclrTextHighlight*: COLORREFclrBtnFace*: COLORREFclrBtnHighlight*: COLORREFclrHighlightHotTrack*: COLORREFrcText*: RECTnStringBkMode*: int32nHLStringBkMode*: int32iListGap*: int32LPNMTBCUSTOMDRAW* = ptr NMTBCUSTOMDRAWTTBADDBITMAP* {.pure.} = objecthInst*: HINSTANCEnID*: UINT_PTRTBBUTTONINFOA* {.pure.} = objectcbSize*: UINTdwMask*: DWORDidCommand*: int32iImage*: int32fsState*: BYTEfsStyle*: BYTEcx*: WORDlParam*: DWORD_PTRpszText*: LPSTRcchText*: int32TBBUTTONINFOW* {.pure.} = objectcbSize*: UINTdwMask*: DWORDidCommand*: int32iImage*: int32fsState*: BYTEfsStyle*: BYTEcx*: WORDlParam*: DWORD_PTRpszText*: LPWSTRcchText*: int32NMTBHOTITEM* {.pure.} = objecthdr*: NMHDRidOld*: int32idNew*: int32dwFlags*: DWORDLPNMTBHOTITEM* = ptr NMTBHOTITEMNMTOOLBARA* {.pure.} = objecthdr*: NMHDRiItem*: int32tbButton*: TBBUTTONcchText*: int32pszText*: LPSTRrcButton*: RECTNMTOOLBARW* {.pure.} = objecthdr*: NMHDRiItem*: int32tbButton*: TBBUTTONcchText*: int32pszText*: LPWSTRrcButton*: RECTLPNMTOOLBARA* = ptr NMTOOLBARALPNMTOOLBARW* = ptr NMTOOLBARWwhen winimUnicode:typeLPNMTOOLBAR* = LPNMTOOLBARWwhen winimAnsi:typeLPNMTOOLBAR* = LPNMTOOLBARAtypeREBARINFO* {.pure.} = objectcbSize*: UINTfMask*: UINThiml*: HIMAGELISTREBARBANDINFOA* {.pure.} = objectcbSize*: UINTfMask*: UINTfStyle*: UINTclrFore*: COLORREFclrBack*: COLORREFlpText*: LPSTRcch*: UINTiImage*: int32hwndChild*: HWNDcxMinChild*: UINTcyMinChild*: UINTcx*: UINThbmBack*: HBITMAPwID*: UINTcyChild*: UINTcyMaxChild*: UINTcyIntegral*: UINTcxIdeal*: UINTlParam*: LPARAMcxHeader*: UINTrcChevronLocation*: RECTuChevronState*: UINTREBARBANDINFOW* {.pure.} = objectcbSize*: UINTfMask*: UINTfStyle*: UINTclrFore*: COLORREFclrBack*: COLORREFlpText*: LPWSTRcch*: UINTiImage*: int32hwndChild*: HWNDcxMinChild*: UINTcyMinChild*: UINTcx*: UINThbmBack*: HBITMAPwID*: UINTcyChild*: UINTcyMaxChild*: UINTcyIntegral*: UINTcxIdeal*: UINTlParam*: LPARAMcxHeader*: UINTrcChevronLocation*: RECTuChevronState*: UINTRBHITTESTINFO* {.pure.} = objectpt*: POINTflags*: UINTiBand*: int32TTTOOLINFOA* {.pure.} = objectcbSize*: UINTuFlags*: UINThwnd*: HWNDuId*: UINT_PTRrect*: RECThinst*: HINSTANCElpszText*: LPSTRlParam*: LPARAMlpReserved*: pointerTTTOOLINFOW* {.pure.} = objectcbSize*: UINTuFlags*: UINThwnd*: HWNDuId*: UINT_PTRrect*: RECThinst*: HINSTANCElpszText*: LPWSTRlParam*: LPARAMlpReserved*: pointerNMTTDISPINFOW* {.pure.} = objecthdr*: NMHDRlpszText*: LPWSTRszText*: array[80, WCHAR]hinst*: HINSTANCEuFlags*: UINTlParam*: LPARAMNMTTDISPINFOA* {.pure.} = objecthdr*: NMHDRlpszText*: LPSTRszText*: array[80, char]hinst*: HINSTANCEuFlags*: UINTlParam*: LPARAMLPNMTTDISPINFOA* = ptr NMTTDISPINFOALPNMTTDISPINFOW* = ptr NMTTDISPINFOWwhen winimUnicode:typeLPNMTTDISPINFO* = LPNMTTDISPINFOWwhen winimAnsi:typeLPNMTTDISPINFO* = LPNMTTDISPINFOAtypeNMUPDOWN* {.pure.} = objecthdr*: NMHDRiPos*: int32iDelta*: int32LPNMUPDOWN* = ptr NMUPDOWNconstMAX_LINKID_TEXT* = 48L_MAX_URL_LENGTH* = 2084typeLITEM* {.pure.} = objectmask*: UINTiLink*: int32state*: UINTstateMask*: UINTszID*: array[MAX_LINKID_TEXT, WCHAR]szUrl*: array[L_MAX_URL_LENGTH, WCHAR]NMLINK* {.pure.} = objecthdr*: NMHDRitem*: LITEMPNMLINK* = ptr NMLINKLVITEMA* {.pure.} = objectmask*: UINTiItem*: int32iSubItem*: int32state*: UINTstateMask*: UINTpszText*: LPSTRcchTextMax*: int32iImage*: int32lParam*: LPARAMiIndent*: int32iGroupId*: int32cColumns*: UINTpuColumns*: PUINTpiColFmt*: ptr int32iGroup*: int32LVITEMW* {.pure.} = objectmask*: UINTiItem*: int32iSubItem*: int32state*: UINTstateMask*: UINTpszText*: LPWSTRcchTextMax*: int32iImage*: int32lParam*: LPARAMiIndent*: int32iGroupId*: int32cColumns*: UINTpuColumns*: PUINTpiColFmt*: ptr int32iGroup*: int32LVFINDINFOA* {.pure.} = objectflags*: UINTpsz*: LPCSTRlParam*: LPARAMpt*: POINTvkDirection*: UINTLVFINDINFOW* {.pure.} = objectflags*: UINTpsz*: LPCWSTRlParam*: LPARAMpt*: POINTvkDirection*: UINTLVHITTESTINFO* {.pure.} = objectpt*: POINTflags*: UINTiItem*: int32iSubItem*: int32iGroup*: int32LVCOLUMNA* {.pure.} = objectmask*: UINTfmt*: int32cx*: int32pszText*: LPSTRcchTextMax*: int32iSubItem*: int32iImage*: int32iOrder*: int32cxMin*: int32cxDefault*: int32cxIdeal*: int32LVCOLUMNW* {.pure.} = objectmask*: UINTfmt*: int32cx*: int32pszText*: LPWSTRcchTextMax*: int32iSubItem*: int32iImage*: int32iOrder*: int32cxMin*: int32cxDefault*: int32cxIdeal*: int32NMLISTVIEW* {.pure.} = objecthdr*: NMHDRiItem*: int32iSubItem*: int32uNewState*: UINTuOldState*: UINTuChanged*: UINTptAction*: POINTlParam*: LPARAMLPNMLISTVIEW* = ptr NMLISTVIEWNMITEMACTIVATE* {.pure.} = objecthdr*: NMHDRiItem*: int32iSubItem*: int32uNewState*: UINTuOldState*: UINTuChanged*: UINTptAction*: POINTlParam*: LPARAMuKeyFlags*: UINTLPNMITEMACTIVATE* = ptr NMITEMACTIVATENMLVDISPINFOA* {.pure.} = objecthdr*: NMHDRitem*: LVITEMANMLVDISPINFOW* {.pure.} = objecthdr*: NMHDRitem*: LVITEMWLPNMLVDISPINFOA* = ptr NMLVDISPINFOALPNMLVDISPINFOW* = ptr NMLVDISPINFOWTVITEMA* {.pure.} = objectmask*: UINThItem*: HTREEITEMstate*: UINTstateMask*: UINTpszText*: LPSTRcchTextMax*: int32iImage*: int32iSelectedImage*: int32cChildren*: int32lParam*: LPARAMLPTVITEMA* = ptr TVITEMATVITEMW* {.pure.} = objectmask*: UINThItem*: HTREEITEMstate*: UINTstateMask*: UINTpszText*: LPWSTRcchTextMax*: int32iImage*: int32iSelectedImage*: int32cChildren*: int32lParam*: LPARAMLPTVITEMW* = ptr TVITEMWTVITEMEXA* {.pure.} = objectmask*: UINThItem*: HTREEITEMstate*: UINTstateMask*: UINTpszText*: LPSTRcchTextMax*: int32iImage*: int32iSelectedImage*: int32cChildren*: int32lParam*: LPARAMiIntegral*: int32uStateEx*: UINThwnd*: HWNDiExpandedImage*: int32iReserved*: int32TVITEMEXW* {.pure.} = objectmask*: UINThItem*: HTREEITEMstate*: UINTstateMask*: UINTpszText*: LPWSTRcchTextMax*: int32iImage*: int32iSelectedImage*: int32cChildren*: int32lParam*: LPARAMiIntegral*: int32uStateEx*: UINThwnd*: HWNDiExpandedImage*: int32iReserved*: int32TVINSERTSTRUCTA_UNION1* {.pure, union.} = objectitemex*: TVITEMEXAitem*: TV_ITEMATVINSERTSTRUCTA* {.pure.} = objecthParent*: HTREEITEMhInsertAfter*: HTREEITEMunion1*: TVINSERTSTRUCTA_UNION1TVINSERTSTRUCTW_UNION1* {.pure, union.} = objectitemex*: TVITEMEXWitem*: TV_ITEMWTVINSERTSTRUCTW* {.pure.} = objecthParent*: HTREEITEMhInsertAfter*: HTREEITEMunion1*: TVINSERTSTRUCTW_UNION1TVHITTESTINFO* {.pure.} = objectpt*: POINTflags*: UINThItem*: HTREEITEMLPTVHITTESTINFO* = ptr TVHITTESTINFOPFNTVCOMPARE* = proc (lParam1: LPARAM, lParam2: LPARAM, lParamSort: LPARAM): int32 {.stdcall.}TVSORTCB* {.pure.} = objecthParent*: HTREEITEMlpfnCompare*: PFNTVCOMPARElParam*: LPARAMLPTVSORTCB* = ptr TVSORTCBNMTREEVIEWA* {.pure.} = objecthdr*: NMHDRaction*: UINTitemOld*: TVITEMAitemNew*: TVITEMAptDrag*: POINTLPNMTREEVIEWA* = ptr NMTREEVIEWANMTREEVIEWW* {.pure.} = objecthdr*: NMHDRaction*: UINTitemOld*: TVITEMWitemNew*: TVITEMWptDrag*: POINTLPNMTREEVIEWW* = ptr NMTREEVIEWWNMTVDISPINFOA* {.pure.} = objecthdr*: NMHDRitem*: TVITEMANMTVDISPINFOW* {.pure.} = objecthdr*: NMHDRitem*: TVITEMWLPNMTVDISPINFOA* = ptr NMTVDISPINFOALPNMTVDISPINFOW* = ptr NMTVDISPINFOWTCITEMA* {.pure.} = objectmask*: UINTdwState*: DWORDdwStateMask*: DWORDpszText*: LPSTRcchTextMax*: int32iImage*: int32lParam*: LPARAMTCITEMW* {.pure.} = objectmask*: UINTdwState*: DWORDdwStateMask*: DWORDpszText*: LPWSTRcchTextMax*: int32iImage*: int32lParam*: LPARAMNMIPADDRESS* {.pure.} = objecthdr*: NMHDRiField*: int32iValue*: int32LPNMIPADDRESS* = ptr NMIPADDRESSBUTTON_IMAGELIST* {.pure.} = objecthiml*: HIMAGELISTmargin*: RECTuAlign*: UINTNMBCHOTITEM* {.pure.} = objecthdr*: NMHDRdwFlags*: DWORDLPNMBCHOTITEM* = ptr NMBCHOTITEMNMBCDROPDOWN* {.pure.} = objecthdr*: NMHDRrcButton*: RECTLPNMBCDROPDOWN* = ptr NMBCDROPDOWNwhen winimUnicode:typeTTTOOLINFO* = TTTOOLINFOWwhen winimAnsi:typeTTTOOLINFO* = TTTOOLINFOAtypeTOOLINFO* = TTTOOLINFOconstICC_LISTVIEW_CLASSES* = 0x1ICC_BAR_CLASSES* = 0x4ICC_DATE_CLASSES* = 0x100ICC_COOL_CLASSES* = 0x400ICC_INTERNET_CLASSES* = 0x800ICC_LINK_CLASS* = 0x8000LVM_FIRST* = 0x1000TV_FIRST* = 0x1100HDM_FIRST* = 0x1200TCM_FIRST* = 0x1300ECM_FIRST* = 0x1500BCM_FIRST* = 0x1600NM_FIRST* = 0-0NM_CLICK* = NM_FIRST-2NM_DBLCLK* = NM_FIRST-3NM_RETURN* = NM_FIRST-4NM_RCLICK* = NM_FIRST-5NM_RDBLCLK* = NM_FIRST-6NM_SETFOCUS* = NM_FIRST-7NM_KILLFOCUS* = NM_FIRST-8NM_CUSTOMDRAW* = NM_FIRST-12LVN_FIRST* = 0-100HDN_FIRST* = 0-300TVN_FIRST* = 0-400TTN_FIRST* = 0-520TCN_FIRST* = 0-550TBN_FIRST* = 0-700UDN_FIRST* = 0-721MCN_FIRST* = 0-746DTN_FIRST2* = 0-753RBN_FIRST* = 0-831IPN_FIRST* = 0-860BCN_FIRST* = 0-1250CDRF_DODEFAULT* = 0x0CDRF_SKIPDEFAULT* = 0x4CDRF_NOTIFYITEMDRAW* = 0x20CDDS_PREPAINT* = 0x1CDDS_PREERASE* = 0x3CDDS_ITEM* = 0x10000CDDS_ITEMPREPAINT* = CDDS_ITEM or CDDS_PREPAINTCDIS_SELECTED* = 0x1CDIS_HOT* = 0x40ILC_MASK* = 0x1ILC_COLOR32* = 0x20ILD_TRANSPARENT* = 0x1HDI_WIDTH* = 0x1HDM_HITTEST* = HDM_FIRST+6HDN_ITEMCHANGINGA* = HDN_FIRST-0HDN_ITEMCHANGINGW* = HDN_FIRST-20HDN_BEGINTRACKA* = HDN_FIRST-6HDN_BEGINTRACKW* = HDN_FIRST-26HDN_ENDTRACKA* = HDN_FIRST-7HDN_ENDTRACKW* = HDN_FIRST-27HDN_BEGINDRAG* = HDN_FIRST-10HDN_ENDDRAG* = HDN_FIRST-11TOOLBARCLASSNAMEW* = "ToolbarWindow32"TOOLBARCLASSNAMEA* = "ToolbarWindow32"TBSTATE_CHECKED* = 0x1TBSTATE_PRESSED* = 0x2TBSTATE_ENABLED* = 0x4TBSTATE_WRAP* = 0x20TBSTYLE_BUTTON* = 0x0TBSTYLE_SEP* = 0x1TBSTYLE_CHECK* = 0x2TBSTYLE_GROUP* = 0x4TBSTYLE_CHECKGROUP* = TBSTYLE_GROUP or TBSTYLE_CHECKTBSTYLE_DROPDOWN* = 0x8TBSTYLE_AUTOSIZE* = 0x10TBSTYLE_TOOLTIPS* = 0x100TBSTYLE_FLAT* = 0x800TBSTYLE_CUSTOMERASE* = 0x2000TBSTYLE_TRANSPARENT* = 0x8000TBSTYLE_EX_DRAWDDARROWS* = 0x1BTNS_SEP* = TBSTYLE_SEPBTNS_DROPDOWN* = TBSTYLE_DROPDOWNBTNS_AUTOSIZE* = TBSTYLE_AUTOSIZEBTNS_SHOWTEXT* = 0x40BTNS_WHOLEDROPDOWN* = 0x80TB_ENABLEBUTTON* = WM_USER+1TB_SETSTATE* = WM_USER+17TB_GETSTATE* = WM_USER+18TB_ADDBITMAP* = WM_USER+19TB_ADDBUTTONSA* = WM_USER+20TB_INSERTBUTTONA* = WM_USER+21TB_DELETEBUTTON* = WM_USER+22TB_GETBUTTON* = WM_USER+23TB_BUTTONCOUNT* = WM_USER+24TB_GETITEMRECT* = WM_USER+29TB_BUTTONSTRUCTSIZE* = WM_USER+30TB_SETBITMAPSIZE* = WM_USER+32TB_AUTOSIZE* = WM_USER+33TB_GETSTYLE* = WM_USER+57TB_GETBUTTONSIZE* = WM_USER+58TB_SETHOTITEM* = WM_USER+72TB_MAPACCELERATORA* = WM_USER+78TB_SETEXTENDEDSTYLE* = WM_USER+84TB_GETPADDING* = WM_USER+86TB_SETPADDING* = WM_USER+87TB_MAPACCELERATORW* = WM_USER+90TBIF_IMAGE* = 0x1TBIF_TEXT* = 0x2TBIF_STATE* = 0x4TBIF_STYLE* = 0x8TBIF_LPARAM* = 0x10TB_GETBUTTONINFOW* = WM_USER+63TB_GETBUTTONINFOA* = WM_USER+65TB_INSERTBUTTONW* = WM_USER+67TB_ADDBUTTONSW* = WM_USER+68TB_HITTEST* = WM_USER+69TB_SETDRAWTEXTFLAGS* = WM_USER+70TB_GETIDEALSIZE* = WM_USER+99TBN_DROPDOWN* = TBN_FIRST-10HICF_ENTERING* = 0x10HICF_LEAVING* = 0x20TBN_HOTITEMCHANGE* = TBN_FIRST-13TBDDRET_DEFAULT* = 0REBARCLASSNAMEW* = "ReBarWindow32"REBARCLASSNAMEA* = "ReBarWindow32"RBIM_IMAGELIST* = 0x1RBS_VARHEIGHT* = 0x200RBS_BANDBORDERS* = 0x400RBS_AUTOSIZE* = 0x2000RBS_DBLCLKTOGGLE* = 0x8000RBBS_BREAK* = 0x1RBBS_FIXEDSIZE* = 0x2RBBS_CHILDEDGE* = 0x4RBBS_HIDDEN* = 0x8RBBS_GRIPPERALWAYS* = 0x80RBBS_TOPALIGN* = 0x800RBBIM_STYLE* = 0x1RBBIM_TEXT* = 0x4RBBIM_IMAGE* = 0x8RBBIM_CHILD* = 0x10RBBIM_CHILDSIZE* = 0x20RBBIM_SIZE* = 0x40RBBIM_ID* = 0x100RB_INSERTBANDA* = WM_USER+1RB_DELETEBAND* = WM_USER+2RB_SETBARINFO* = WM_USER+4RB_SETBANDINFOA* = WM_USER+6RB_HITTEST* = WM_USER+8RB_GETRECT* = WM_USER+9RB_INSERTBANDW* = WM_USER+10RB_SETBANDINFOW* = WM_USER+11RB_GETBANDCOUNT* = WM_USER+12RB_GETROWCOUNT* = WM_USER+13RB_GETROWHEIGHT* = WM_USER+14RB_IDTOINDEX* = WM_USER+16RB_GETBARHEIGHT* = WM_USER+27RB_GETBANDINFOW* = WM_USER+28RB_GETBANDINFOA* = WM_USER+29RB_MINIMIZEBAND* = WM_USER+30RB_MAXIMIZEBAND* = WM_USER+31RB_SHOWBAND* = WM_USER+35RB_MOVEBAND* = WM_USER+39RB_SETBANDWIDTH* = WM_USER+44RBN_AUTOSIZE* = RBN_FIRST-3RBN_BEGINDRAG* = RBN_FIRST-4RBN_ENDDRAG* = RBN_FIRST-5RBN_MINMAX* = RBN_FIRST-21RBHT_NOWHERE* = 0x1RBHT_CAPTION* = 0x2RBHT_CLIENT* = 0x3RBHT_GRABBER* = 0x4RBHT_CHEVRON* = 0x8RBHT_SPLITTER* = 0x10TOOLTIPS_CLASSW* = "tooltips_class32"TOOLTIPS_CLASSA* = "tooltips_class32"TTS_ALWAYSTIP* = 0x1TTS_NOPREFIX* = 0x2TTS_BALLOON* = 0x40TTF_IDISHWND* = 0x1TTF_SUBCLASS* = 0x10TTF_TRACK* = 0x20TTDT_RESHOW* = 1TTDT_AUTOPOP* = 2TTDT_INITIAL* = 3TTI_INFO* = 1TTM_ACTIVATE* = WM_USER+1TTM_SETDELAYTIME* = WM_USER+3TTM_ADDTOOLA* = WM_USER+4TTM_ADDTOOLW* = WM_USER+50TTM_SETTOOLINFOA* = WM_USER+9TTM_SETTOOLINFOW* = WM_USER+54TTM_GETTEXTA* = WM_USER+11TTM_GETTEXTW* = WM_USER+56TTM_UPDATETIPTEXTA* = WM_USER+12TTM_UPDATETIPTEXTW* = WM_USER+57TTM_TRACKACTIVATE* = WM_USER+17TTM_TRACKPOSITION* = WM_USER+18TTM_SETMAXTIPWIDTH* = WM_USER+24TTM_SETTITLEA* = WM_USER+32TTM_SETTITLEW* = WM_USER+33TTN_GETDISPINFOA* = TTN_FIRST-0TTN_GETDISPINFOW* = TTN_FIRST-10when winimUnicode:constTTN_GETDISPINFO* = TTN_GETDISPINFOWwhen winimAnsi:constTTN_GETDISPINFO* = TTN_GETDISPINFOAconstSTATUSCLASSNAMEW* = "msctls_statusbar32"STATUSCLASSNAMEA* = "msctls_statusbar32"SB_SETTEXTA* = WM_USER+1SB_SETTEXTW* = WM_USER+11SB_GETTEXTA* = WM_USER+2SB_GETTEXTW* = WM_USER+13SB_GETTEXTLENGTHA* = WM_USER+3SB_GETTEXTLENGTHW* = WM_USER+12SB_SETPARTS* = WM_USER+4SB_SETMINHEIGHT* = WM_USER+8SB_SETICON* = WM_USER+15TRACKBAR_CLASSA* = "msctls_trackbar32"TRACKBAR_CLASSW* = "msctls_trackbar32"TBS_AUTOTICKS* = 0x1TBS_VERT* = 0x2TBS_HORZ* = 0x0TBS_TOP* = 0x4TBS_BOTTOM* = 0x0TBS_LEFT* = 0x4TBS_RIGHT* = 0x0TBS_NOTICKS* = 0x10TBS_ENABLESELRANGE* = 0x20TBS_FIXEDLENGTH* = 0x40TBS_NOTHUMB* = 0x80TBM_GETPOS* = WM_USERTBM_SETTIC* = WM_USER+4TBM_SETPOS* = WM_USER+5TBM_SETRANGEMIN* = WM_USER+7TBM_SETRANGEMAX* = WM_USER+8TBM_CLEARTICS* = WM_USER+9TBM_SETSEL* = WM_USER+10TBM_GETSELSTART* = WM_USER+17TBM_GETSELEND* = WM_USER+18TBM_CLEARSEL* = WM_USER+19TBM_SETTICFREQ* = WM_USER+20TBM_SETPAGESIZE* = WM_USER+21TBM_GETPAGESIZE* = WM_USER+22TBM_SETLINESIZE* = WM_USER+23TBM_GETLINESIZE* = WM_USER+24TBM_SETTHUMBLENGTH* = WM_USER+27TBM_GETTHUMBLENGTH* = WM_USER+28UPDOWN_CLASSA* = "msctls_updown32"UPDOWN_CLASSW* = "msctls_updown32"UDS_WRAP* = 0x1UDS_SETBUDDYINT* = 0x2UDS_ALIGNRIGHT* = 0x4UDS_ARROWKEYS* = 0x20UDS_HORZ* = 0x40UDS_HOTTRACK* = 0x100UDM_SETBUDDY* = WM_USER+105UDM_SETBASE* = WM_USER+109UDM_GETBASE* = WM_USER+110UDM_SETRANGE32* = WM_USER+111UDM_GETRANGE32* = WM_USER+112UDM_SETPOS32* = WM_USER+113UDM_GETPOS32* = WM_USER+114UDN_DELTAPOS* = UDN_FIRST-1PROGRESS_CLASSA* = "msctls_progress32"PROGRESS_CLASSW* = "msctls_progress32"PBS_SMOOTH* = 0x1PBS_VERTICAL* = 0x4PBM_SETPOS* = WM_USER+2PBM_STEPIT* = WM_USER+5PBM_SETRANGE32* = WM_USER+6PBM_GETRANGE* = WM_USER+7PBM_GETPOS* = WM_USER+8PBS_MARQUEE* = 0x8PBM_SETMARQUEE* = WM_USER+10CCS_TOP* = 0x1CCS_BOTTOM* = 0x3CCS_NORESIZE* = 0x4CCS_NOPARENTALIGN* = 0x8CCS_NODIVIDER* = 0x40CCS_VERT* = 0x80CCS_LEFT* = CCS_VERT or CCS_TOPCCS_RIGHT* = CCS_VERT or CCS_BOTTOMWC_LINK* = "SysLink"WC_LISTVIEWA* = "SysListView32"WC_LISTVIEWW* = "SysListView32"LVS_ICON* = 0x0LVS_REPORT* = 0x1LVS_SMALLICON* = 0x2LVS_LIST* = 0x3LVS_SINGLESEL* = 0x4LVS_SHOWSELALWAYS* = 0x8LVS_SORTASCENDING* = 0x10LVS_SORTDESCENDING* = 0x20LVS_SHAREIMAGELISTS* = 0x40LVS_AUTOARRANGE* = 0x100LVS_EDITLABELS* = 0x200LVS_ALIGNTOP* = 0x0LVS_ALIGNLEFT* = 0x800LVS_NOCOLUMNHEADER* = 0x4000LVS_NOSORTHEADER* = 0x8000LVM_GETBKCOLOR* = LVM_FIRST+0LVM_SETBKCOLOR* = LVM_FIRST+1LVSIL_NORMAL* = 0LVSIL_SMALL* = 1LVSIL_STATE* = 2LVM_SETIMAGELIST* = LVM_FIRST+3LVM_GETITEMCOUNT* = LVM_FIRST+4LVIF_TEXT* = 0x1LVIF_IMAGE* = 0x2LVIF_PARAM* = 0x4LVIF_STATE* = 0x8LVIS_FOCUSED* = 0x1LVIS_SELECTED* = 0x2LVIS_CUT* = 0x4LVIS_DROPHILITED* = 0x8LVIS_STATEIMAGEMASK* = 0xF000I_IMAGECALLBACK* = -1I_IMAGENONE* = -2LVM_GETITEMA* = LVM_FIRST+5LVM_GETITEMW* = LVM_FIRST+75LVM_SETITEMA* = LVM_FIRST+6LVM_SETITEMW* = LVM_FIRST+76LVM_INSERTITEMA* = LVM_FIRST+7LVM_INSERTITEMW* = LVM_FIRST+77LVM_DELETEITEM* = LVM_FIRST+8LVM_DELETEALLITEMS* = LVM_FIRST+9LVNI_ALL* = 0x0LVNI_FOCUSED* = 0x1LVNI_SELECTED* = 0x2LVNI_CUT* = 0x4LVNI_DROPHILITED* = 0x8LVNI_PREVIOUS* = 0x20LVNI_ABOVE* = 0x100LVNI_BELOW* = 0x200LVNI_TOLEFT* = 0x400LVNI_TORIGHT* = 0x800LVM_GETNEXTITEM* = LVM_FIRST+12LVFI_PARAM* = 0x1LVFI_STRING* = 0x2LVFI_PARTIAL* = 0x8LVM_FINDITEMA* = LVM_FIRST+13LVM_FINDITEMW* = LVM_FIRST+83LVIR_BOUNDS* = 0LVIR_ICON* = 1LVIR_LABEL* = 2LVIR_SELECTBOUNDS* = 3LVM_GETITEMRECT* = LVM_FIRST+14LVM_GETITEMPOSITION* = LVM_FIRST+16LVHT_NOWHERE* = 0x1LVHT_ONITEMICON* = 0x2LVHT_ONITEMLABEL* = 0x4LVHT_ONITEMSTATEICON* = 0x8LVHT_ABOVE* = 0x8LVHT_BELOW* = 0x10LVHT_TORIGHT* = 0x20LVHT_TOLEFT* = 0x40LVM_ENSUREVISIBLE* = LVM_FIRST+19LVM_SCROLL* = LVM_FIRST+20LVM_REDRAWITEMS* = LVM_FIRST+21LVA_DEFAULT* = 0x0LVA_ALIGNLEFT* = 0x1LVA_ALIGNTOP* = 0x2LVA_SNAPTOGRID* = 0x5LVM_ARRANGE* = LVM_FIRST+22LVM_EDITLABELA* = LVM_FIRST+23LVM_EDITLABELW* = LVM_FIRST+118LVM_GETEDITCONTROL* = LVM_FIRST+24LVCF_FMT* = 0x1LVCF_WIDTH* = 0x2LVCF_TEXT* = 0x4LVCF_IMAGE* = 0x10LVCFMT_LEFT* = 0x0LVCFMT_RIGHT* = 0x1LVCFMT_CENTER* = 0x2LVM_GETCOLUMNA* = LVM_FIRST+25LVM_GETCOLUMNW* = LVM_FIRST+95LVM_SETCOLUMNA* = LVM_FIRST+26LVM_SETCOLUMNW* = LVM_FIRST+96LVM_INSERTCOLUMNA* = LVM_FIRST+27LVM_INSERTCOLUMNW* = LVM_FIRST+97LVM_DELETECOLUMN* = LVM_FIRST+28LVM_GETCOLUMNWIDTH* = LVM_FIRST+29LVSCW_AUTOSIZE* = -1LVSCW_AUTOSIZE_USEHEADER* = -2LVM_SETCOLUMNWIDTH* = LVM_FIRST+30LVM_GETVIEWRECT* = LVM_FIRST+34LVM_GETTEXTCOLOR* = LVM_FIRST+35LVM_SETTEXTCOLOR* = LVM_FIRST+36LVM_SETTEXTBKCOLOR* = LVM_FIRST+38LVM_GETTOPINDEX* = LVM_FIRST+39LVM_GETCOUNTPERPAGE* = LVM_FIRST+40LVM_SETITEMSTATE* = LVM_FIRST+43LVM_GETITEMSTATE* = LVM_FIRST+44LVM_SORTITEMS* = LVM_FIRST+48LVM_SETITEMPOSITION32* = LVM_FIRST+49LVM_GETSELECTEDCOUNT* = LVM_FIRST+50LVM_GETITEMSPACING* = LVM_FIRST+51LVM_SETICONSPACING* = LVM_FIRST+53LVM_SETEXTENDEDLISTVIEWSTYLE* = LVM_FIRST+54LVM_GETEXTENDEDLISTVIEWSTYLE* = LVM_FIRST+55LVS_EX_SUBITEMIMAGES* = 0x2LVS_EX_CHECKBOXES* = 0x4LVS_EX_HEADERDRAGDROP* = 0x10LVS_EX_FULLROWSELECT* = 0x20LVS_EX_LABELTIP* = 0x4000LVM_GETSUBITEMRECT* = LVM_FIRST+56LVM_SUBITEMHITTEST* = LVM_FIRST+57LVM_SETCOLUMNORDERARRAY* = LVM_FIRST+58LVM_GETCOLUMNORDERARRAY* = LVM_FIRST+59LVM_APPROXIMATEVIEWRECT* = LVM_FIRST+64LVM_SORTITEMSEX* = LVM_FIRST+81LVM_SETVIEW* = LVM_FIRST+142LVM_GETVIEW* = LVM_FIRST+143LVN_ITEMCHANGED* = LVN_FIRST-1LVN_INSERTITEM* = LVN_FIRST-2LVN_DELETEITEM* = LVN_FIRST-3LVN_DELETEALLITEMS* = LVN_FIRST-4LVN_BEGINLABELEDITA* = LVN_FIRST-5LVN_BEGINLABELEDITW* = LVN_FIRST-75LVN_ENDLABELEDITA* = LVN_FIRST-6LVN_ENDLABELEDITW* = LVN_FIRST-76LVN_COLUMNCLICK* = LVN_FIRST-8LVN_BEGINDRAG* = LVN_FIRST-9LVN_BEGINRDRAG* = LVN_FIRST-11LVN_ITEMACTIVATE* = LVN_FIRST-14WC_TREEVIEWA* = "SysTreeView32"WC_TREEVIEWW* = "SysTreeView32"TVS_HASBUTTONS* = 0x1TVS_HASLINES* = 0x2TVS_LINESATROOT* = 0x4TVS_EDITLABELS* = 0x8TVS_SHOWSELALWAYS* = 0x20TVS_CHECKBOXES* = 0x100TVS_SINGLEEXPAND* = 0x400TVS_FULLROWSELECT* = 0x1000TVS_NOSCROLL* = 0x2000TVS_NOHSCROLL* = 0x8000TVIF_TEXT* = 0x1TVIF_IMAGE* = 0x2TVIF_PARAM* = 0x4TVIF_STATE* = 0x8TVIF_HANDLE* = 0x10TVIF_SELECTEDIMAGE* = 0x20TVIF_CHILDREN* = 0x40TVIS_SELECTED* = 0x2TVIS_CUT* = 0x4TVIS_DROPHILITED* = 0x8TVIS_BOLD* = 0x10TVIS_EXPANDED* = 0x20TVIS_STATEIMAGEMASK* = 0xF000TVM_INSERTITEMA* = TV_FIRST+0TVM_INSERTITEMW* = TV_FIRST+50TVM_DELETEITEM* = TV_FIRST+1TVM_EXPAND* = TV_FIRST+2TVE_COLLAPSE* = 0x1TVE_EXPAND* = 0x2TVE_TOGGLE* = 0x3TVE_COLLAPSERESET* = 0x8000TVM_GETITEMRECT* = TV_FIRST+4TVM_GETCOUNT* = TV_FIRST+5TVM_GETINDENT* = TV_FIRST+6TVM_SETINDENT* = TV_FIRST+7TVSIL_NORMAL* = 0TVSIL_STATE* = 2TVM_SETIMAGELIST* = TV_FIRST+9TVM_GETNEXTITEM* = TV_FIRST+10TVGN_ROOT* = 0x0TVGN_NEXT* = 0x1TVGN_PREVIOUS* = 0x2TVGN_PARENT* = 0x3TVGN_CHILD* = 0x4TVGN_FIRSTVISIBLE* = 0x5TVGN_NEXTVISIBLE* = 0x6TVGN_PREVIOUSVISIBLE* = 0x7TVGN_DROPHILITE* = 0x8TVGN_CARET* = 0x9TVM_SELECTITEM* = TV_FIRST+11TVM_GETITEMA* = TV_FIRST+12TVM_GETITEMW* = TV_FIRST+62TVM_SETITEMA* = TV_FIRST+13TVM_SETITEMW* = TV_FIRST+63TVM_EDITLABELA* = TV_FIRST+14TVM_EDITLABELW* = TV_FIRST+65TVM_GETEDITCONTROL* = TV_FIRST+15TVM_HITTEST* = TV_FIRST+17TVHT_NOWHERE* = 0x1TVHT_ONITEMICON* = 0x2TVHT_ONITEMLABEL* = 0x4TVHT_ONITEMSTATEICON* = 0x40TVHT_ONITEM* = TVHT_ONITEMICON or TVHT_ONITEMLABEL or TVHT_ONITEMSTATEICONTVHT_ONITEMINDENT* = 0x8TVHT_ONITEMBUTTON* = 0x10TVHT_ONITEMRIGHT* = 0x20TVHT_ABOVE* = 0x100TVHT_BELOW* = 0x200TVHT_TORIGHT* = 0x400TVHT_TOLEFT* = 0x800TVM_CREATEDRAGIMAGE* = TV_FIRST+18TVM_SORTCHILDREN* = TV_FIRST+19TVM_ENSUREVISIBLE* = TV_FIRST+20TVM_SORTCHILDRENCB* = TV_FIRST+21TVM_SETINSERTMARK* = TV_FIRST+26TVM_SETBKCOLOR* = TV_FIRST+29TVM_SETTEXTCOLOR* = TV_FIRST+30TVN_SELCHANGINGA* = TVN_FIRST-1TVN_SELCHANGINGW* = TVN_FIRST-50TVN_SELCHANGEDA* = TVN_FIRST-2TVN_SELCHANGEDW* = TVN_FIRST-51TVN_ITEMEXPANDINGA* = TVN_FIRST-5TVN_ITEMEXPANDINGW* = TVN_FIRST-54TVN_ITEMEXPANDEDA* = TVN_FIRST-6TVN_ITEMEXPANDEDW* = TVN_FIRST-55TVN_BEGINDRAGA* = TVN_FIRST-7TVN_BEGINDRAGW* = TVN_FIRST-56TVN_BEGINRDRAGA* = TVN_FIRST-8TVN_BEGINRDRAGW* = TVN_FIRST-57TVN_DELETEITEMA* = TVN_FIRST-9TVN_DELETEITEMW* = TVN_FIRST-58TVN_BEGINLABELEDITA* = TVN_FIRST-10TVN_BEGINLABELEDITW* = TVN_FIRST-59TVN_ENDLABELEDITA* = TVN_FIRST-11TVN_ENDLABELEDITW* = TVN_FIRST-60WC_TABCONTROLA* = "SysTabControl32"WC_TABCONTROLW* = "SysTabControl32"TCS_FORCEICONLEFT* = 0x10TCS_BUTTONS* = 0x100TCS_MULTILINE* = 0x200TCS_FIXEDWIDTH* = 0x400TCS_FOCUSONBUTTONDOWN* = 0x1000TCM_SETIMAGELIST* = TCM_FIRST+3TCM_GETITEMCOUNT* = TCM_FIRST+4TCIF_TEXT* = 0x1TCIF_IMAGE* = 0x2TCM_GETITEMA* = TCM_FIRST+5TCM_GETITEMW* = TCM_FIRST+60TCM_SETITEMA* = TCM_FIRST+6TCM_SETITEMW* = TCM_FIRST+61TCM_INSERTITEMA* = TCM_FIRST+7TCM_INSERTITEMW* = TCM_FIRST+62TCM_DELETEITEM* = TCM_FIRST+8TCM_DELETEALLITEMS* = TCM_FIRST+9TCM_GETCURSEL* = TCM_FIRST+11TCM_SETCURSEL* = TCM_FIRST+12TCM_ADJUSTRECT* = TCM_FIRST+40TCM_SETPADDING* = TCM_FIRST+43TCM_SETCURFOCUS* = TCM_FIRST+48TCN_SELCHANGE* = TCN_FIRST-1TCN_SELCHANGING* = TCN_FIRST-2MONTHCAL_CLASSW* = "SysMonthCal32"MONTHCAL_CLASSA* = "SysMonthCal32"MCM_FIRST* = 0x1000MCM_GETCURSEL* = MCM_FIRST+1MCM_SETCURSEL* = MCM_FIRST+2MCM_GETMAXSELCOUNT* = MCM_FIRST+3MCM_SETMAXSELCOUNT* = MCM_FIRST+4MCM_GETSELRANGE* = MCM_FIRST+5MCM_SETSELRANGE* = MCM_FIRST+6MCM_GETMINREQRECT* = MCM_FIRST+9MCM_SETTODAY* = MCM_FIRST+12MCM_GETTODAY* = MCM_FIRST+13MCM_SETFIRSTDAYOFWEEK* = MCM_FIRST+15MCM_GETRANGE* = MCM_FIRST+17MCM_SETRANGE* = MCM_FIRST+18MCM_GETMAXTODAYWIDTH* = MCM_FIRST+21MCN_SELCHANGE* = MCN_FIRST-3MCN_VIEWCHANGE* = MCN_FIRST-4MCS_MULTISELECT* = 0x2MCS_WEEKNUMBERS* = 0x4MCS_NOTODAY* = 0x10DATETIMEPICK_CLASSW* = "SysDateTimePick32"DATETIMEPICK_CLASSA* = "SysDateTimePick32"DTM_FIRST* = 0x1000DTM_GETSYSTEMTIME* = DTM_FIRST+1DTM_SETSYSTEMTIME* = DTM_FIRST+2DTM_GETRANGE* = DTM_FIRST+3DTM_SETRANGE* = DTM_FIRST+4DTM_GETIDEALSIZE* = DTM_FIRST+15DTS_UPDOWN* = 0x1DTS_SHOWNONE* = 0x2DTS_SHORTDATECENTURYFORMAT* = 0xcDTS_TIMEFORMAT* = 0x9DTN_DATETIMECHANGE* = DTN_FIRST2-6GDTR_MIN* = 0x1GDTR_MAX* = 0x2GDT_VALID* = 0IPM_CLEARADDRESS* = WM_USER+100IPM_SETADDRESS* = WM_USER+101IPM_GETADDRESS* = WM_USER+102IPM_SETFOCUS* = WM_USER+104WC_IPADDRESSW* = "SysIPAddress32"WC_IPADDRESSA* = "SysIPAddress32"IPN_FIELDCHANGED* = IPN_FIRST-0WC_BUTTONA* = "Button"WC_BUTTONW* = "Button"BUTTON_IMAGELIST_ALIGN_LEFT* = 0BUTTON_IMAGELIST_ALIGN_RIGHT* = 1BUTTON_IMAGELIST_ALIGN_TOP* = 2BUTTON_IMAGELIST_ALIGN_BOTTOM* = 3BUTTON_IMAGELIST_ALIGN_CENTER* = 4BCM_GETIDEALSIZE* = BCM_FIRST+0x1BCM_SETIMAGELIST* = BCM_FIRST+0x2BCN_HOTITEMCHANGE* = BCN_FIRST+0x1BS_SPLITBUTTON* = 0xcBCN_DROPDOWN* = BCN_FIRST+0x0002WC_STATICA* = "Static"WC_STATICW* = "Static"WC_EDITA* = "Edit"WC_EDITW* = "Edit"WC_LISTBOXA* = "ListBox"WC_LISTBOXW* = "ListBox"WC_COMBOBOXA* = "ComboBox"WC_COMBOBOXW* = "ComboBox"WC_SCROLLBARA* = "ScrollBar"WC_SCROLLBARW* = "ScrollBar"LWS_RIGHT* = 0x20LIF_ITEMINDEX* = 0x1LIF_STATE* = 0x2LIF_ITEMID* = 0x4LIF_URL* = 0x8LIS_FOCUSED* = 0x1LIS_ENABLED* = 0x2LIS_VISITED* = 0x4LIS_HOTTRACK* = 0x8LIS_DEFAULTCOLORS* = 0x10LM_GETIDEALHEIGHT* = WM_USER+0x301LM_SETITEM* = WM_USER+0x302LM_GETITEM* = WM_USER+0x303TVI_FIRST* = HTREEITEM(-0xffff)TVI_LAST* = HTREEITEM(-0xfffe)TVI_ROOT* = HTREEITEM(-0x10000)LM_GETIDEALSIZE* = LM_GETIDEALHEIGHTtypeSUBCLASSPROC* = proc (hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, uIdSubclass: UINT_PTR, dwRefData: DWORD_PTR): LRESULT {.stdcall.}proc InitCommonControlsEx*(P1: ptr TINITCOMMONCONTROLSEX): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_Create*(cx: int32, cy: int32, flags: UINT, cInitial: int32, cGrow: int32): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_Destroy*(himl: HIMAGELIST): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_GetImageCount*(himl: HIMAGELIST): int32 {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_Add*(himl: HIMAGELIST, hbmImage: HBITMAP, hbmMask: HBITMAP): int32 {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_ReplaceIcon*(himl: HIMAGELIST, i: int32, hicon: HICON): int32 {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_Draw*(himl: HIMAGELIST, i: int32, hdcDst: HDC, x: int32, y: int32, fStyle: UINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_Replace*(himl: HIMAGELIST, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_AddMasked*(himl: HIMAGELIST, hbmImage: HBITMAP, crMask: COLORREF): int32 {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_Remove*(himl: HIMAGELIST, i: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_GetIcon*(himl: HIMAGELIST, i: int32, flags: UINT): HICON {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_BeginDrag*(himlTrack: HIMAGELIST, iTrack: int32, dxHotspot: int32, dyHotspot: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_EndDrag*(): void {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_DragEnter*(hwndLock: HWND, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_DragMove*(x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_DragShowNolock*(fShow: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_GetIconSize*(himl: HIMAGELIST, cx: ptr int32, cy: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc ImageList_GetImageInfo*(himl: HIMAGELIST, i: int32, pImageInfo: ptr IMAGEINFO): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc SetWindowSubclass*(hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR, dwRefData: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc RemoveWindowSubclass*(hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.}proc DefSubclassProc*(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "comctl32", importc.}template INDEXTOSTATEIMAGEMASK*(i: untyped): untyped = i shl 12template MAKEIPADDRESS*(b1: BYTE, b2: BYTE, b3: BYTE, b4: BYTE): LPARAM = (b1.LPARAM shl 24) + (b2.LPARAM shl 16) + (b3.LPARAM shl 8) + (b4.LPARAM)template FIRST_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x shr 24)template SECOND_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x shr 16)template THIRD_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x shr 8)template FOURTH_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x)template ImageList_AddIcon*(himl: HIMAGELIST, hicon: HICON): int32 = ImageList_ReplaceIcon(himl, -1, hicon)when winimUnicode:constLVM_EDITLABEL* = LVM_EDITLABELWwhen winimAnsi:constLVM_EDITLABEL* = LVM_EDITLABELAwhen winimUnicode:typeLVFINDINFO* = LVFINDINFOWwhen winimAnsi:typeLVFINDINFO* = LVFINDINFOAwhen winimUnicode:constLVM_FINDITEM* = LVM_FINDITEMWwhen winimAnsi:constLVM_FINDITEM* = LVM_FINDITEMAtemplate ListView_GetCheckState*(hwnd: HWND, i: UINT): BOOL = discardable BOOL((SendMessage(hwnd, LVM_GETITEMSTATE, cast[WPARAM](i), LVIS_STATEIMAGEMASK) shr 12) - 1)when winimUnicode:constLVM_GETCOLUMN* = LVM_GETCOLUMNWwhen winimAnsi:constLVM_GETCOLUMN* = LVM_GETCOLUMNAwhen winimUnicode:constLVM_GETITEM* = LVM_GETITEMWwhen winimAnsi:constLVM_GETITEM* = LVM_GETITEMAwhen winimUnicode:constLVM_INSERTCOLUMN* = LVM_INSERTCOLUMNWwhen winimAnsi:constLVM_INSERTCOLUMN* = LVM_INSERTCOLUMNAwhen winimUnicode:constLVM_INSERTITEM* = LVM_INSERTITEMWwhen winimAnsi:constLVM_INSERTITEM* = LVM_INSERTITEMAtemplate ListView_SetItemState*(hwnd: HWND, i: int32, data: UINT, mask: UINT): void = (var lvi = LV_ITEM(stateMask: mask, state: data); SendMessage(hwnd, LVM_SETITEMSTATE, cast[WPARAM](i), cast[LPARAM](addr lvi)))template ListView_SetCheckState*(hwnd: HWND, i: UINT, fCheck: BOOL) = ListView_SetItemState(hwnd, i, INDEXTOSTATEIMAGEMASK(if bool fCheck:2 else:1), LVIS_STATEIMAGEMASK)when winimUnicode:constLVM_SETCOLUMN* = LVM_SETCOLUMNWwhen winimAnsi:constLVM_SETCOLUMN* = LVM_SETCOLUMNAwhen winimUnicode:constLVM_SETITEM* = LVM_SETITEMWwhen winimAnsi:constLVM_SETITEM* = LVM_SETITEMAwhen winimUnicode:constTCM_GETITEM* = TCM_GETITEMWwhen winimAnsi:constTCM_GETITEM* = TCM_GETITEMAwhen winimUnicode:constTCM_INSERTITEM* = TCM_INSERTITEMWwhen winimAnsi:constTCM_INSERTITEM* = TCM_INSERTITEMAwhen winimUnicode:constTCM_SETITEM* = TCM_SETITEMWwhen winimAnsi:constTCM_SETITEM* = TCM_SETITEMAtemplate TreeView_CreateDragImage*(hwnd: HWND, hitem: HTREEITEM): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, TVM_CREATEDRAGIMAGE, 0, cast[LPARAM](hitem))template TreeView_DeleteItem*(hwnd: HWND, hitem: HTREEITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_DELETEITEM, 0, cast[LPARAM](hitem))when winimUnicode:constTVM_EDITLABEL* = TVM_EDITLABELWwhen winimAnsi:constTVM_EDITLABEL* = TVM_EDITLABELAtemplate TreeView_EditLabel*(hwnd: HWND, hitem: HTREEITEM): HWND = discardable HWND SendMessage(hwnd, TVM_EDITLABEL, 0, cast[LPARAM](hitem))template TreeView_EnsureVisible*(hwnd: HWND, hitem: HTREEITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_ENSUREVISIBLE, 0, cast[LPARAM](hitem))template TreeView_Expand*(hwnd: HWND, hitem: HTREEITEM, code: UINT): BOOL = discardable BOOL SendMessage(hwnd, TVM_EXPAND, cast[WPARAM](code), cast[LPARAM](hitem))template TreeView_GetNextItem*(hwnd: HWND, hitem: HTREEITEM, code: UINT): HTREEITEM = discardable HTREEITEM SendMessage(hwnd, TVM_GETNEXTITEM, cast[WPARAM](code), cast[LPARAM](hitem))template TreeView_GetCount*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, TVM_GETCOUNT, 0, 0)template TreeView_GetEditControl*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, TVM_GETEDITCONTROL, 0, 0)template TreeView_GetFirstVisible*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_FIRSTVISIBLE)template TreeView_GetIndent*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, TVM_GETINDENT, 0, 0)when winimUnicode:typeLPTVITEM* = LPTVITEMWwhen winimAnsi:typeLPTVITEM* = LPTVITEMAwhen winimUnicode:constTVM_GETITEM* = TVM_GETITEMWwhen winimAnsi:constTVM_GETITEM* = TVM_GETITEMAtemplate TreeView_GetItem*(hwnd: HWND, pitem: LPTVITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_GETITEM, 0, cast[LPARAM](pitem))template TreeView_GetItemRect*(hwnd: HWND, hitem: HTREEITEM, prc: LPRECT, fItemRect: BOOL): BOOL = (cast[ptr HTREEITEM](prc)[] = hitem; discardable BOOL SendMessage(hwnd, TVM_GETITEMRECT, cast[WPARAM](fItemRect), cast[LPARAM](prc)))template TreeView_GetRoot*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_ROOT)template TreeView_GetSelection*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_CARET)template TreeView_HitTest*(hwnd: HWND, lpht: LPTVHITTESTINFO): HTREEITEM = discardable HTREEITEM SendMessage(hwnd, TVM_HITTEST, 0, cast[LPARAM](lpht))when winimUnicode:constTVM_INSERTITEM* = TVM_INSERTITEMWwhen winimAnsi:constTVM_INSERTITEM* = TVM_INSERTITEMAtemplate TreeView_Select*(hwnd: HWND, hitem: HTREEITEM, code: UINT): BOOL = discardable BOOL SendMessage(hwnd, TVM_SELECTITEM, cast[WPARAM](code), cast[LPARAM](hitem))template TreeView_SelectDropTarget*(hwnd: HWND, hitem: HTREEITEM): BOOL = TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)template TreeView_SelectItem*(hwnd: HWND, hitem: HTREEITEM): BOOL = TreeView_Select(hwnd, hitem, TVGN_CARET)template TreeView_SetBkColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_SETBKCOLOR, 0, cast[LPARAM](clr))when winimUnicode:typeTVITEM* = TVITEMWwhen winimAnsi:typeTVITEM* = TVITEMAwhen winimUnicode:constTVM_SETITEM* = TVM_SETITEMWwhen winimAnsi:constTVM_SETITEM* = TVM_SETITEMAtemplate TreeView_SetIndent*(hwnd: HWND, indent: INT): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETINDENT, cast[WPARAM](indent), 0)template TreeView_SetInsertMark*(hwnd: HWND, hItem: HTREEITEM, fAfter: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETINSERTMARK, cast[WPARAM](fAfter), cast[LPARAM](hItem))template TreeView_SetItem*(hwnd: HWND, pitem: LPTVITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETITEM, 0, cast[LPARAM](pitem))template TreeView_SetTextColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_SETTEXTCOLOR, 0, cast[LPARAM](clr))template TreeView_SortChildren*(hwnd: HWND, hitem: HTREEITEM, recurse: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SORTCHILDREN, cast[WPARAM](recurse), cast[LPARAM](hitem))template TreeView_SortChildrenCB*(hwnd: HWND, psort: LPTVSORTCB, recurse: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SORTCHILDRENCB, cast[WPARAM](recurse), cast[LPARAM](psort))proc `itemex=`*(self: var TVINSERTSTRUCTA, x: TVITEMEXA) {.inline.} = self.union1.itemex = xproc itemex*(self: TVINSERTSTRUCTA): TVITEMEXA {.inline.} = self.union1.itemexproc itemex*(self: var TVINSERTSTRUCTA): var TVITEMEXA {.inline.} = self.union1.itemexproc `item=`*(self: var TVINSERTSTRUCTA, x: TV_ITEMA) {.inline.} = self.union1.item = xproc item*(self: TVINSERTSTRUCTA): TV_ITEMA {.inline.} = self.union1.itemproc item*(self: var TVINSERTSTRUCTA): var TV_ITEMA {.inline.} = self.union1.itemproc `itemex=`*(self: var TVINSERTSTRUCTW, x: TVITEMEXW) {.inline.} = self.union1.itemex = xproc itemex*(self: TVINSERTSTRUCTW): TVITEMEXW {.inline.} = self.union1.itemexproc itemex*(self: var TVINSERTSTRUCTW): var TVITEMEXW {.inline.} = self.union1.itemexproc `item=`*(self: var TVINSERTSTRUCTW, x: TV_ITEMW) {.inline.} = self.union1.item = xproc item*(self: TVINSERTSTRUCTW): TV_ITEMW {.inline.} = self.union1.itemproc item*(self: var TVINSERTSTRUCTW): var TV_ITEMW {.inline.} = self.union1.itemwhen winimUnicode:typeLPNMLVDISPINFO* = LPNMLVDISPINFOWLPNMHEADER* = LPNMHEADERWTBBUTTONINFO* = TBBUTTONINFOWREBARBANDINFO* = REBARBANDINFOWLVITEM* = LVITEMWLVCOLUMN* = LVCOLUMNWTVINSERTSTRUCT* = TVINSERTSTRUCTWLPNMTREEVIEW* = LPNMTREEVIEWWLPNMTVDISPINFO* = LPNMTVDISPINFOWTCITEM* = TCITEMWconstHDN_ITEMCHANGING* = HDN_ITEMCHANGINGWHDN_BEGINTRACK* = HDN_BEGINTRACKWHDN_ENDTRACK* = HDN_ENDTRACKWTOOLBARCLASSNAME* = TOOLBARCLASSNAMEWTB_MAPACCELERATOR* = TB_MAPACCELERATORWTB_GETBUTTONINFO* = TB_GETBUTTONINFOWTB_INSERTBUTTON* = TB_INSERTBUTTONWTB_ADDBUTTONS* = TB_ADDBUTTONSWREBARCLASSNAME* = REBARCLASSNAMEWRB_INSERTBAND* = RB_INSERTBANDWRB_SETBANDINFO* = RB_SETBANDINFOWRB_GETBANDINFO* = RB_GETBANDINFOWTOOLTIPS_CLASS* = TOOLTIPS_CLASSWTTM_ADDTOOL* = TTM_ADDTOOLWTTM_SETTOOLINFO* = TTM_SETTOOLINFOWTTM_GETTEXT* = TTM_GETTEXTWTTM_UPDATETIPTEXT* = TTM_UPDATETIPTEXTWTTM_SETTITLE* = TTM_SETTITLEWSTATUSCLASSNAME* = STATUSCLASSNAMEWSB_GETTEXT* = SB_GETTEXTWSB_SETTEXT* = SB_SETTEXTWSB_GETTEXTLENGTH* = SB_GETTEXTLENGTHWTRACKBAR_CLASS* = TRACKBAR_CLASSWUPDOWN_CLASS* = UPDOWN_CLASSWPROGRESS_CLASS* = PROGRESS_CLASSWWC_LISTVIEW* = WC_LISTVIEWWLVN_BEGINLABELEDIT* = LVN_BEGINLABELEDITWLVN_ENDLABELEDIT* = LVN_ENDLABELEDITWWC_TREEVIEW* = WC_TREEVIEWWTVN_SELCHANGING* = TVN_SELCHANGINGWTVN_SELCHANGED* = TVN_SELCHANGEDWTVN_ITEMEXPANDING* = TVN_ITEMEXPANDINGWTVN_ITEMEXPANDED* = TVN_ITEMEXPANDEDWTVN_BEGINDRAG* = TVN_BEGINDRAGWTVN_BEGINRDRAG* = TVN_BEGINRDRAGWTVN_DELETEITEM* = TVN_DELETEITEMWTVN_BEGINLABELEDIT* = TVN_BEGINLABELEDITWTVN_ENDLABELEDIT* = TVN_ENDLABELEDITWWC_TABCONTROL* = WC_TABCONTROLWMONTHCAL_CLASS* = MONTHCAL_CLASSWDATETIMEPICK_CLASS* = DATETIMEPICK_CLASSWWC_IPADDRESS* = WC_IPADDRESSWWC_BUTTON* = WC_BUTTONWWC_STATIC* = WC_STATICWWC_EDIT* = WC_EDITWWC_LISTBOX* = WC_LISTBOXWWC_COMBOBOX* = WC_COMBOBOXWWC_SCROLLBAR* = WC_SCROLLBARWwhen winimAnsi:typeLPNMLVDISPINFO* = LPNMLVDISPINFOALPNMHEADER* = LPNMHEADERATBBUTTONINFO* = TBBUTTONINFOAREBARBANDINFO* = REBARBANDINFOALVITEM* = LVITEMALVCOLUMN* = LVCOLUMNATVINSERTSTRUCT* = TVINSERTSTRUCTALPNMTREEVIEW* = LPNMTREEVIEWALPNMTVDISPINFO* = LPNMTVDISPINFOATCITEM* = TCITEMAconstHDN_ITEMCHANGING* = HDN_ITEMCHANGINGAHDN_BEGINTRACK* = HDN_BEGINTRACKAHDN_ENDTRACK* = HDN_ENDTRACKATOOLBARCLASSNAME* = TOOLBARCLASSNAMEATB_MAPACCELERATOR* = TB_MAPACCELERATORATB_GETBUTTONINFO* = TB_GETBUTTONINFOATB_INSERTBUTTON* = TB_INSERTBUTTONATB_ADDBUTTONS* = TB_ADDBUTTONSAREBARCLASSNAME* = REBARCLASSNAMEARB_INSERTBAND* = RB_INSERTBANDARB_SETBANDINFO* = RB_SETBANDINFOARB_GETBANDINFO* = RB_GETBANDINFOATOOLTIPS_CLASS* = TOOLTIPS_CLASSATTM_ADDTOOL* = TTM_ADDTOOLATTM_SETTOOLINFO* = TTM_SETTOOLINFOATTM_GETTEXT* = TTM_GETTEXTATTM_UPDATETIPTEXT* = TTM_UPDATETIPTEXTATTM_SETTITLE* = TTM_SETTITLEASTATUSCLASSNAME* = STATUSCLASSNAMEASB_GETTEXT* = SB_GETTEXTASB_SETTEXT* = SB_SETTEXTASB_GETTEXTLENGTH* = SB_GETTEXTLENGTHATRACKBAR_CLASS* = TRACKBAR_CLASSAUPDOWN_CLASS* = UPDOWN_CLASSAPROGRESS_CLASS* = PROGRESS_CLASSAWC_LISTVIEW* = WC_LISTVIEWALVN_BEGINLABELEDIT* = LVN_BEGINLABELEDITALVN_ENDLABELEDIT* = LVN_ENDLABELEDITAWC_TREEVIEW* = WC_TREEVIEWATVN_SELCHANGING* = TVN_SELCHANGINGATVN_SELCHANGED* = TVN_SELCHANGEDATVN_ITEMEXPANDING* = TVN_ITEMEXPANDINGATVN_ITEMEXPANDED* = TVN_ITEMEXPANDEDATVN_BEGINDRAG* = TVN_BEGINDRAGATVN_BEGINRDRAG* = TVN_BEGINRDRAGATVN_DELETEITEM* = TVN_DELETEITEMATVN_BEGINLABELEDIT* = TVN_BEGINLABELEDITATVN_ENDLABELEDIT* = TVN_ENDLABELEDITAWC_TABCONTROL* = WC_TABCONTROLAMONTHCAL_CLASS* = MONTHCAL_CLASSADATETIMEPICK_CLASS* = DATETIMEPICK_CLASSAWC_IPADDRESS* = WC_IPADDRESSAWC_BUTTON* = WC_BUTTONAWC_STATIC* = WC_STATICAWC_EDIT* = WC_EDITAWC_LISTBOX* = WC_LISTBOXAWC_COMBOBOX* = WC_COMBOBOXAWC_SCROLLBAR* = WC_SCROLLBARAtypeLPOFNHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.}OPENFILENAMEA* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhInstance*: HINSTANCElpstrFilter*: LPCSTRlpstrCustomFilter*: LPSTRnMaxCustFilter*: DWORDnFilterIndex*: DWORDlpstrFile*: LPSTRnMaxFile*: DWORDlpstrFileTitle*: LPSTRnMaxFileTitle*: DWORDlpstrInitialDir*: LPCSTRlpstrTitle*: LPCSTRFlags*: DWORDnFileOffset*: WORDnFileExtension*: WORDlpstrDefExt*: LPCSTRlCustData*: LPARAMlpfnHook*: LPOFNHOOKPROClpTemplateName*: LPCSTRpvReserved*: pointerdwReserved*: DWORDFlagsEx*: DWORDLPOPENFILENAMEA* = ptr OPENFILENAMEAOPENFILENAMEW* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhInstance*: HINSTANCElpstrFilter*: LPCWSTRlpstrCustomFilter*: LPWSTRnMaxCustFilter*: DWORDnFilterIndex*: DWORDlpstrFile*: LPWSTRnMaxFile*: DWORDlpstrFileTitle*: LPWSTRnMaxFileTitle*: DWORDlpstrInitialDir*: LPCWSTRlpstrTitle*: LPCWSTRFlags*: DWORDnFileOffset*: WORDnFileExtension*: WORDlpstrDefExt*: LPCWSTRlCustData*: LPARAMlpfnHook*: LPOFNHOOKPROClpTemplateName*: LPCWSTRpvReserved*: pointerdwReserved*: DWORDFlagsEx*: DWORDLPOPENFILENAMEW* = ptr OPENFILENAMEWLPCCHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.}TCHOOSECOLORA* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhInstance*: HWNDrgbResult*: COLORREFlpCustColors*: ptr COLORREFFlags*: DWORDlCustData*: LPARAMlpfnHook*: LPCCHOOKPROClpTemplateName*: LPCSTRLPCHOOSECOLORA* = ptr TCHOOSECOLORATCHOOSECOLORW* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhInstance*: HWNDrgbResult*: COLORREFlpCustColors*: ptr COLORREFFlags*: DWORDlCustData*: LPARAMlpfnHook*: LPCCHOOKPROClpTemplateName*: LPCWSTRLPCHOOSECOLORW* = ptr TCHOOSECOLORWLPFRHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.}FINDREPLACEA* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhInstance*: HINSTANCEFlags*: DWORDlpstrFindWhat*: LPSTRlpstrReplaceWith*: LPSTRwFindWhatLen*: WORDwReplaceWithLen*: WORDlCustData*: LPARAMlpfnHook*: LPFRHOOKPROClpTemplateName*: LPCSTRLPFINDREPLACEA* = ptr FINDREPLACEAFINDREPLACEW* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhInstance*: HINSTANCEFlags*: DWORDlpstrFindWhat*: LPWSTRlpstrReplaceWith*: LPWSTRwFindWhatLen*: WORDwReplaceWithLen*: WORDlCustData*: LPARAMlpfnHook*: LPFRHOOKPROClpTemplateName*: LPCWSTRLPFINDREPLACEW* = ptr FINDREPLACEWLPCFHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.}TCHOOSEFONTA* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhDC*: HDClpLogFont*: LPLOGFONTAiPointSize*: INTFlags*: DWORDrgbColors*: COLORREFlCustData*: LPARAMlpfnHook*: LPCFHOOKPROClpTemplateName*: LPCSTRhInstance*: HINSTANCElpszStyle*: LPSTRnFontType*: WORDMISSING_ALIGNMENT*: WORDnSizeMin*: INTnSizeMax*: INTLPCHOOSEFONTA* = ptr TCHOOSEFONTATCHOOSEFONTW* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhDC*: HDClpLogFont*: LPLOGFONTWiPointSize*: INTFlags*: DWORDrgbColors*: COLORREFlCustData*: LPARAMlpfnHook*: LPCFHOOKPROClpTemplateName*: LPCWSTRhInstance*: HINSTANCElpszStyle*: LPWSTRnFontType*: WORDMISSING_ALIGNMENT*: WORDnSizeMin*: INTnSizeMax*: INTLPCHOOSEFONTW* = ptr TCHOOSEFONTWPRINTPAGERANGE* {.pure.} = objectnFromPage*: DWORDnToPage*: DWORDLPPRINTPAGERANGE* = ptr PRINTPAGERANGETPRINTDLGEXA* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhDevMode*: HGLOBALhDevNames*: HGLOBALhDC*: HDCFlags*: DWORDFlags2*: DWORDExclusionFlags*: DWORDnPageRanges*: DWORDnMaxPageRanges*: DWORDlpPageRanges*: LPPRINTPAGERANGEnMinPage*: DWORDnMaxPage*: DWORDnCopies*: DWORDhInstance*: HINSTANCElpPrintTemplateName*: LPCSTRlpCallback*: LPUNKNOWNnPropertyPages*: DWORDlphPropertyPages*: ptr HPROPSHEETPAGEnStartPage*: DWORDdwResultAction*: DWORDLPPRINTDLGEXA* = ptr TPRINTDLGEXATPRINTDLGEXW* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhDevMode*: HGLOBALhDevNames*: HGLOBALhDC*: HDCFlags*: DWORDFlags2*: DWORDExclusionFlags*: DWORDnPageRanges*: DWORDnMaxPageRanges*: DWORDlpPageRanges*: LPPRINTPAGERANGEnMinPage*: DWORDnMaxPage*: DWORDnCopies*: DWORDhInstance*: HINSTANCElpPrintTemplateName*: LPCWSTRlpCallback*: LPUNKNOWNnPropertyPages*: DWORDlphPropertyPages*: ptr HPROPSHEETPAGEnStartPage*: DWORDdwResultAction*: DWORDLPPRINTDLGEXW* = ptr TPRINTDLGEXWDEVNAMES* {.pure.} = objectwDriverOffset*: WORDwDeviceOffset*: WORDwOutputOffset*: WORDwDefault*: WORDLPPAGESETUPHOOK* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.}LPPAGEPAINTHOOK* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.}TPAGESETUPDLGA* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhDevMode*: HGLOBALhDevNames*: HGLOBALFlags*: DWORDptPaperSize*: POINTrtMinMargin*: RECTrtMargin*: RECThInstance*: HINSTANCElCustData*: LPARAMlpfnPageSetupHook*: LPPAGESETUPHOOKlpfnPagePaintHook*: LPPAGEPAINTHOOKlpPageSetupTemplateName*: LPCSTRhPageSetupTemplate*: HGLOBALLPPAGESETUPDLGA* = ptr TPAGESETUPDLGATPAGESETUPDLGW* {.pure.} = objectlStructSize*: DWORDhwndOwner*: HWNDhDevMode*: HGLOBALhDevNames*: HGLOBALFlags*: DWORDptPaperSize*: POINTrtMinMargin*: RECTrtMargin*: RECThInstance*: HINSTANCElCustData*: LPARAMlpfnPageSetupHook*: LPPAGESETUPHOOKlpfnPagePaintHook*: LPPAGEPAINTHOOKlpPageSetupTemplateName*: LPCWSTRhPageSetupTemplate*: HGLOBALLPPAGESETUPDLGW* = ptr TPAGESETUPDLGWconstIID_IPrintDialogCallback* = DEFINE_GUID("5852a2c3-6530-11d1-b6a3-0000f8757bf9")OFN_OVERWRITEPROMPT* = 0x2OFN_NOCHANGEDIR* = 0x8OFN_ENABLEHOOK* = 0x20OFN_ALLOWMULTISELECT* = 0x200OFN_FILEMUSTEXIST* = 0x1000OFN_CREATEPROMPT* = 0x2000OFN_EXPLORER* = 0x80000OFN_NODEREFERENCELINKS* = 0x100000CC_RGBINIT* = 0x1CC_FULLOPEN* = 0x2CC_SHOWHELP* = 0x8CC_ENABLEHOOK* = 0x10CC_ANYCOLOR* = 0x100FR_DOWN* = 0x1FR_WHOLEWORD* = 0x2FR_MATCHCASE* = 0x4FR_FINDNEXT* = 0x8FR_REPLACE* = 0x10FR_REPLACEALL* = 0x20FR_DIALOGTERM* = 0x40FR_SHOWHELP* = 0x80FR_ENABLEHOOK* = 0x100FR_NOUPDOWN* = 0x400FR_NOMATCHCASE* = 0x800FR_NOWHOLEWORD* = 0x1000FR_HIDEUPDOWN* = 0x4000FR_HIDEMATCHCASE* = 0x8000FR_HIDEWHOLEWORD* = 0x10000CF_SHOWHELP* = 0x4CF_ENABLEHOOK* = 0x8CF_INITTOLOGFONTSTRUCT* = 0x40CF_EFFECTS* = 0x100CF_APPLY* = 0x200CF_ANSIONLY* = 0x400CF_SCRIPTSONLY* = CF_ANSIONLYCF_LIMITSIZE* = 0x2000WM_CHOOSEFONT_GETLOGFONT* = WM_USER+1FINDMSGSTRINGA* = "commdlg_FindReplace"FINDMSGSTRINGW* = "commdlg_FindReplace"PD_SELECTION* = 0x1PD_PAGENUMS* = 0x2PD_NOSELECTION* = 0x4PD_NOPAGENUMS* = 0x8PD_COLLATE* = 0x10PD_PRINTTOFILE* = 0x20PD_DISABLEPRINTTOFILE* = 0x80000PD_CURRENTPAGE* = 0x400000PD_NOCURRENTPAGE* = 0x800000START_PAGE_GENERAL* = 0xffffffff'i32PD_RESULT_PRINT* = 1PD_RESULT_APPLY* = 2PSD_MINMARGINS* = 0x1PSD_MARGINS* = 0x2PSD_INHUNDREDTHSOFMILLIMETERS* = 0x8PSD_DISABLEMARGINS* = 0x10PSD_DISABLEPRINTER* = 0x20PSD_DISABLEORIENTATION* = 0x100PSD_RETURNDEFAULT* = 0x400PSD_DISABLEPAPER* = 0x200PSD_SHOWHELP* = 0x800PSD_ENABLEPAGESETUPHOOK* = 0x2000typeIPrintDialogCallback* {.pure.} = objectlpVtbl*: ptr IPrintDialogCallbackVtblIPrintDialogCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtblInitDone*: proc(self: ptr IPrintDialogCallback): HRESULT {.stdcall.}SelectionChange*: proc(self: ptr IPrintDialogCallback): HRESULT {.stdcall.}HandleMessage*: proc(self: ptr IPrintDialogCallback, hDlg: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, pResult: ptr LRESULT): HRESULT {.stdcall.}IPrintDialogServices* {.pure.} = objectlpVtbl*: ptr IPrintDialogServicesVtblIPrintDialogServicesVtbl* {.pure, inheritable.} = object of IUnknownVtblGetCurrentDevMode*: proc(self: ptr IPrintDialogServices, pDevMode: LPDEVMODE, pcbSize: ptr UINT): HRESULT {.stdcall.}GetCurrentPrinterName*: proc(self: ptr IPrintDialogServices, pPrinterName: LPTSTR, pcchSize: ptr UINT): HRESULT {.stdcall.}GetCurrentPortName*: proc(self: ptr IPrintDialogServices, pPortName: LPTSTR, pcchSize: ptr UINT): HRESULT {.stdcall.}proc InitDone*(self: ptr IPrintDialogCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitDone(self)proc SelectionChange*(self: ptr IPrintDialogCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectionChange(self)proc HandleMessage*(self: ptr IPrintDialogCallback, hDlg: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, pResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleMessage(self, hDlg, uMsg, wParam, lParam, pResult)proc GetCurrentDevMode*(self: ptr IPrintDialogServices, pDevMode: LPDEVMODE, pcbSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentDevMode(self, pDevMode, pcbSize)proc GetCurrentPrinterName*(self: ptr IPrintDialogServices, pPrinterName: LPTSTR, pcchSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPrinterName(self, pPrinterName, pcchSize)proc GetCurrentPortName*(self: ptr IPrintDialogServices, pPortName: LPTSTR, pcchSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPortName(self, pPortName, pcchSize)converter winimConverterIPrintDialogCallbackToIUnknown*(x: ptr IPrintDialogCallback): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIPrintDialogServicesToIUnknown*(x: ptr IPrintDialogServices): ptr IUnknown = cast[ptr IUnknown](x)when winimUnicode:typeOPENFILENAME* = OPENFILENAMEWTCHOOSECOLOR* = TCHOOSECOLORWFINDREPLACE* = FINDREPLACEWTCHOOSEFONT* = TCHOOSEFONTWTPRINTDLGEX* = TPRINTDLGEXWTPAGESETUPDLG* = TPAGESETUPDLGWconstFINDMSGSTRING* = FINDMSGSTRINGWproc GetOpenFileName*(P1: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetOpenFileNameW".}proc GetSaveFileName*(P1: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetSaveFileNameW".}proc ChooseColor*(P1: LPCHOOSECOLORW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseColorW".}proc FindText*(P1: LPFINDREPLACEW): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "FindTextW".}proc ReplaceText*(P1: LPFINDREPLACEW): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "ReplaceTextW".}proc ChooseFont*(P1: LPCHOOSEFONTW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseFontW".}proc PrintDlgEx*(P1: LPPRINTDLGEXW): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgExW".}proc PageSetupDlg*(P1: LPPAGESETUPDLGW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PageSetupDlgW".}when winimAnsi:typeOPENFILENAME* = OPENFILENAMEATCHOOSECOLOR* = TCHOOSECOLORAFINDREPLACE* = FINDREPLACEATCHOOSEFONT* = TCHOOSEFONTATPRINTDLGEX* = TPRINTDLGEXATPAGESETUPDLG* = TPAGESETUPDLGAconstFINDMSGSTRING* = FINDMSGSTRINGAproc GetOpenFileName*(P1: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetOpenFileNameA".}proc GetSaveFileName*(P1: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetSaveFileNameA".}proc ChooseColor*(P1: LPCHOOSECOLORA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseColorA".}proc FindText*(P1: LPFINDREPLACEA): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "FindTextA".}proc ReplaceText*(P1: LPFINDREPLACEA): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "ReplaceTextA".}proc ChooseFont*(P1: LPCHOOSEFONTA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseFontA".}proc PrintDlgEx*(P1: LPPRINTDLGEXA): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgExA".}proc PageSetupDlg*(P1: LPPAGESETUPDLGA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PageSetupDlgA".}typeCHARRANGE* {.pure.} = objectcpMin*: LONGcpMax*: LONGconstMSFTEDIT_CLASS* = "RICHEDIT50W"EM_EXLIMITTEXT* = WM_USER+53EM_EXLINEFROMCHAR* = WM_USER+54EM_SETBKGNDCOLOR* = WM_USER+67EM_SETCHARFORMAT* = WM_USER+68EM_SETEVENTMASK* = WM_USER+69EM_SETPARAFORMAT* = WM_USER+71EM_STREAMIN* = WM_USER+73EM_STREAMOUT* = WM_USER+74EM_GETTEXTRANGE* = WM_USER+75EM_REDO* = WM_USER+84EM_CANREDO* = WM_USER+85EM_AUTOURLDETECT* = WM_USER+91EM_GETTEXTLENGTHEX* = WM_USER+95EM_SETTEXTEX* = WM_USER+97EM_SETZOOM* = WM_USER+225EN_REQUESTRESIZE* = 0x0701EN_LINK* = 0x070bENM_CHANGE* = 0x00000001ENM_UPDATE* = 0x00000002ENM_REQUESTRESIZE* = 0x00040000ENM_LINK* = 0x04000000CFM_BOLD* = 0x00000001CFM_ITALIC* = 0x00000002CFM_UNDERLINE* = 0x00000004CFM_STRIKEOUT* = 0x00000008CFM_LINK* = 0x00000020CFM_SIZE* = 0x80000000'i32CFM_COLOR* = 0x40000000CFM_FACE* = 0x20000000CFM_CHARSET* = 0x08000000CFE_UNDERLINE* = 0x00000004CFE_PROTECTED* = 0x00000010CFM_WEIGHT* = 0x00400000CFM_BACKCOLOR* = 0x04000000CFM_EFFECTS* = CFM_BOLD or CFM_ITALIC or CFM_UNDERLINE or CFM_COLOR or CFM_STRIKEOUT or CFE_PROTECTED or CFM_LINKSCF_SELECTION* = 0x0001SCF_DEFAULT* = 0x0000SF_RTF* = 0x0002SFF_SELECTION* = 0x8000MAX_TAB_STOPS* = 32PFM_STARTINDENT* = 0x00000001PFM_RIGHTINDENT* = 0x00000002PFM_OFFSET* = 0x00000004PFM_ALIGNMENT* = 0x00000008PFM_TABSTOPS* = 0x00000010PFM_NUMBERING* = 0x00000020PFM_SPACEBEFORE* = 0x00000040PFM_SPACEAFTER* = 0x00000080PFM_LINESPACING* = 0x00000100PFN_BULLET* = 1PFN_ARABIC* = 2PFN_LCLETTER* = 3PFN_UCLETTER* = 4PFN_LCROMAN* = 5PFN_UCROMAN* = 6PFA_LEFT* = 1PFA_RIGHT* = 2PFA_CENTER* = 3PFA_JUSTIFY* = 4ST_SELECTION* = 2GTL_DEFAULT* = 0AURL_ENABLEEA* = 1typeEDITSTREAMCALLBACK* = proc (dwCookie: DWORD_PTR, pbBuff: LPBYTE, cb: LONG, pcb: ptr LONG): DWORD {.stdcall.}CHARFORMAT2W_UNION1* {.pure, union.} = objectdwReserved*: DWORDdwCookie*: DWORDCHARFORMAT2W* {.pure.} = objectcbSize*: UINTdwMask*: DWORDdwEffects*: DWORDyHeight*: LONGyOffset*: LONGcrTextColor*: COLORREFbCharSet*: BYTEbPitchAndFamily*: BYTEszFaceName*: array[LF_FACESIZE, WCHAR]wWeight*: WORDsSpacing*: SHORTcrBackColor*: COLORREFlcid*: LCIDunion1*: CHARFORMAT2W_UNION1sStyle*: SHORTwKerning*: WORDbUnderlineType*: BYTEbAnimation*: BYTEbRevAuthor*: BYTEbUnderlineColor*: BYTECHARFORMAT2A_UNION1* {.pure, union.} = objectdwReserved*: DWORDdwCookie*: DWORDCHARFORMAT2A* {.pure.} = objectcbSize*: UINTdwMask*: DWORDdwEffects*: DWORDyHeight*: LONGyOffset*: LONGcrTextColor*: COLORREFbCharSet*: BYTEbPitchAndFamily*: BYTEszFaceName*: array[LF_FACESIZE, char]wWeight*: WORDsSpacing*: SHORTcrBackColor*: COLORREFlcid*: LCIDunion1*: CHARFORMAT2A_UNION1sStyle*: SHORTwKerning*: WORDbUnderlineType*: BYTEbAnimation*: BYTEbRevAuthor*: BYTEbUnderlineColor*: BYTETEXTRANGEA* {.pure.} = objectchrg*: CHARRANGElpstrText*: LPSTRTEXTRANGEW* {.pure.} = objectchrg*: CHARRANGElpstrText*: LPWSTREDITSTREAM* {.pure, packed.} = objectdwCookie*: DWORD_PTRdwError*: DWORDpfnCallback*: EDITSTREAMCALLBACKPARAFORMAT2_UNION1* {.pure, union.} = objectwReserved*: WORDwEffects*: WORDPARAFORMAT2* {.pure.} = objectcbSize*: UINTdwMask*: DWORDwNumbering*: WORDunion1*: PARAFORMAT2_UNION1dxStartIndent*: LONGdxRightIndent*: LONGdxOffset*: LONGwAlignment*: WORDcTabCount*: SHORTrgxTabs*: array[MAX_TAB_STOPS, LONG]dySpaceBefore*: LONGdySpaceAfter*: LONGdyLineSpacing*: LONGsStyle*: SHORTbLineSpacingRule*: BYTEbOutlineLevel*: BYTEwShadingWeight*: WORDwShadingStyle*: WORDwNumberingStart*: WORDwNumberingStyle*: WORDwNumberingTab*: WORDwBorderSpace*: WORDwBorderWidth*: WORDwBorders*: WORDREQRESIZE* {.pure.} = objectnmhdr*: NMHDRrc*: RECTTENLINK* {.pure, packed.} = objectnmhdr*: NMHDRmsg*: UINTwParam*: WPARAMlParam*: LPARAMchrg*: CHARRANGESETTEXTEX* {.pure.} = objectflags*: DWORDcodepage*: UINTGETTEXTLENGTHEX* {.pure.} = objectflags*: DWORDcodepage*: UINTproc `dwReserved=`*(self: var CHARFORMAT2W, x: DWORD) {.inline.} = self.union1.dwReserved = xproc dwReserved*(self: CHARFORMAT2W): DWORD {.inline.} = self.union1.dwReservedproc dwReserved*(self: var CHARFORMAT2W): var DWORD {.inline.} = self.union1.dwReservedproc `dwCookie=`*(self: var CHARFORMAT2W, x: DWORD) {.inline.} = self.union1.dwCookie = xproc dwCookie*(self: CHARFORMAT2W): DWORD {.inline.} = self.union1.dwCookieproc dwCookie*(self: var CHARFORMAT2W): var DWORD {.inline.} = self.union1.dwCookieproc `dwReserved=`*(self: var CHARFORMAT2A, x: DWORD) {.inline.} = self.union1.dwReserved = xproc dwReserved*(self: CHARFORMAT2A): DWORD {.inline.} = self.union1.dwReservedproc dwReserved*(self: var CHARFORMAT2A): var DWORD {.inline.} = self.union1.dwReservedproc `dwCookie=`*(self: var CHARFORMAT2A, x: DWORD) {.inline.} = self.union1.dwCookie = xproc dwCookie*(self: CHARFORMAT2A): DWORD {.inline.} = self.union1.dwCookieproc dwCookie*(self: var CHARFORMAT2A): var DWORD {.inline.} = self.union1.dwCookieproc `wReserved=`*(self: var PARAFORMAT2, x: WORD) {.inline.} = self.union1.wReserved = xproc wReserved*(self: PARAFORMAT2): WORD {.inline.} = self.union1.wReservedproc wReserved*(self: var PARAFORMAT2): var WORD {.inline.} = self.union1.wReservedproc `wEffects=`*(self: var PARAFORMAT2, x: WORD) {.inline.} = self.union1.wEffects = xproc wEffects*(self: PARAFORMAT2): WORD {.inline.} = self.union1.wEffectsproc wEffects*(self: var PARAFORMAT2): var WORD {.inline.} = self.union1.wEffectswhen winimUnicode:typeCHARFORMAT2* = CHARFORMAT2WTEXTRANGE* = TEXTRANGEWwhen winimAnsi:typeCHARFORMAT2* = CHARFORMAT2ATEXTRANGE* = TEXTRANGEAtypeSIGDN* = int32SIATTRIBFLAGS* = int32THUMBBUTTONFLAGS* = int32THUMBBUTTONMASK* = int32TBPFLAG* = int32FDE_OVERWRITE_RESPONSE* = int32FDE_SHAREVIOLATION_RESPONSE* = int32FDAP* = int32HDROP* = HANDLESHCONTF* = DWORDSFGAOF* = ULONGSICHINTF* = DWORDFILEOPENDIALOGOPTIONS* = DWORDHTHEME* = HANDLENOTIFYICONDATAA_UNION1* {.pure, union.} = objectuTimeout*: UINTuVersion*: UINTNOTIFYICONDATAA* {.pure.} = objectcbSize*: DWORDhWnd*: HWNDuID*: UINTuFlags*: UINTuCallbackMessage*: UINThIcon*: HICONszTip*: array[128, CHAR]dwState*: DWORDdwStateMask*: DWORDszInfo*: array[256, CHAR]union1*: NOTIFYICONDATAA_UNION1szInfoTitle*: array[64, CHAR]dwInfoFlags*: DWORDguidItem*: GUIDhBalloonIcon*: HICONPNOTIFYICONDATAA* = ptr NOTIFYICONDATAANOTIFYICONDATAW_UNION1* {.pure, union.} = objectuTimeout*: UINTuVersion*: UINTNOTIFYICONDATAW* {.pure.} = objectcbSize*: DWORDhWnd*: HWNDuID*: UINTuFlags*: UINTuCallbackMessage*: UINThIcon*: HICONszTip*: array[128, WCHAR]dwState*: DWORDdwStateMask*: DWORDszInfo*: array[256, WCHAR]union1*: NOTIFYICONDATAW_UNION1szInfoTitle*: array[64, WCHAR]dwInfoFlags*: DWORDguidItem*: GUIDhBalloonIcon*: HICONPNOTIFYICONDATAW* = ptr NOTIFYICONDATAWIAutoComplete* {.pure.} = objectlpVtbl*: ptr IAutoCompleteVtblIAutoCompleteVtbl* {.pure, inheritable.} = object of IUnknownVtblInit*: proc(self: ptr IAutoComplete, hwndEdit: HWND, punkACL: ptr IUnknown, pwszRegKeyPath: LPCWSTR, pwszQuickComplete: LPCWSTR): HRESULT {.stdcall.}Enable*: proc(self: ptr IAutoComplete, fEnable: WINBOOL): HRESULT {.stdcall.}IAutoComplete2* {.pure.} = objectlpVtbl*: ptr IAutoComplete2VtblIAutoComplete2Vtbl* {.pure, inheritable.} = object of IAutoCompleteVtblSetOptions*: proc(self: ptr IAutoComplete2, dwFlag: DWORD): HRESULT {.stdcall.}GetOptions*: proc(self: ptr IAutoComplete2, pdwFlag: ptr DWORD): HRESULT {.stdcall.}THUMBBUTTON* {.pure.} = objectdwMask*: THUMBBUTTONMASKiId*: UINTiBitmap*: UINThIcon*: HICONszTip*: array[260, WCHAR]dwFlags*: THUMBBUTTONFLAGSLPTHUMBBUTTON* = ptr THUMBBUTTONBFFCALLBACK* = proc (hwnd: HWND, uMsg: UINT, lParam: LPARAM, lpData: LPARAM): int32 {.stdcall.}BROWSEINFOA* {.pure.} = objecthwndOwner*: HWNDpidlRoot*: PCIDLIST_ABSOLUTEpszDisplayName*: LPSTRlpszTitle*: LPCSTRulFlags*: UINTlpfn*: BFFCALLBACKlParam*: LPARAMiImage*: int32LPBROWSEINFOA* = ptr BROWSEINFOABROWSEINFOW* {.pure.} = objecthwndOwner*: HWNDpidlRoot*: PCIDLIST_ABSOLUTEpszDisplayName*: LPWSTRlpszTitle*: LPCWSTRulFlags*: UINTlpfn*: BFFCALLBACKlParam*: LPARAMiImage*: int32LPBROWSEINFOW* = ptr BROWSEINFOWconstNIN_BALLOONTIMEOUT* = WM_USER+4NIN_BALLOONUSERCLICK* = WM_USER+5NIM_ADD* = 0x00000000NIM_MODIFY* = 0x00000001NIM_DELETE* = 0x00000002NIM_SETVERSION* = 0x00000004NIF_MESSAGE* = 0x00000001NIF_ICON* = 0x00000002NIF_TIP* = 0x00000004NIF_INFO* = 0x00000010NIIF_NONE* = 0x00000000NIIF_INFO* = 0x00000001NIIF_WARNING* = 0x00000002NIIF_ERROR* = 0x00000003IID_IAutoComplete* = DEFINE_GUID("00bb2762-6a77-11d0-a535-00c04fd7d062")ACO_AUTOSUGGEST* = 0x1IID_IAutoComplete2* = DEFINE_GUID("eac04bc0-3791-11d2-bb95-0060977b464c")IID_IObjMgr* = DEFINE_GUID("00bb2761-6a77-11d0-a535-00c04fd7d062")IID_IACList2* = DEFINE_GUID("470141a0-5186-11d2-bbb6-0060977b464c")CLSID_AutoComplete* = DEFINE_GUID("00bb2763-6a77-11d0-a535-00c04fd7d062")CLSID_ACLHistory* = DEFINE_GUID("00bb2764-6a77-11d0-a535-00c04fd7d062")CLSID_ACListISF* = DEFINE_GUID("03c036f1-a186-11d0-824a-00aa005b4383")CLSID_ACLMRU* = DEFINE_GUID("6756a641-de71-11d0-831b-00aa005b4383")CLSID_ACLMulti* = DEFINE_GUID("00bb2765-6a77-11d0-a535-00c04fd7d062")SIGDN_FILESYSPATH* = int32 0x80058000'i32IID_IShellItem* = DEFINE_GUID("43826d1e-e718-42ee-bc55-a1e261c37bfe")TBPF_NOPROGRESS* = 0x0TBPF_INDETERMINATE* = 0x1TBPF_NORMAL* = 0x2TBPF_ERROR* = 0x4TBPF_PAUSED* = 0x8IID_ITaskbarList3* = DEFINE_GUID("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")FOS_PICKFOLDERS* = 0x20FOS_FORCEFILESYSTEM* = 0x40IID_IFileOpenDialog* = DEFINE_GUID("d57c7288-d4ad-4768-be02-9d969532d960")CLSID_TaskbarList* = DEFINE_GUID("56fdf344-fd6d-11d0-958a-006097c9a090")CLSID_FileOpenDialog* = DEFINE_GUID("dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7")CSIDL_DESKTOP* = 0x0000BIF_RETURNONLYFSDIRS* = 0x00000001BIF_EDITBOX* = 0x00000010BIF_NEWDIALOGSTYLE* = 0x00000040BIF_USENEWUI* = BIF_NEWDIALOGSTYLE or BIF_EDITBOXBIF_NONEWFOLDERBUTTON* = 0x00000200BFFM_INITIALIZED* = 1BFFM_SETSELECTIONA* = WM_USER+102BFFM_SETSELECTIONW* = WM_USER+103ACLO_FILESYSONLY* = 16ACLO_FILESYSDIRS* = 32typeDLLVERSIONINFO* {.pure.} = objectcbSize*: DWORDdwMajorVersion*: DWORDdwMinorVersion*: DWORDdwBuildNumber*: DWORDdwPlatformID*: DWORDIShellItem* {.pure.} = objectlpVtbl*: ptr IShellItemVtblIShellItemVtbl* {.pure, inheritable.} = object of IUnknownVtblBindToHandler*: proc(self: ptr IShellItem, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.}GetParent*: proc(self: ptr IShellItem, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.}GetDisplayName*: proc(self: ptr IShellItem, sigdnName: SIGDN, ppszName: ptr LPWSTR): HRESULT {.stdcall.}GetAttributes*: proc(self: ptr IShellItem, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.stdcall.}Compare*: proc(self: ptr IShellItem, psi: ptr IShellItem, hint: SICHINTF, piOrder: ptr int32): HRESULT {.stdcall.}IEnumShellItems* {.pure.} = objectlpVtbl*: ptr IEnumShellItemsVtblIEnumShellItemsVtbl* {.pure, inheritable.} = object of IUnknownVtblNext*: proc(self: ptr IEnumShellItems, celt: ULONG, rgelt: ptr ptr IShellItem, pceltFetched: ptr ULONG): HRESULT {.stdcall.}Skip*: proc(self: ptr IEnumShellItems, celt: ULONG): HRESULT {.stdcall.}Reset*: proc(self: ptr IEnumShellItems): HRESULT {.stdcall.}Clone*: proc(self: ptr IEnumShellItems, ppenum: ptr ptr IEnumShellItems): HRESULT {.stdcall.}IShellItemArray* {.pure.} = objectlpVtbl*: ptr IShellItemArrayVtblIShellItemArrayVtbl* {.pure, inheritable.} = object of IUnknownVtblBindToHandler*: proc(self: ptr IShellItemArray, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppvOut: ptr pointer): HRESULT {.stdcall.}GetPropertyStore*: proc(self: ptr IShellItemArray, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.}GetPropertyDescriptionList*: proc(self: ptr IShellItemArray, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.}GetAttributes*: proc(self: ptr IShellItemArray, AttribFlags: SIATTRIBFLAGS, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.stdcall.}GetCount*: proc(self: ptr IShellItemArray, pdwNumItems: ptr DWORD): HRESULT {.stdcall.}GetItemAt*: proc(self: ptr IShellItemArray, dwIndex: DWORD, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.}EnumItems*: proc(self: ptr IShellItemArray, ppenumShellItems: ptr ptr IEnumShellItems): HRESULT {.stdcall.}ITaskbarList* {.pure.} = objectlpVtbl*: ptr ITaskbarListVtblITaskbarListVtbl* {.pure, inheritable.} = object of IUnknownVtblHrInit*: proc(self: ptr ITaskbarList): HRESULT {.stdcall.}AddTab*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.}DeleteTab*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.}ActivateTab*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.}SetActiveAlt*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.}ITaskbarList2* {.pure.} = objectlpVtbl*: ptr ITaskbarList2VtblITaskbarList2Vtbl* {.pure, inheritable.} = object of ITaskbarListVtblMarkFullscreenWindow*: proc(self: ptr ITaskbarList2, hwnd: HWND, fFullscreen: WINBOOL): HRESULT {.stdcall.}ITaskbarList3* {.pure.} = objectlpVtbl*: ptr ITaskbarList3VtblITaskbarList3Vtbl* {.pure, inheritable.} = object of ITaskbarList2VtblSetProgressValue*: proc(self: ptr ITaskbarList3, hwnd: HWND, ullCompleted: ULONGLONG, ullTotal: ULONGLONG): HRESULT {.stdcall.}SetProgressState*: proc(self: ptr ITaskbarList3, hwnd: HWND, tbpFlags: TBPFLAG): HRESULT {.stdcall.}RegisterTab*: proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND): HRESULT {.stdcall.}UnregisterTab*: proc(self: ptr ITaskbarList3, hwndTab: HWND): HRESULT {.stdcall.}SetTabOrder*: proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndInsertBefore: HWND): HRESULT {.stdcall.}SetTabActive*: proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND, dwReserved: DWORD): HRESULT {.stdcall.}ThumbBarAddButtons*: proc(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.stdcall.}ThumbBarUpdateButtons*: proc(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.stdcall.}ThumbBarSetImageList*: proc(self: ptr ITaskbarList3, hwnd: HWND, himl: HIMAGELIST): HRESULT {.stdcall.}SetOverlayIcon*: proc(self: ptr ITaskbarList3, hwnd: HWND, hIcon: HICON, pszDescription: LPCWSTR): HRESULT {.stdcall.}SetThumbnailTooltip*: proc(self: ptr ITaskbarList3, hwnd: HWND, pszTip: LPCWSTR): HRESULT {.stdcall.}SetThumbnailClip*: proc(self: ptr ITaskbarList3, hwnd: HWND, prcClip: ptr RECT): HRESULT {.stdcall.}IModalWindow* {.pure.} = objectlpVtbl*: ptr IModalWindowVtblIModalWindowVtbl* {.pure, inheritable.} = object of IUnknownVtblShow*: proc(self: ptr IModalWindow, hwndOwner: HWND): HRESULT {.stdcall.}IShellItemFilter* {.pure.} = objectlpVtbl*: ptr IShellItemFilterVtblIShellItemFilterVtbl* {.pure, inheritable.} = object of IUnknownVtblIncludeItem*: proc(self: ptr IShellItemFilter, psi: ptr IShellItem): HRESULT {.stdcall.}GetEnumFlagsForItem*: proc(self: ptr IShellItemFilter, psi: ptr IShellItem, pgrfFlags: ptr SHCONTF): HRESULT {.stdcall.}IFileDialog* {.pure.} = objectlpVtbl*: ptr IFileDialogVtblIFileDialogVtbl* {.pure, inheritable.} = object of IModalWindowVtblSetFileTypes*: proc(self: ptr IFileDialog, cFileTypes: UINT, rgFilterSpec: ptr COMDLG_FILTERSPEC): HRESULT {.stdcall.}SetFileTypeIndex*: proc(self: ptr IFileDialog, iFileType: UINT): HRESULT {.stdcall.}GetFileTypeIndex*: proc(self: ptr IFileDialog, piFileType: ptr UINT): HRESULT {.stdcall.}Advise*: proc(self: ptr IFileDialog, pfde: ptr IFileDialogEvents, pdwCookie: ptr DWORD): HRESULT {.stdcall.}Unadvise*: proc(self: ptr IFileDialog, dwCookie: DWORD): HRESULT {.stdcall.}SetOptions*: proc(self: ptr IFileDialog, fos: FILEOPENDIALOGOPTIONS): HRESULT {.stdcall.}GetOptions*: proc(self: ptr IFileDialog, pfos: ptr FILEOPENDIALOGOPTIONS): HRESULT {.stdcall.}SetDefaultFolder*: proc(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.stdcall.}SetFolder*: proc(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.stdcall.}GetFolder*: proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.}GetCurrentSelection*: proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.}SetFileName*: proc(self: ptr IFileDialog, pszName: LPCWSTR): HRESULT {.stdcall.}GetFileName*: proc(self: ptr IFileDialog, pszName: ptr LPWSTR): HRESULT {.stdcall.}SetTitle*: proc(self: ptr IFileDialog, pszTitle: LPCWSTR): HRESULT {.stdcall.}SetOkButtonLabel*: proc(self: ptr IFileDialog, pszText: LPCWSTR): HRESULT {.stdcall.}SetFileNameLabel*: proc(self: ptr IFileDialog, pszLabel: LPCWSTR): HRESULT {.stdcall.}GetResult*: proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.}AddPlace*: proc(self: ptr IFileDialog, psi: ptr IShellItem, fdap: FDAP): HRESULT {.stdcall.}SetDefaultExtension*: proc(self: ptr IFileDialog, pszDefaultExtension: LPCWSTR): HRESULT {.stdcall.}Close*: proc(self: ptr IFileDialog, hr: HRESULT): HRESULT {.stdcall.}SetClientGuid*: proc(self: ptr IFileDialog, guid: REFGUID): HRESULT {.stdcall.}ClearClientData*: proc(self: ptr IFileDialog): HRESULT {.stdcall.}SetFilter*: proc(self: ptr IFileDialog, pFilter: ptr IShellItemFilter): HRESULT {.stdcall.}IFileDialogEvents* {.pure.} = objectlpVtbl*: ptr IFileDialogEventsVtblIFileDialogEventsVtbl* {.pure, inheritable.} = object of IUnknownVtblOnFileOk*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.}OnFolderChanging*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psiFolder: ptr IShellItem): HRESULT {.stdcall.}OnFolderChange*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.}OnSelectionChange*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.}OnShareViolation*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_SHAREVIOLATION_RESPONSE): HRESULT {.stdcall.}OnTypeChange*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.}OnOverwrite*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_OVERWRITE_RESPONSE): HRESULT {.stdcall.}IFileOpenDialog* {.pure.} = objectlpVtbl*: ptr IFileOpenDialogVtblIFileOpenDialogVtbl* {.pure, inheritable.} = object of IFileDialogVtblGetResults*: proc(self: ptr IFileOpenDialog, ppenum: ptr ptr IShellItemArray): HRESULT {.stdcall.}GetSelectedItems*: proc(self: ptr IFileOpenDialog, ppsai: ptr ptr IShellItemArray): HRESULT {.stdcall.}IObjMgr* {.pure.} = objectlpVtbl*: ptr IObjMgrVtblIObjMgrVtbl* {.pure, inheritable.} = object of IUnknownVtblAppend*: proc(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.stdcall.}Remove*: proc(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.stdcall.}IACList* {.pure.} = objectlpVtbl*: ptr IACListVtblIACListVtbl* {.pure, inheritable.} = object of IUnknownVtblExpand*: proc(self: ptr IACList, pszExpand: PCWSTR): HRESULT {.stdcall.}IACList2* {.pure.} = objectlpVtbl*: ptr IACList2VtblIACList2Vtbl* {.pure, inheritable.} = object of IACListVtblSetOptions*: proc(self: ptr IACList2, dwFlag: DWORD): HRESULT {.stdcall.}GetOptions*: proc(self: ptr IACList2, pdwFlag: ptr DWORD): HRESULT {.stdcall.}proc SHCreateItemFromParsingName*(pszPath: PCWSTR, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.}proc ILFree*(pidl: PIDLIST_RELATIVE): void {.winapi, stdcall, dynlib: "shell32", importc.}proc SHGetSpecialFolderLocation*(hwnd: HWND, csidl: int32, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.}proc SHCreateDataObject*(pidlFolder: PCIDLIST_ABSOLUTE, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, pdtInner: ptr IDataObject, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.}proc SHCreateStdEnumFmtEtc*(cfmt: UINT, afmt: ptr FORMATETC, ppenumFormatEtc: ptr ptr IEnumFORMATETC): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.}proc SHDoDragDrop*(hwnd: HWND, pdata: ptr IDataObject, pdsrc: ptr IDropSource, dwEffect: DWORD, pdwEffect: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.}proc `uTimeout=`*(self: var NOTIFYICONDATAA, x: UINT) {.inline.} = self.union1.uTimeout = xproc uTimeout*(self: NOTIFYICONDATAA): UINT {.inline.} = self.union1.uTimeoutproc uTimeout*(self: var NOTIFYICONDATAA): var UINT {.inline.} = self.union1.uTimeoutproc `uVersion=`*(self: var NOTIFYICONDATAA, x: UINT) {.inline.} = self.union1.uVersion = xproc uVersion*(self: NOTIFYICONDATAA): UINT {.inline.} = self.union1.uVersionproc uVersion*(self: var NOTIFYICONDATAA): var UINT {.inline.} = self.union1.uVersionproc `uTimeout=`*(self: var NOTIFYICONDATAW, x: UINT) {.inline.} = self.union1.uTimeout = xproc uTimeout*(self: NOTIFYICONDATAW): UINT {.inline.} = self.union1.uTimeoutproc uTimeout*(self: var NOTIFYICONDATAW): var UINT {.inline.} = self.union1.uTimeoutproc `uVersion=`*(self: var NOTIFYICONDATAW, x: UINT) {.inline.} = self.union1.uVersion = xproc uVersion*(self: NOTIFYICONDATAW): UINT {.inline.} = self.union1.uVersionproc uVersion*(self: var NOTIFYICONDATAW): var UINT {.inline.} = self.union1.uVersionproc Init*(self: ptr IAutoComplete, hwndEdit: HWND, punkACL: ptr IUnknown, pwszRegKeyPath: LPCWSTR, pwszQuickComplete: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Init(self, hwndEdit, punkACL, pwszRegKeyPath, pwszQuickComplete)proc Enable*(self: ptr IAutoComplete, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enable(self, fEnable)proc SetOptions*(self: ptr IAutoComplete2, dwFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, dwFlag)proc GetOptions*(self: ptr IAutoComplete2, pdwFlag: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pdwFlag)proc BindToHandler*(self: ptr IShellItem, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToHandler(self, pbc, bhid, riid, ppv)proc GetParent*(self: ptr IShellItem, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParent(self, ppsi)proc GetDisplayName*(self: ptr IShellItem, sigdnName: SIGDN, ppszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayName(self, sigdnName, ppszName)proc GetAttributes*(self: ptr IShellItem, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributes(self, sfgaoMask, psfgaoAttribs)proc Compare*(self: ptr IShellItem, psi: ptr IShellItem, hint: SICHINTF, piOrder: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Compare(self, psi, hint, piOrder)proc Next*(self: ptr IEnumShellItems, celt: ULONG, rgelt: ptr ptr IShellItem, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched)proc Skip*(self: ptr IEnumShellItems, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt)proc Reset*(self: ptr IEnumShellItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self)proc Clone*(self: ptr IEnumShellItems, ppenum: ptr ptr IEnumShellItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum)proc BindToHandler*(self: ptr IShellItemArray, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppvOut: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToHandler(self, pbc, bhid, riid, ppvOut)proc GetPropertyStore*(self: ptr IShellItemArray, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStore(self, flags, riid, ppv)proc GetPropertyDescriptionList*(self: ptr IShellItemArray, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescriptionList(self, keyType, riid, ppv)proc GetAttributes*(self: ptr IShellItemArray, AttribFlags: SIATTRIBFLAGS, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributes(self, AttribFlags, sfgaoMask, psfgaoAttribs)proc GetCount*(self: ptr IShellItemArray, pdwNumItems: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pdwNumItems)proc GetItemAt*(self: ptr IShellItemArray, dwIndex: DWORD, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemAt(self, dwIndex, ppsi)proc EnumItems*(self: ptr IShellItemArray, ppenumShellItems: ptr ptr IEnumShellItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumItems(self, ppenumShellItems)proc HrInit*(self: ptr ITaskbarList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HrInit(self)proc AddTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTab(self, hwnd)proc DeleteTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteTab(self, hwnd)proc ActivateTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateTab(self, hwnd)proc SetActiveAlt*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActiveAlt(self, hwnd)proc MarkFullscreenWindow*(self: ptr ITaskbarList2, hwnd: HWND, fFullscreen: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MarkFullscreenWindow(self, hwnd, fFullscreen)proc SetProgressValue*(self: ptr ITaskbarList3, hwnd: HWND, ullCompleted: ULONGLONG, ullTotal: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgressValue(self, hwnd, ullCompleted, ullTotal)proc SetProgressState*(self: ptr ITaskbarList3, hwnd: HWND, tbpFlags: TBPFLAG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgressState(self, hwnd, tbpFlags)proc RegisterTab*(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterTab(self, hwndTab, hwndMDI)proc UnregisterTab*(self: ptr ITaskbarList3, hwndTab: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterTab(self, hwndTab)proc SetTabOrder*(self: ptr ITaskbarList3, hwndTab: HWND, hwndInsertBefore: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTabOrder(self, hwndTab, hwndInsertBefore)proc SetTabActive*(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTabActive(self, hwndTab, hwndMDI, dwReserved)proc ThumbBarAddButtons*(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThumbBarAddButtons(self, hwnd, cButtons, pButton)proc ThumbBarUpdateButtons*(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThumbBarUpdateButtons(self, hwnd, cButtons, pButton)proc ThumbBarSetImageList*(self: ptr ITaskbarList3, hwnd: HWND, himl: HIMAGELIST): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThumbBarSetImageList(self, hwnd, himl)proc SetOverlayIcon*(self: ptr ITaskbarList3, hwnd: HWND, hIcon: HICON, pszDescription: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOverlayIcon(self, hwnd, hIcon, pszDescription)proc SetThumbnailTooltip*(self: ptr ITaskbarList3, hwnd: HWND, pszTip: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThumbnailTooltip(self, hwnd, pszTip)proc SetThumbnailClip*(self: ptr ITaskbarList3, hwnd: HWND, prcClip: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThumbnailClip(self, hwnd, prcClip)proc Show*(self: ptr IModalWindow, hwndOwner: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, hwndOwner)proc OnFileOk*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFileOk(self, pfd)proc OnFolderChanging*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psiFolder: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFolderChanging(self, pfd, psiFolder)proc OnFolderChange*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFolderChange(self, pfd)proc OnSelectionChange*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSelectionChange(self, pfd)proc OnShareViolation*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_SHAREVIOLATION_RESPONSE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnShareViolation(self, pfd, psi, pResponse)proc OnTypeChange*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnTypeChange(self, pfd)proc OnOverwrite*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_OVERWRITE_RESPONSE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnOverwrite(self, pfd, psi, pResponse)proc SetFileTypes*(self: ptr IFileDialog, cFileTypes: UINT, rgFilterSpec: ptr COMDLG_FILTERSPEC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileTypes(self, cFileTypes, rgFilterSpec)proc SetFileTypeIndex*(self: ptr IFileDialog, iFileType: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileTypeIndex(self, iFileType)proc GetFileTypeIndex*(self: ptr IFileDialog, piFileType: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileTypeIndex(self, piFileType)proc Advise*(self: ptr IFileDialog, pfde: ptr IFileDialogEvents, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pfde, pdwCookie)proc Unadvise*(self: ptr IFileDialog, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie)proc SetOptions*(self: ptr IFileDialog, fos: FILEOPENDIALOGOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, fos)proc GetOptions*(self: ptr IFileDialog, pfos: ptr FILEOPENDIALOGOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pfos)proc SetDefaultFolder*(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultFolder(self, psi)proc SetFolder*(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolder(self, psi)proc GetFolder*(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolder(self, ppsi)proc GetCurrentSelection*(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSelection(self, ppsi)proc SetFileName*(self: ptr IFileDialog, pszName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileName(self, pszName)proc GetFileName*(self: ptr IFileDialog, pszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileName(self, pszName)proc SetTitle*(self: ptr IFileDialog, pszTitle: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTitle(self, pszTitle)proc SetOkButtonLabel*(self: ptr IFileDialog, pszText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOkButtonLabel(self, pszText)proc SetFileNameLabel*(self: ptr IFileDialog, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileNameLabel(self, pszLabel)proc GetResult*(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResult(self, ppsi)proc AddPlace*(self: ptr IFileDialog, psi: ptr IShellItem, fdap: FDAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPlace(self, psi, fdap)proc SetDefaultExtension*(self: ptr IFileDialog, pszDefaultExtension: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultExtension(self, pszDefaultExtension)proc Close*(self: ptr IFileDialog, hr: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, hr)proc SetClientGuid*(self: ptr IFileDialog, guid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClientGuid(self, guid)proc ClearClientData*(self: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearClientData(self)proc SetFilter*(self: ptr IFileDialog, pFilter: ptr IShellItemFilter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFilter(self, pFilter)proc GetResults*(self: ptr IFileOpenDialog, ppenum: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResults(self, ppenum)proc GetSelectedItems*(self: ptr IFileOpenDialog, ppsai: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedItems(self, ppsai)proc IncludeItem*(self: ptr IShellItemFilter, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IncludeItem(self, psi)proc GetEnumFlagsForItem*(self: ptr IShellItemFilter, psi: ptr IShellItem, pgrfFlags: ptr SHCONTF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumFlagsForItem(self, psi, pgrfFlags)proc Append*(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Append(self, punk)proc Remove*(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Remove(self, punk)proc Expand*(self: ptr IACList, pszExpand: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Expand(self, pszExpand)proc SetOptions*(self: ptr IACList2, dwFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, dwFlag)proc GetOptions*(self: ptr IACList2, pdwFlag: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pdwFlag)converter winimConverterIAutoCompleteToIUnknown*(x: ptr IAutoComplete): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIAutoComplete2ToIAutoComplete*(x: ptr IAutoComplete2): ptr IAutoComplete = cast[ptr IAutoComplete](x)converter winimConverterIAutoComplete2ToIUnknown*(x: ptr IAutoComplete2): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIShellItemToIUnknown*(x: ptr IShellItem): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIEnumShellItemsToIUnknown*(x: ptr IEnumShellItems): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIShellItemArrayToIUnknown*(x: ptr IShellItemArray): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterITaskbarListToIUnknown*(x: ptr ITaskbarList): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterITaskbarList2ToITaskbarList*(x: ptr ITaskbarList2): ptr ITaskbarList = cast[ptr ITaskbarList](x)converter winimConverterITaskbarList2ToIUnknown*(x: ptr ITaskbarList2): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterITaskbarList3ToITaskbarList2*(x: ptr ITaskbarList3): ptr ITaskbarList2 = cast[ptr ITaskbarList2](x)converter winimConverterITaskbarList3ToITaskbarList*(x: ptr ITaskbarList3): ptr ITaskbarList = cast[ptr ITaskbarList](x)converter winimConverterITaskbarList3ToIUnknown*(x: ptr ITaskbarList3): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIModalWindowToIUnknown*(x: ptr IModalWindow): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIFileDialogEventsToIUnknown*(x: ptr IFileDialogEvents): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIFileDialogToIModalWindow*(x: ptr IFileDialog): ptr IModalWindow = cast[ptr IModalWindow](x)converter winimConverterIFileDialogToIUnknown*(x: ptr IFileDialog): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIFileOpenDialogToIFileDialog*(x: ptr IFileOpenDialog): ptr IFileDialog = cast[ptr IFileDialog](x)converter winimConverterIFileOpenDialogToIModalWindow*(x: ptr IFileOpenDialog): ptr IModalWindow = cast[ptr IModalWindow](x)converter winimConverterIFileOpenDialogToIUnknown*(x: ptr IFileOpenDialog): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIShellItemFilterToIUnknown*(x: ptr IShellItemFilter): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIObjMgrToIUnknown*(x: ptr IObjMgr): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIACListToIUnknown*(x: ptr IACList): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIACList2ToIACList*(x: ptr IACList2): ptr IACList = cast[ptr IACList](x)converter winimConverterIACList2ToIUnknown*(x: ptr IACList2): ptr IUnknown = cast[ptr IUnknown](x)when winimUnicode:typeNOTIFYICONDATA* = NOTIFYICONDATAWBROWSEINFO* = BROWSEINFOWconstBFFM_SETSELECTION* = BFFM_SETSELECTIONWproc DragQueryFile*(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "DragQueryFileW".}proc ShellExecute*(hwnd: HWND, lpOperation: LPCWSTR, lpFile: LPCWSTR, lpParameters: LPCWSTR, lpDirectory: LPCWSTR, nShowCmd: INT): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteW".}proc ExtractIconEx*(lpszFile: LPCWSTR, nIconIndex: int32, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIcons: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconExW".}proc Shell_NotifyIcon*(dwMessage: DWORD, lpData: PNOTIFYICONDATAW): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "Shell_NotifyIconW".}proc PathFileExists*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFileExistsW".}proc PathCompactPath*(hDC: HDC, pszPath: LPWSTR, dx: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathW".}proc ILCreateFromPath*(pszPath: PCWSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "ILCreateFromPathW".}proc SHGetPathFromIDList*(pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetPathFromIDListW".}proc SHBrowseForFolder*(lpbi: LPBROWSEINFOW): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "SHBrowseForFolderW".}when winimAnsi:typeNOTIFYICONDATA* = NOTIFYICONDATAABROWSEINFO* = BROWSEINFOAconstBFFM_SETSELECTION* = BFFM_SETSELECTIONAproc DragQueryFile*(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "DragQueryFileA".}proc ShellExecute*(hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR, nShowCmd: INT): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteA".}proc ExtractIconEx*(lpszFile: LPCSTR, nIconIndex: int32, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIcons: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconExA".}proc Shell_NotifyIcon*(dwMessage: DWORD, lpData: PNOTIFYICONDATAA): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "Shell_NotifyIconA".}proc PathFileExists*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFileExistsA".}proc PathCompactPath*(hDC: HDC, pszPath: LPSTR, dx: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathA".}proc ILCreateFromPath*(pszPath: PCSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "ILCreateFromPathA".}proc SHGetPathFromIDList*(pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetPathFromIDListA".}proc SHBrowseForFolder*(lpbi: LPBROWSEINFOA): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "SHBrowseForFolderA".}constIID_IHTMLTxtRange* = DEFINE_GUID("3050f220-98b5-11cf-bb82-00aa00bdce0b")IID_IHTMLDocument2* = DEFINE_GUID("332c4425-26cb-11d0-b483-00c04fd90119")DOCHOSTUIFLAG_DIALOG* = 0x1DOCHOSTUIFLAG_SCROLL_NO* = 0x8DOCHOSTUIFLAG_THEME* = 0x40000DOCHOSTUIFLAG_NO3DOUTERBORDER* = 0x200000IID_IDocHostUIHandler* = DEFINE_GUID("bd3f23c0-d43e-11cf-893b-00aa00bdce1a")typeIHTMLFramesCollection2* {.pure.} = objectlpVtbl*: ptr IHTMLFramesCollection2VtblIHTMLFramesCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtblitem*: proc(self: ptr IHTMLFramesCollection2, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.}get_length*: proc(self: ptr IHTMLFramesCollection2, p: ptr LONG): HRESULT {.stdcall.}IHTMLImgElement* {.pure.} = objectlpVtbl*: ptr IHTMLImgElementVtblIHTMLImgElementVtbl* {.pure, inheritable.} = object of IDispatchVtblput_isMap*: proc(self: ptr IHTMLImgElement, v: VARIANT_BOOL): HRESULT {.stdcall.}get_isMap*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_useMap*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_useMap*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_mimeType*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_fileSize*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_fileCreatedDate*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_fileModifiedDate*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_fileUpdatedDate*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_protocol*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_href*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_nameProp*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_border*: proc(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.stdcall.}get_border*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.stdcall.}put_vspace*: proc(self: ptr IHTMLImgElement, v: LONG): HRESULT {.stdcall.}get_vspace*: proc(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.stdcall.}put_hspace*: proc(self: ptr IHTMLImgElement, v: LONG): HRESULT {.stdcall.}get_hspace*: proc(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.stdcall.}put_alt*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_alt*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_src*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_src*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_lowsrc*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_lowsrc*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_vrml*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_vrml*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_dynsrc*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_dynsrc*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_readyState*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}get_complete*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_loop*: proc(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.stdcall.}get_loop*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.stdcall.}put_align*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_align*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_onload*: proc(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.stdcall.}get_onload*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onerror*: proc(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.stdcall.}get_onerror*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onabort*: proc(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.stdcall.}get_onabort*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.stdcall.}put_name*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_name*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}put_width*: proc(self: ptr IHTMLImgElement, v: LONG): HRESULT {.stdcall.}get_width*: proc(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.stdcall.}put_height*: proc(self: ptr IHTMLImgElement, v: LONG): HRESULT {.stdcall.}get_height*: proc(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.stdcall.}put_start*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.}get_start*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.}IHTMLImageElementFactory* {.pure.} = objectlpVtbl*: ptr IHTMLImageElementFactoryVtblIHTMLImageElementFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtblcreate*: proc(self: ptr IHTMLImageElementFactory, width: VARIANT, height: VARIANT, a: ptr ptr IHTMLImgElement): HRESULT {.stdcall.}IHTMLLocation* {.pure.} = objectlpVtbl*: ptr IHTMLLocationVtblIHTMLLocationVtbl* {.pure, inheritable.} = object of IDispatchVtblput_href*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_href*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_protocol*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_protocol*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_host*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_host*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_hostname*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_hostname*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_port*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_port*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_pathname*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_pathname*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_search*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_search*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}put_hash*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.}get_hash*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.}reload*: proc(self: ptr IHTMLLocation, flag: VARIANT_BOOL): HRESULT {.stdcall.}replace*: proc(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.stdcall.}assign*: proc(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.stdcall.}toString*: proc(self: ptr IHTMLLocation, string: ptr BSTR): HRESULT {.stdcall.}IOmHistory* {.pure.} = objectlpVtbl*: ptr IOmHistoryVtblIOmHistoryVtbl* {.pure, inheritable.} = object of IDispatchVtblget_length*: proc(self: ptr IOmHistory, p: ptr int16): HRESULT {.stdcall.}back*: proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.}forward*: proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.}go*: proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.}IHTMLMimeTypesCollection* {.pure.} = objectlpVtbl*: ptr IHTMLMimeTypesCollectionVtblIHTMLMimeTypesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtblget_length*: proc(self: ptr IHTMLMimeTypesCollection, p: ptr LONG): HRESULT {.stdcall.}IHTMLPluginsCollection* {.pure.} = objectlpVtbl*: ptr IHTMLPluginsCollectionVtblIHTMLPluginsCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtblget_length*: proc(self: ptr IHTMLPluginsCollection, p: ptr LONG): HRESULT {.stdcall.}refresh*: proc(self: ptr IHTMLPluginsCollection, reload: VARIANT_BOOL): HRESULT {.stdcall.}IHTMLOpsProfile* {.pure.} = objectlpVtbl*: ptr IHTMLOpsProfileVtblIHTMLOpsProfileVtbl* {.pure, inheritable.} = object of IDispatchVtbladdRequest*: proc(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.stdcall.}clearRequest*: proc(self: ptr IHTMLOpsProfile): HRESULT {.stdcall.}doRequest*: proc(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.stdcall.}getAttribute*: proc(self: ptr IHTMLOpsProfile, name: BSTR, value: ptr BSTR): HRESULT {.stdcall.}setAttribute*: proc(self: ptr IHTMLOpsProfile, name: BSTR, value: BSTR, prefs: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.stdcall.}commitChanges*: proc(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.stdcall.}addReadRequest*: proc(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.stdcall.}doReadRequest*: proc(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.stdcall.}doWriteRequest*: proc(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.stdcall.}IOmNavigator* {.pure.} = objectlpVtbl*: ptr IOmNavigatorVtblIOmNavigatorVtbl* {.pure, inheritable.} = object of IDispatchVtblget_appCodeName*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_appName*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_appVersion*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_userAgent*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}javaEnabled*: proc(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.stdcall.}taintEnabled*: proc(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_mimeTypes*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLMimeTypesCollection): HRESULT {.stdcall.}get_plugins*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLPluginsCollection): HRESULT {.stdcall.}get_cookieEnabled*: proc(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_opsProfile*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.stdcall.}toString*: proc(self: ptr IOmNavigator, string: ptr BSTR): HRESULT {.stdcall.}get_cpuClass*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_systemLanguage*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_browserLanguage*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_userLanguage*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_platform*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_appMinorVersion*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.}get_connectionSpeed*: proc(self: ptr IOmNavigator, p: ptr LONG): HRESULT {.stdcall.}get_onLine*: proc(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_userProfile*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.stdcall.}IHTMLDocument* {.pure.} = objectlpVtbl*: ptr IHTMLDocumentVtblIHTMLDocumentVtbl* {.pure, inheritable.} = object of IDispatchVtblget_Script*: proc(self: ptr IHTMLDocument, p: ptr ptr IDispatch): HRESULT {.stdcall.}IHTMLElementCollection* {.pure.} = objectlpVtbl*: ptr IHTMLElementCollectionVtblIHTMLElementCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbltoString*: proc(self: ptr IHTMLElementCollection, String: ptr BSTR): HRESULT {.stdcall.}put_length*: proc(self: ptr IHTMLElementCollection, v: LONG): HRESULT {.stdcall.}get_length*: proc(self: ptr IHTMLElementCollection, p: ptr LONG): HRESULT {.stdcall.}get_newEnum*: proc(self: ptr IHTMLElementCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.}item*: proc(self: ptr IHTMLElementCollection, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.}tags*: proc(self: ptr IHTMLElementCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.}IHTMLStyle* {.pure.} = objectlpVtbl*: ptr IHTMLStyleVtblIHTMLStyleVtbl* {.pure, inheritable.} = object of IDispatchVtblput_fontFamily*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_fontFamily*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_fontStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontVariant*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_fontVariant*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontWeight*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_fontWeight*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontSize*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_fontSize*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_font*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_font*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_color*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_color*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_background*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_background*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_backgroundColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_backgroundImage*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundImage*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundRepeat*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundRepeat*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundAttachment*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundAttachment*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundPosition*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundPosition*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundPositionX*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_backgroundPositionX*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_backgroundPositionY*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_backgroundPositionY*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_wordSpacing*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_wordSpacing*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_letterSpacing*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_letterSpacing*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_textDecoration*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_textDecoration*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_textDecorationNone*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationNone*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationUnderline*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationUnderline*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationOverline*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationOverline*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationLineThrough*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationLineThrough*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationBlink*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationBlink*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_verticalAlign*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_verticalAlign*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_textTransform*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_textTransform*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_textAlign*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_textAlign*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_textIndent*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_textIndent*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_lineHeight*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_lineHeight*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginTop*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_marginTop*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginRight*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_marginRight*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginBottom*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_marginBottom*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginLeft*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_marginLeft*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_margin*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_margin*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_paddingTop*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingTop*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_paddingRight*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingRight*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_paddingBottom*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingBottom*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_paddingLeft*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingLeft*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_padding*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_padding*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_border*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_border*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTop*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderTop*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderRight*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderRight*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderBottom*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderBottom*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderLeft*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderLeft*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderColor*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderColor*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTopColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderTopColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderRightColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderRightColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderBottomColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderBottomColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderLeftColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderLeftColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderWidth*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderWidth*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTopWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderTopWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderRightWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderRightWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderBottomWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderBottomWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderLeftWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_borderLeftWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTopStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderTopStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderRightStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderRightStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderBottomStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderBottomStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderLeftStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_borderLeftStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_width*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_width*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_height*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_height*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_styleFloat*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_styleFloat*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_clear*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_clear*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_display*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_display*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_visibility*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_visibility*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStyleType*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_listStyleType*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStylePosition*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_listStylePosition*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStyleImage*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_listStyleImage*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_listStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_whiteSpace*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_whiteSpace*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_top*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_top*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_left*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_left*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}get_position*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_zIndex*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.}get_zIndex*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_overflow*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_overflow*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_pageBreakBefore*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_pageBreakBefore*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_pageBreakAfter*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_pageBreakAfter*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_cssText*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_cssText*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_pixelTop*: proc(self: ptr IHTMLStyle, v: LONG): HRESULT {.stdcall.}get_pixelTop*: proc(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.stdcall.}put_pixelLeft*: proc(self: ptr IHTMLStyle, v: LONG): HRESULT {.stdcall.}get_pixelLeft*: proc(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.stdcall.}put_pixelWidth*: proc(self: ptr IHTMLStyle, v: LONG): HRESULT {.stdcall.}get_pixelWidth*: proc(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.stdcall.}put_pixelHeight*: proc(self: ptr IHTMLStyle, v: LONG): HRESULT {.stdcall.}get_pixelHeight*: proc(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.stdcall.}put_posTop*: proc(self: ptr IHTMLStyle, v: float32): HRESULT {.stdcall.}get_posTop*: proc(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.stdcall.}put_posLeft*: proc(self: ptr IHTMLStyle, v: float32): HRESULT {.stdcall.}get_posLeft*: proc(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.stdcall.}put_posWidth*: proc(self: ptr IHTMLStyle, v: float32): HRESULT {.stdcall.}get_posWidth*: proc(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.stdcall.}put_posHeight*: proc(self: ptr IHTMLStyle, v: float32): HRESULT {.stdcall.}get_posHeight*: proc(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.stdcall.}put_cursor*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_cursor*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_clip*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_clip*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}put_filter*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.}get_filter*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.}setAttribute*: proc(self: ptr IHTMLStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.}getAttribute*: proc(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.}removeAttribute*: proc(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.}toString*: proc(self: ptr IHTMLStyle, String: ptr BSTR): HRESULT {.stdcall.}IHTMLFiltersCollection* {.pure.} = objectlpVtbl*: ptr IHTMLFiltersCollectionVtblIHTMLFiltersCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtblget_length*: proc(self: ptr IHTMLFiltersCollection, p: ptr LONG): HRESULT {.stdcall.}get_newEnum*: proc(self: ptr IHTMLFiltersCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.}item*: proc(self: ptr IHTMLFiltersCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.}IHTMLElement* {.pure.} = objectlpVtbl*: ptr IHTMLElementVtblIHTMLElementVtbl* {.pure, inheritable.} = object of IDispatchVtblsetAttribute*: proc(self: ptr IHTMLElement, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.}getAttribute*: proc(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.}removeAttribute*: proc(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_className*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_className*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}put_id*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_id*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}get_tagName*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}get_parentElement*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_style*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.}put_onhelp*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onhelp*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onclick*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onclick*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_ondblclick*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_ondblclick*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onkeydown*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onkeydown*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onkeyup*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onkeyup*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onkeypress*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onkeypress*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onmouseout*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onmouseout*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onmouseover*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onmouseover*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onmousemove*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onmousemove*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onmousedown*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onmousedown*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onmouseup*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onmouseup*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}get_document*: proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.}put_title*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_title*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}put_language*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_language*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}put_onselectstart*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onselectstart*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}scrollIntoView*: proc(self: ptr IHTMLElement, varargStart: VARIANT): HRESULT {.stdcall.}contains*: proc(self: ptr IHTMLElement, pChild: ptr IHTMLElement, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_sourceIndex*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.}get_recordNumber*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_lang*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_lang*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}get_offsetLeft*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.}get_offsetTop*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.}get_offsetWidth*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.}get_offsetHeight*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.}get_offsetParent*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}put_innerHTML*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_innerHTML*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}put_innerText*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_innerText*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}put_outerHTML*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_outerHTML*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}put_outerText*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.}get_outerText*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.}insertAdjacentHTML*: proc(self: ptr IHTMLElement, where: BSTR, html: BSTR): HRESULT {.stdcall.}insertAdjacentText*: proc(self: ptr IHTMLElement, where: BSTR, text: BSTR): HRESULT {.stdcall.}get_parentTextEdit*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_isTextEdit*: proc(self: ptr IHTMLElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}click*: proc(self: ptr IHTMLElement): HRESULT {.stdcall.}get_filters*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLFiltersCollection): HRESULT {.stdcall.}put_ondragstart*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_ondragstart*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}toString*: proc(self: ptr IHTMLElement, String: ptr BSTR): HRESULT {.stdcall.}put_onbeforeupdate*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onbeforeupdate*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onafterupdate*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onafterupdate*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onerrorupdate*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onerrorupdate*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onrowexit*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onrowexit*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onrowenter*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onrowenter*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_ondatasetchanged*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_ondatasetchanged*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_ondataavailable*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_ondataavailable*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_ondatasetcomplete*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_ondatasetcomplete*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onfilterchange*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.}get_onfilterchange*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.}get_children*: proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.}get_all*: proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.}IHTMLSelectionObject* {.pure.} = objectlpVtbl*: ptr IHTMLSelectionObjectVtblIHTMLSelectionObjectVtbl* {.pure, inheritable.} = object of IDispatchVtblcreateRange*: proc(self: ptr IHTMLSelectionObject, range: ptr ptr IDispatch): HRESULT {.stdcall.}empty*: proc(self: ptr IHTMLSelectionObject): HRESULT {.stdcall.}clear*: proc(self: ptr IHTMLSelectionObject): HRESULT {.stdcall.}get_type*: proc(self: ptr IHTMLSelectionObject, p: ptr BSTR): HRESULT {.stdcall.}IHTMLStyleSheetsCollection* {.pure.} = objectlpVtbl*: ptr IHTMLStyleSheetsCollectionVtblIHTMLStyleSheetsCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtblget_length*: proc(self: ptr IHTMLStyleSheetsCollection, p: ptr LONG): HRESULT {.stdcall.}get_newEnum*: proc(self: ptr IHTMLStyleSheetsCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.}item*: proc(self: ptr IHTMLStyleSheetsCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.}IHTMLRuleStyle* {.pure.} = objectlpVtbl*: ptr IHTMLRuleStyleVtblIHTMLRuleStyleVtbl* {.pure, inheritable.} = object of IDispatchVtblput_fontFamily*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_fontFamily*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_fontStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontVariant*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_fontVariant*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontWeight*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_fontWeight*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_fontSize*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_fontSize*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_font*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_font*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_color*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_color*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_background*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_background*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_backgroundColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_backgroundImage*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundImage*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundRepeat*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundRepeat*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundAttachment*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundAttachment*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundPosition*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_backgroundPosition*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_backgroundPositionX*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_backgroundPositionX*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_backgroundPositionY*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_backgroundPositionY*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_wordSpacing*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_wordSpacing*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_letterSpacing*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_letterSpacing*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_textDecoration*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_textDecoration*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_textDecorationNone*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationNone*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationUnderline*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationUnderline*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationOverline*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationOverline*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationLineThrough*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationLineThrough*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_textDecorationBlink*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.}get_textDecorationBlink*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_verticalAlign*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_verticalAlign*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_textTransform*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_textTransform*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_textAlign*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_textAlign*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_textIndent*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_textIndent*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_lineHeight*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_lineHeight*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginTop*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_marginTop*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginRight*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_marginRight*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginBottom*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_marginBottom*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_marginLeft*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_marginLeft*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_margin*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_margin*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_paddingTop*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingTop*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_paddingRight*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingRight*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_paddingBottom*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingBottom*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_paddingLeft*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_paddingLeft*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_padding*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_padding*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_border*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_border*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTop*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderTop*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderRight*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderRight*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderBottom*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderBottom*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderLeft*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderLeft*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderColor*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderColor*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTopColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderTopColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderRightColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderRightColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderBottomColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderBottomColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderLeftColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderLeftColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderWidth*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTopWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderTopWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderRightWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderRightWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderBottomWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderBottomWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderLeftWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_borderLeftWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_borderStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderTopStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderTopStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderRightStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderRightStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderBottomStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderBottomStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_borderLeftStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_borderLeftStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_width*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_width*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_height*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_height*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_styleFloat*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_styleFloat*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_clear*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_clear*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_display*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_display*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_visibility*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_visibility*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStyleType*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_listStyleType*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStylePosition*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_listStylePosition*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStyleImage*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_listStyleImage*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_listStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_listStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_whiteSpace*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_whiteSpace*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_top*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_top*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_left*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_left*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}get_position*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_zIndex*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.}get_zIndex*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.}put_overflow*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_overflow*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_pageBreakBefore*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_pageBreakBefore*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_pageBreakAfter*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_pageBreakAfter*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_cssText*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_cssText*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_cursor*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_cursor*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_clip*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_clip*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}put_filter*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.}get_filter*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.}setAttribute*: proc(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.}getAttribute*: proc(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.}removeAttribute*: proc(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.}IHTMLStyleSheetRule* {.pure.} = objectlpVtbl*: ptr IHTMLStyleSheetRuleVtblIHTMLStyleSheetRuleVtbl* {.pure, inheritable.} = object of IDispatchVtblput_selectorText*: proc(self: ptr IHTMLStyleSheetRule, v: BSTR): HRESULT {.stdcall.}get_selectorText*: proc(self: ptr IHTMLStyleSheetRule, p: ptr BSTR): HRESULT {.stdcall.}get_style*: proc(self: ptr IHTMLStyleSheetRule, p: ptr ptr IHTMLRuleStyle): HRESULT {.stdcall.}get_readOnly*: proc(self: ptr IHTMLStyleSheetRule, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}IHTMLStyleSheetRulesCollection* {.pure.} = objectlpVtbl*: ptr IHTMLStyleSheetRulesCollectionVtblIHTMLStyleSheetRulesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtblget_length*: proc(self: ptr IHTMLStyleSheetRulesCollection, p: ptr LONG): HRESULT {.stdcall.}item*: proc(self: ptr IHTMLStyleSheetRulesCollection, index: LONG, ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.stdcall.}IHTMLStyleSheet* {.pure.} = objectlpVtbl*: ptr IHTMLStyleSheetVtblIHTMLStyleSheetVtbl* {.pure, inheritable.} = object of IDispatchVtblput_title*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.}get_title*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.}get_parentStyleSheet*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.}get_owningElement*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}put_disabled*: proc(self: ptr IHTMLStyleSheet, v: VARIANT_BOOL): HRESULT {.stdcall.}get_disabled*: proc(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_readOnly*: proc(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_imports*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.stdcall.}put_href*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.}get_href*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.}get_type*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.}get_id*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.}addImport*: proc(self: ptr IHTMLStyleSheet, bstrURL: BSTR, lIndex: LONG, plIndex: ptr LONG): HRESULT {.stdcall.}addRule*: proc(self: ptr IHTMLStyleSheet, bstrSelector: BSTR, bstrStyle: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.stdcall.}removeImport*: proc(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.stdcall.}removeRule*: proc(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.stdcall.}put_media*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.}get_media*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.}put_cssText*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.}get_cssText*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.}get_rules*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.stdcall.}IHTMLDocument2* {.pure.} = objectlpVtbl*: ptr IHTMLDocument2VtblIHTMLDocument2Vtbl* {.pure, inheritable.} = object of IHTMLDocumentVtblget_all*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}get_body*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_activeElement*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_images*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}get_applets*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}get_links*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}get_forms*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}get_anchors*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}put_title*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_title*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_scripts*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}put_designMode*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_designMode*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_selection*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLSelectionObject): HRESULT {.stdcall.}get_readyState*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_frames*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.stdcall.}get_embeds*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}get_plugins*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.}put_alinkColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_alinkColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_bgColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_bgColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_fgColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_fgColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_linkColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_linkColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_vlinkColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_vlinkColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}get_referrer*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_location*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLLocation): HRESULT {.stdcall.}get_lastModified*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}put_URL*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_URL*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}put_domain*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_domain*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}put_cookie*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_cookie*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}put_expando*: proc(self: ptr IHTMLDocument2, v: VARIANT_BOOL): HRESULT {.stdcall.}get_expando*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_charset*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_charset*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}put_defaultCharset*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.}get_defaultCharset*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_mimeType*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_fileSize*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_fileCreatedDate*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_fileModifiedDate*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_fileUpdatedDate*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_security*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_protocol*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}get_nameProp*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.}write*: proc(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.stdcall.}writeln*: proc(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.stdcall.}open*: proc(self: ptr IHTMLDocument2, url: BSTR, name: VARIANT, features: VARIANT, replace: VARIANT, pomWindowResult: ptr ptr IDispatch): HRESULT {.stdcall.}close*: proc(self: ptr IHTMLDocument2): HRESULT {.stdcall.}clear*: proc(self: ptr IHTMLDocument2): HRESULT {.stdcall.}queryCommandSupported*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandEnabled*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandState*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandIndeterm*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandText*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.stdcall.}queryCommandValue*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.stdcall.}execCommand*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}execCommandShowHelp*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}createElement*: proc(self: ptr IHTMLDocument2, eTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.stdcall.}put_onhelp*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onhelp*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onclick*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onclick*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_ondblclick*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_ondblclick*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onkeyup*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onkeyup*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onkeydown*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onkeydown*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onkeypress*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onkeypress*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onmouseup*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onmouseup*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onmousedown*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onmousedown*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onmousemove*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onmousemove*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onmouseout*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onmouseout*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onmouseover*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onmouseover*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onreadystatechange*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onreadystatechange*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onafterupdate*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onafterupdate*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onrowexit*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onrowexit*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onrowenter*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onrowenter*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_ondragstart*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_ondragstart*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onselectstart*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onselectstart*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}elementFromPoint*: proc(self: ptr IHTMLDocument2, x: LONG, y: LONG, elementHit: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_parentWindow*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.}get_styleSheets*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.stdcall.}put_onbeforeupdate*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onbeforeupdate*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}put_onerrorupdate*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.}get_onerrorupdate*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.}toString*: proc(self: ptr IHTMLDocument2, String: ptr BSTR): HRESULT {.stdcall.}createStyleSheet*: proc(self: ptr IHTMLDocument2, bstrHref: BSTR, lIndex: LONG, ppnewStyleSheet: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.}IHTMLEventObj* {.pure.} = objectlpVtbl*: ptr IHTMLEventObjVtblIHTMLEventObjVtbl* {.pure, inheritable.} = object of IDispatchVtblget_srcElement*: proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_altKey*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_ctrlKey*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_shiftKey*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_returnValue*: proc(self: ptr IHTMLEventObj, v: VARIANT): HRESULT {.stdcall.}get_returnValue*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT): HRESULT {.stdcall.}put_cancelBubble*: proc(self: ptr IHTMLEventObj, v: VARIANT_BOOL): HRESULT {.stdcall.}get_cancelBubble*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}get_fromElement*: proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}get_toElement*: proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.}put_keyCode*: proc(self: ptr IHTMLEventObj, v: LONG): HRESULT {.stdcall.}get_keyCode*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_button*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_type*: proc(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.stdcall.}get_qualifier*: proc(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.stdcall.}get_reason*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_x*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_y*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_clientX*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_clientY*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_offsetX*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_offsetY*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_screenX*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_screenY*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.}get_srcFilter*: proc(self: ptr IHTMLEventObj, p: ptr ptr IDispatch): HRESULT {.stdcall.}IHTMLScreen* {.pure.} = objectlpVtbl*: ptr IHTMLScreenVtblIHTMLScreenVtbl* {.pure, inheritable.} = object of IDispatchVtblget_colorDepth*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}put_bufferDepth*: proc(self: ptr IHTMLScreen, v: LONG): HRESULT {.stdcall.}get_bufferDepth*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}get_width*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}get_height*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}put_updateInterval*: proc(self: ptr IHTMLScreen, v: LONG): HRESULT {.stdcall.}get_updateInterval*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}get_availHeight*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}get_availWidth*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.}get_fontSmoothingEnabled*: proc(self: ptr IHTMLScreen, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}IHTMLFormElement* {.pure.} = objectlpVtbl*: ptr IHTMLFormElementVtblIHTMLFormElementVtbl* {.pure, inheritable.} = object of IDispatchVtblput_action*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.}get_action*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.}put_dir*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.}get_dir*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.}put_encoding*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.}get_encoding*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.}put_method*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.}get_method*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.}get_elements*: proc(self: ptr IHTMLFormElement, p: ptr ptr IDispatch): HRESULT {.stdcall.}put_target*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.}get_target*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.}put_name*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.}get_name*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.}put_onsubmit*: proc(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.stdcall.}get_onsubmit*: proc(self: ptr IHTMLFormElement, p: ptr VARIANT): HRESULT {.stdcall.}put_onreset*: proc(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.stdcall.}get_onreset*: proc(self: ptr IHTMLFormElement, p: ptr VARIANT): HRESULT {.stdcall.}submit*: proc(self: ptr IHTMLFormElement): HRESULT {.stdcall.}reset*: proc(self: ptr IHTMLFormElement): HRESULT {.stdcall.}put_length*: proc(self: ptr IHTMLFormElement, v: LONG): HRESULT {.stdcall.}get_length*: proc(self: ptr IHTMLFormElement, p: ptr LONG): HRESULT {.stdcall.}get_newEnum*: proc(self: ptr IHTMLFormElement, p: ptr ptr IUnknown): HRESULT {.stdcall.}item*: proc(self: ptr IHTMLFormElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.}tags*: proc(self: ptr IHTMLFormElement, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.}IHTMLOptionElement* {.pure.} = objectlpVtbl*: ptr IHTMLOptionElementVtblIHTMLOptionElementVtbl* {.pure, inheritable.} = object of IDispatchVtblput_selected*: proc(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.stdcall.}get_selected*: proc(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_value*: proc(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.stdcall.}get_value*: proc(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.stdcall.}put_defaultSelected*: proc(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.stdcall.}get_defaultSelected*: proc(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}put_index*: proc(self: ptr IHTMLOptionElement, v: LONG): HRESULT {.stdcall.}get_index*: proc(self: ptr IHTMLOptionElement, p: ptr LONG): HRESULT {.stdcall.}put_text*: proc(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.stdcall.}get_text*: proc(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.stdcall.}get_form*: proc(self: ptr IHTMLOptionElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.}IHTMLOptionElementFactory* {.pure.} = objectlpVtbl*: ptr IHTMLOptionElementFactoryVtblIHTMLOptionElementFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtblcreate*: proc(self: ptr IHTMLOptionElementFactory, text: VARIANT, value: VARIANT, defaultselected: VARIANT, selected: VARIANT, a: ptr ptr IHTMLOptionElement): HRESULT {.stdcall.}IHTMLWindow2* {.pure.} = objectlpVtbl*: ptr IHTMLWindow2VtblIHTMLWindow2Vtbl* {.pure, inheritable.} = object of IHTMLFramesCollection2Vtblget_frames*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.stdcall.}put_defaultStatus*: proc(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.stdcall.}get_defaultStatus*: proc(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.stdcall.}put_status*: proc(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.stdcall.}get_status*: proc(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.stdcall.}setTimeout*: proc(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.stdcall.}clearTimeout*: proc(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.stdcall.}alert*: proc(self: ptr IHTMLWindow2, message: BSTR): HRESULT {.stdcall.}confirm*: proc(self: ptr IHTMLWindow2, message: BSTR, confirmed: ptr VARIANT_BOOL): HRESULT {.stdcall.}prompt*: proc(self: ptr IHTMLWindow2, message: BSTR, defstr: BSTR, textdata: ptr VARIANT): HRESULT {.stdcall.}get_Image*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLImageElementFactory): HRESULT {.stdcall.}get_location*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLLocation): HRESULT {.stdcall.}get_history*: proc(self: ptr IHTMLWindow2, p: ptr ptr IOmHistory): HRESULT {.stdcall.}close*: proc(self: ptr IHTMLWindow2): HRESULT {.stdcall.}put_opener*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_opener*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}get_navigator*: proc(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.stdcall.}put_name*: proc(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.stdcall.}get_name*: proc(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.stdcall.}get_parent*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.}open*: proc(self: ptr IHTMLWindow2, url: BSTR, name: BSTR, features: BSTR, replace: VARIANT_BOOL, pomWindowResult: ptr ptr IHTMLWindow2): HRESULT {.stdcall.}get_self*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.}get_top*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.}get_window*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.}navigate*: proc(self: ptr IHTMLWindow2, url: BSTR): HRESULT {.stdcall.}put_onfocus*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onfocus*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onblur*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onblur*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onload*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onload*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onbeforeunload*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onbeforeunload*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onunload*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onunload*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onhelp*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onhelp*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onerror*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onerror*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onresize*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onresize*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}put_onscroll*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_onscroll*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}get_document*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.}get_event*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLEventObj): HRESULT {.stdcall.}get_newEnum*: proc(self: ptr IHTMLWindow2, p: ptr ptr IUnknown): HRESULT {.stdcall.}showModalDialog*: proc(self: ptr IHTMLWindow2, dialog: BSTR, varArgIn: ptr VARIANT, varOptions: ptr VARIANT, varArgOut: ptr VARIANT): HRESULT {.stdcall.}showHelp*: proc(self: ptr IHTMLWindow2, helpURL: BSTR, helpArg: VARIANT, features: BSTR): HRESULT {.stdcall.}get_screen*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLScreen): HRESULT {.stdcall.}get_Option*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLOptionElementFactory): HRESULT {.stdcall.}focus*: proc(self: ptr IHTMLWindow2): HRESULT {.stdcall.}get_closed*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.}blur*: proc(self: ptr IHTMLWindow2): HRESULT {.stdcall.}scroll*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}get_clientInformation*: proc(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.stdcall.}setInterval*: proc(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.stdcall.}clearInterval*: proc(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.stdcall.}put_offscreenBuffering*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.}get_offscreenBuffering*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.}execScript*: proc(self: ptr IHTMLWindow2, code: BSTR, language: BSTR, pvarRet: ptr VARIANT): HRESULT {.stdcall.}toString*: proc(self: ptr IHTMLWindow2, String: ptr BSTR): HRESULT {.stdcall.}scrollBy*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}scrollTo*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}moveTo*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}moveBy*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}resizeTo*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}resizeBy*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.}get_external*: proc(self: ptr IHTMLWindow2, p: ptr ptr IDispatch): HRESULT {.stdcall.}DOCHOSTUIINFO* {.pure.} = objectcbSize*: ULONGdwFlags*: DWORDdwDoubleClick*: DWORDpchHostCss*: ptr OLECHARpchHostNS*: ptr OLECHARIHTMLTxtRange* {.pure.} = objectlpVtbl*: ptr IHTMLTxtRangeVtblIHTMLTxtRangeVtbl* {.pure, inheritable.} = object of IDispatchVtblget_htmlText*: proc(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.stdcall.}put_text*: proc(self: ptr IHTMLTxtRange, v: BSTR): HRESULT {.stdcall.}get_text*: proc(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.stdcall.}parentElement*: proc(self: ptr IHTMLTxtRange, parent: ptr ptr IHTMLElement): HRESULT {.stdcall.}duplicate*: proc(self: ptr IHTMLTxtRange, Duplicate: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.}inRange*: proc(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, InRange: ptr VARIANT_BOOL): HRESULT {.stdcall.}isEqual*: proc(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, IsEqual: ptr VARIANT_BOOL): HRESULT {.stdcall.}scrollIntoView*: proc(self: ptr IHTMLTxtRange, fStart: VARIANT_BOOL): HRESULT {.stdcall.}collapse*: proc(self: ptr IHTMLTxtRange, Start: VARIANT_BOOL): HRESULT {.stdcall.}expand*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.stdcall.}move*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.stdcall.}moveStart*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.stdcall.}moveEnd*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.stdcall.}select*: proc(self: ptr IHTMLTxtRange): HRESULT {.stdcall.}pasteHTML*: proc(self: ptr IHTMLTxtRange, html: BSTR): HRESULT {.stdcall.}moveToElementText*: proc(self: ptr IHTMLTxtRange, element: ptr IHTMLElement): HRESULT {.stdcall.}setEndPoint*: proc(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange): HRESULT {.stdcall.}compareEndPoints*: proc(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange, ret: ptr LONG): HRESULT {.stdcall.}findText*: proc(self: ptr IHTMLTxtRange, String: BSTR, count: LONG, Flags: LONG, Success: ptr VARIANT_BOOL): HRESULT {.stdcall.}moveToPoint*: proc(self: ptr IHTMLTxtRange, x: LONG, y: LONG): HRESULT {.stdcall.}getBookmark*: proc(self: ptr IHTMLTxtRange, Boolmark: ptr BSTR): HRESULT {.stdcall.}moveToBookmark*: proc(self: ptr IHTMLTxtRange, Bookmark: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandSupported*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandEnabled*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandState*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandIndeterm*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}queryCommandText*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.stdcall.}queryCommandValue*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.stdcall.}execCommand*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}execCommandShowHelp*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.}IDocHostUIHandler* {.pure.} = objectlpVtbl*: ptr IDocHostUIHandlerVtblIDocHostUIHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtblShowContextMenu*: proc(self: ptr IDocHostUIHandler, dwID: DWORD, ppt: ptr POINT, pcmdtReserved: ptr IUnknown, pdispReserved: ptr IDispatch): HRESULT {.stdcall.}GetHostInfo*: proc(self: ptr IDocHostUIHandler, pInfo: ptr DOCHOSTUIINFO): HRESULT {.stdcall.}ShowUI*: proc(self: ptr IDocHostUIHandler, dwID: DWORD, pActiveObject: ptr IOleInPlaceActiveObject, pCommandTarget: ptr IOleCommandTarget, pFrame: ptr IOleInPlaceFrame, pDoc: ptr IOleInPlaceUIWindow): HRESULT {.stdcall.}HideUI*: proc(self: ptr IDocHostUIHandler): HRESULT {.stdcall.}UpdateUI*: proc(self: ptr IDocHostUIHandler): HRESULT {.stdcall.}EnableModeless*: proc(self: ptr IDocHostUIHandler, fEnable: WINBOOL): HRESULT {.stdcall.}OnDocWindowActivate*: proc(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.stdcall.}OnFrameWindowActivate*: proc(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.stdcall.}ResizeBorder*: proc(self: ptr IDocHostUIHandler, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fRameWindow: WINBOOL): HRESULT {.stdcall.}TranslateAccelerator*: proc(self: ptr IDocHostUIHandler, lpMsg: LPMSG, pguidCmdGroup: ptr GUID, nCmdID: DWORD): HRESULT {.stdcall.}GetOptionKeyPath*: proc(self: ptr IDocHostUIHandler, pchKey: ptr LPOLESTR, dw: DWORD): HRESULT {.stdcall.}GetDropTarget*: proc(self: ptr IDocHostUIHandler, pDropTarget: ptr IDropTarget, ppDropTarget: ptr ptr IDropTarget): HRESULT {.stdcall.}GetExternal*: proc(self: ptr IDocHostUIHandler, ppDispatch: ptr ptr IDispatch): HRESULT {.stdcall.}TranslateUrl*: proc(self: ptr IDocHostUIHandler, dwTranslate: DWORD, pchURLIn: LPWSTR, ppchURLOut: ptr LPWSTR): HRESULT {.stdcall.}FilterDataObject*: proc(self: ptr IDocHostUIHandler, pDO: ptr IDataObject, ppDORet: ptr ptr IDataObject): HRESULT {.stdcall.}proc get_length*(self: ptr IHTMLFiltersCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc get_newEnum*(self: ptr IHTMLFiltersCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p)proc item*(self: ptr IHTMLFiltersCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult)proc put_fontFamily*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontFamily(self, v)proc get_fontFamily*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFamily(self, p)proc put_fontStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontStyle(self, v)proc get_fontStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStyle(self, p)proc put_fontVariant*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontVariant(self, v)proc get_fontVariant*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontVariant(self, p)proc put_fontWeight*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontWeight(self, v)proc get_fontWeight*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p)proc put_fontSize*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontSize(self, v)proc get_fontSize*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p)proc put_font*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_font(self, v)proc get_font*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_font(self, p)proc put_color*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v)proc get_color*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p)proc put_background*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v)proc get_background*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p)proc put_backgroundColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundColor(self, v)proc get_backgroundColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p)proc put_backgroundImage*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundImage(self, v)proc get_backgroundImage*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundImage(self, p)proc put_backgroundRepeat*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundRepeat(self, v)proc get_backgroundRepeat*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundRepeat(self, p)proc put_backgroundAttachment*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundAttachment(self, v)proc get_backgroundAttachment*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundAttachment(self, p)proc put_backgroundPosition*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPosition(self, v)proc get_backgroundPosition*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPosition(self, p)proc put_backgroundPositionX*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionX(self, v)proc get_backgroundPositionX*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionX(self, p)proc put_backgroundPositionY*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionY(self, v)proc get_backgroundPositionY*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionY(self, p)proc put_wordSpacing*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordSpacing(self, v)proc get_wordSpacing*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordSpacing(self, p)proc put_letterSpacing*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_letterSpacing(self, v)proc get_letterSpacing*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_letterSpacing(self, p)proc put_textDecoration*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecoration(self, v)proc get_textDecoration*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p)proc put_textDecorationNone*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationNone(self, v)proc get_textDecorationNone*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationNone(self, p)proc put_textDecorationUnderline*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationUnderline(self, v)proc get_textDecorationUnderline*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationUnderline(self, p)proc put_textDecorationOverline*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationOverline(self, v)proc get_textDecorationOverline*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationOverline(self, p)proc put_textDecorationLineThrough*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationLineThrough(self, v)proc get_textDecorationLineThrough*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationLineThrough(self, p)proc put_textDecorationBlink*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationBlink(self, v)proc get_textDecorationBlink*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationBlink(self, p)proc put_verticalAlign*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_verticalAlign(self, v)proc get_verticalAlign*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_verticalAlign(self, p)proc put_textTransform*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textTransform(self, v)proc get_textTransform*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textTransform(self, p)proc put_textAlign*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlign(self, v)proc get_textAlign*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p)proc put_textIndent*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textIndent(self, v)proc get_textIndent*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textIndent(self, p)proc put_lineHeight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineHeight(self, v)proc get_lineHeight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineHeight(self, p)proc put_marginTop*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginTop(self, v)proc get_marginTop*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p)proc put_marginRight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginRight(self, v)proc get_marginRight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p)proc put_marginBottom*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginBottom(self, v)proc get_marginBottom*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p)proc put_marginLeft*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginLeft(self, v)proc get_marginLeft*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p)proc put_margin*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_margin(self, v)proc get_margin*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_margin(self, p)proc put_paddingTop*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingTop(self, v)proc get_paddingTop*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingTop(self, p)proc put_paddingRight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingRight(self, v)proc get_paddingRight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingRight(self, p)proc put_paddingBottom*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingBottom(self, v)proc get_paddingBottom*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingBottom(self, p)proc put_paddingLeft*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingLeft(self, v)proc get_paddingLeft*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingLeft(self, p)proc put_padding*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_padding(self, v)proc get_padding*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_padding(self, p)proc put_border*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v)proc get_border*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p)proc put_borderTop*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTop(self, v)proc get_borderTop*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTop(self, p)proc put_borderRight*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRight(self, v)proc get_borderRight*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRight(self, p)proc put_borderBottom*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottom(self, v)proc get_borderBottom*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottom(self, p)proc put_borderLeft*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeft(self, v)proc get_borderLeft*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeft(self, p)proc put_borderColor*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v)proc get_borderColor*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p)proc put_borderTopColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopColor(self, v)proc get_borderTopColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopColor(self, p)proc put_borderRightColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightColor(self, v)proc get_borderRightColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightColor(self, p)proc put_borderBottomColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomColor(self, v)proc get_borderBottomColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomColor(self, p)proc put_borderLeftColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftColor(self, v)proc get_borderLeftColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftColor(self, p)proc put_borderWidth*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderWidth(self, v)proc get_borderWidth*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderWidth(self, p)proc put_borderTopWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopWidth(self, v)proc get_borderTopWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopWidth(self, p)proc put_borderRightWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightWidth(self, v)proc get_borderRightWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightWidth(self, p)proc put_borderBottomWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomWidth(self, v)proc get_borderBottomWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomWidth(self, p)proc put_borderLeftWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftWidth(self, v)proc get_borderLeftWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftWidth(self, p)proc put_borderStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderStyle(self, v)proc get_borderStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p)proc put_borderTopStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopStyle(self, v)proc get_borderTopStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopStyle(self, p)proc put_borderRightStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightStyle(self, v)proc get_borderRightStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightStyle(self, p)proc put_borderBottomStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomStyle(self, v)proc get_borderBottomStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomStyle(self, p)proc put_borderLeftStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftStyle(self, v)proc get_borderLeftStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftStyle(self, p)proc put_width*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v)proc get_width*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p)proc put_height*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v)proc get_height*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p)proc put_styleFloat*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_styleFloat(self, v)proc get_styleFloat*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleFloat(self, p)proc put_clear*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v)proc get_clear*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p)proc put_display*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_display(self, v)proc get_display*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_display(self, p)proc put_visibility*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_visibility(self, v)proc get_visibility*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p)proc put_listStyleType*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleType(self, v)proc get_listStyleType*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleType(self, p)proc put_listStylePosition*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStylePosition(self, v)proc get_listStylePosition*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStylePosition(self, p)proc put_listStyleImage*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleImage(self, v)proc get_listStyleImage*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleImage(self, p)proc put_listStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyle(self, v)proc get_listStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyle(self, p)proc put_whiteSpace*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_whiteSpace(self, v)proc get_whiteSpace*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whiteSpace(self, p)proc put_top*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_top(self, v)proc get_top*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p)proc put_left*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_left(self, v)proc get_left*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p)proc get_position*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p)proc put_zIndex*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zIndex(self, v)proc get_zIndex*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zIndex(self, p)proc put_overflow*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflow(self, v)proc get_overflow*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflow(self, p)proc put_pageBreakBefore*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakBefore(self, v)proc get_pageBreakBefore*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakBefore(self, p)proc put_pageBreakAfter*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakAfter(self, v)proc get_pageBreakAfter*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakAfter(self, p)proc put_cssText*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v)proc get_cssText*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p)proc put_pixelTop*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelTop(self, v)proc get_pixelTop*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelTop(self, p)proc put_pixelLeft*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelLeft(self, v)proc get_pixelLeft*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelLeft(self, p)proc put_pixelWidth*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelWidth(self, v)proc get_pixelWidth*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelWidth(self, p)proc put_pixelHeight*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelHeight(self, v)proc get_pixelHeight*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelHeight(self, p)proc put_posTop*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posTop(self, v)proc get_posTop*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posTop(self, p)proc put_posLeft*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posLeft(self, v)proc get_posLeft*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posLeft(self, p)proc put_posWidth*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posWidth(self, v)proc get_posWidth*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posWidth(self, p)proc put_posHeight*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posHeight(self, v)proc get_posHeight*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posHeight(self, p)proc put_cursor*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cursor(self, v)proc get_cursor*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cursor(self, p)proc put_clip*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clip(self, v)proc get_clip*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clip(self, p)proc put_filter*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_filter(self, v)proc get_filter*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p)proc setAttribute*(self: ptr IHTMLStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags)proc getAttribute*(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue)proc removeAttribute*(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess)proc toString*(self: ptr IHTMLStyle, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String)proc put_fontFamily*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontFamily(self, v)proc get_fontFamily*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFamily(self, p)proc put_fontStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontStyle(self, v)proc get_fontStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStyle(self, p)proc put_fontVariant*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontVariant(self, v)proc get_fontVariant*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontVariant(self, p)proc put_fontWeight*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontWeight(self, v)proc get_fontWeight*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p)proc put_fontSize*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontSize(self, v)proc get_fontSize*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p)proc put_font*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_font(self, v)proc get_font*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_font(self, p)proc put_color*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v)proc get_color*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p)proc put_background*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v)proc get_background*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p)proc put_backgroundColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundColor(self, v)proc get_backgroundColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p)proc put_backgroundImage*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundImage(self, v)proc get_backgroundImage*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundImage(self, p)proc put_backgroundRepeat*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundRepeat(self, v)proc get_backgroundRepeat*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundRepeat(self, p)proc put_backgroundAttachment*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundAttachment(self, v)proc get_backgroundAttachment*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundAttachment(self, p)proc put_backgroundPosition*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPosition(self, v)proc get_backgroundPosition*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPosition(self, p)proc put_backgroundPositionX*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionX(self, v)proc get_backgroundPositionX*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionX(self, p)proc put_backgroundPositionY*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionY(self, v)proc get_backgroundPositionY*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionY(self, p)proc put_wordSpacing*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordSpacing(self, v)proc get_wordSpacing*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordSpacing(self, p)proc put_letterSpacing*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_letterSpacing(self, v)proc get_letterSpacing*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_letterSpacing(self, p)proc put_textDecoration*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecoration(self, v)proc get_textDecoration*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p)proc put_textDecorationNone*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationNone(self, v)proc get_textDecorationNone*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationNone(self, p)proc put_textDecorationUnderline*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationUnderline(self, v)proc get_textDecorationUnderline*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationUnderline(self, p)proc put_textDecorationOverline*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationOverline(self, v)proc get_textDecorationOverline*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationOverline(self, p)proc put_textDecorationLineThrough*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationLineThrough(self, v)proc get_textDecorationLineThrough*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationLineThrough(self, p)proc put_textDecorationBlink*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationBlink(self, v)proc get_textDecorationBlink*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationBlink(self, p)proc put_verticalAlign*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_verticalAlign(self, v)proc get_verticalAlign*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_verticalAlign(self, p)proc put_textTransform*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textTransform(self, v)proc get_textTransform*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textTransform(self, p)proc put_textAlign*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlign(self, v)proc get_textAlign*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p)proc put_textIndent*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textIndent(self, v)proc get_textIndent*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textIndent(self, p)proc put_lineHeight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineHeight(self, v)proc get_lineHeight*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineHeight(self, p)proc put_marginTop*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginTop(self, v)proc get_marginTop*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p)proc put_marginRight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginRight(self, v)proc get_marginRight*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p)proc put_marginBottom*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginBottom(self, v)proc get_marginBottom*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p)proc put_marginLeft*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginLeft(self, v)proc get_marginLeft*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p)proc put_margin*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_margin(self, v)proc get_margin*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_margin(self, p)proc put_paddingTop*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingTop(self, v)proc get_paddingTop*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingTop(self, p)proc put_paddingRight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingRight(self, v)proc get_paddingRight*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingRight(self, p)proc put_paddingBottom*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingBottom(self, v)proc get_paddingBottom*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingBottom(self, p)proc put_paddingLeft*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingLeft(self, v)proc get_paddingLeft*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingLeft(self, p)proc put_padding*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_padding(self, v)proc get_padding*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_padding(self, p)proc put_border*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v)proc get_border*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p)proc put_borderTop*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTop(self, v)proc get_borderTop*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTop(self, p)proc put_borderRight*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRight(self, v)proc get_borderRight*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRight(self, p)proc put_borderBottom*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottom(self, v)proc get_borderBottom*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottom(self, p)proc put_borderLeft*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeft(self, v)proc get_borderLeft*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeft(self, p)proc put_borderColor*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v)proc get_borderColor*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p)proc put_borderTopColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopColor(self, v)proc get_borderTopColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopColor(self, p)proc put_borderRightColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightColor(self, v)proc get_borderRightColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightColor(self, p)proc put_borderBottomColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomColor(self, v)proc get_borderBottomColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomColor(self, p)proc put_borderLeftColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftColor(self, v)proc get_borderLeftColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftColor(self, p)proc put_borderWidth*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderWidth(self, v)proc get_borderWidth*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderWidth(self, p)proc put_borderTopWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopWidth(self, v)proc get_borderTopWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopWidth(self, p)proc put_borderRightWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightWidth(self, v)proc get_borderRightWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightWidth(self, p)proc put_borderBottomWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomWidth(self, v)proc get_borderBottomWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomWidth(self, p)proc put_borderLeftWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftWidth(self, v)proc get_borderLeftWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftWidth(self, p)proc put_borderStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderStyle(self, v)proc get_borderStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p)proc put_borderTopStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopStyle(self, v)proc get_borderTopStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopStyle(self, p)proc put_borderRightStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightStyle(self, v)proc get_borderRightStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightStyle(self, p)proc put_borderBottomStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomStyle(self, v)proc get_borderBottomStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomStyle(self, p)proc put_borderLeftStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftStyle(self, v)proc get_borderLeftStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftStyle(self, p)proc put_width*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v)proc get_width*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p)proc put_height*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v)proc get_height*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p)proc put_styleFloat*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_styleFloat(self, v)proc get_styleFloat*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleFloat(self, p)proc put_clear*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v)proc get_clear*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p)proc put_display*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_display(self, v)proc get_display*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_display(self, p)proc put_visibility*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_visibility(self, v)proc get_visibility*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p)proc put_listStyleType*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleType(self, v)proc get_listStyleType*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleType(self, p)proc put_listStylePosition*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStylePosition(self, v)proc get_listStylePosition*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStylePosition(self, p)proc put_listStyleImage*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleImage(self, v)proc get_listStyleImage*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleImage(self, p)proc put_listStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyle(self, v)proc get_listStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyle(self, p)proc put_whiteSpace*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_whiteSpace(self, v)proc get_whiteSpace*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whiteSpace(self, p)proc put_top*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_top(self, v)proc get_top*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p)proc put_left*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_left(self, v)proc get_left*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p)proc get_position*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p)proc put_zIndex*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zIndex(self, v)proc get_zIndex*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zIndex(self, p)proc put_overflow*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflow(self, v)proc get_overflow*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflow(self, p)proc put_pageBreakBefore*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakBefore(self, v)proc get_pageBreakBefore*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakBefore(self, p)proc put_pageBreakAfter*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakAfter(self, v)proc get_pageBreakAfter*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakAfter(self, p)proc put_cssText*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v)proc get_cssText*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p)proc put_cursor*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cursor(self, v)proc get_cursor*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cursor(self, p)proc put_clip*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clip(self, v)proc get_clip*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clip(self, p)proc put_filter*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_filter(self, v)proc get_filter*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p)proc setAttribute*(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags)proc getAttribute*(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue)proc removeAttribute*(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess)proc setAttribute*(self: ptr IHTMLElement, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags)proc getAttribute*(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue)proc removeAttribute*(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess)proc put_className*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_className(self, v)proc get_className*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_className(self, p)proc put_id*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_id(self, v)proc get_id*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_id(self, p)proc get_tagName*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagName(self, p)proc get_parentElement*(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentElement(self, p)proc get_style*(self: ptr IHTMLElement, p: ptr ptr IHTMLStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p)proc put_onhelp*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhelp(self, v)proc get_onhelp*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhelp(self, p)proc put_onclick*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onclick(self, v)proc get_onclick*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onclick(self, p)proc put_ondblclick*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondblclick(self, v)proc get_ondblclick*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondblclick(self, p)proc put_onkeydown*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeydown(self, v)proc get_onkeydown*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeydown(self, p)proc put_onkeyup*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeyup(self, v)proc get_onkeyup*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeyup(self, p)proc put_onkeypress*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeypress(self, v)proc get_onkeypress*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeypress(self, p)proc put_onmouseout*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseout(self, v)proc get_onmouseout*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseout(self, p)proc put_onmouseover*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseover(self, v)proc get_onmouseover*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseover(self, p)proc put_onmousemove*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousemove(self, v)proc get_onmousemove*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousemove(self, p)proc put_onmousedown*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousedown(self, v)proc get_onmousedown*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousedown(self, p)proc put_onmouseup*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseup(self, v)proc get_onmouseup*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseup(self, p)proc get_document*(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p)proc put_title*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_title(self, v)proc get_title*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p)proc put_language*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_language(self, v)proc get_language*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_language(self, p)proc put_onselectstart*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselectstart(self, v)proc get_onselectstart*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselectstart(self, p)proc scrollIntoView*(self: ptr IHTMLElement, varargStart: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollIntoView(self, varargStart)proc contains*(self: ptr IHTMLElement, pChild: ptr IHTMLElement, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.contains(self, pChild, pfResult)proc get_sourceIndex*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sourceIndex(self, p)proc get_recordNumber*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_recordNumber(self, p)proc put_lang*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lang(self, v)proc get_lang*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lang(self, p)proc get_offsetLeft*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetLeft(self, p)proc get_offsetTop*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetTop(self, p)proc get_offsetWidth*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetWidth(self, p)proc get_offsetHeight*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetHeight(self, p)proc get_offsetParent*(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetParent(self, p)proc put_innerHTML*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_innerHTML(self, v)proc get_innerHTML*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerHTML(self, p)proc put_innerText*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_innerText(self, v)proc get_innerText*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerText(self, p)proc put_outerHTML*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outerHTML(self, v)proc get_outerHTML*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outerHTML(self, p)proc put_outerText*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outerText(self, v)proc get_outerText*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outerText(self, p)proc insertAdjacentHTML*(self: ptr IHTMLElement, where: BSTR, html: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertAdjacentHTML(self, where, html)proc insertAdjacentText*(self: ptr IHTMLElement, where: BSTR, text: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertAdjacentText(self, where, text)proc get_parentTextEdit*(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentTextEdit(self, p)proc get_isTextEdit*(self: ptr IHTMLElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isTextEdit(self, p)proc click*(self: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.click(self)proc get_filters*(self: ptr IHTMLElement, p: ptr ptr IHTMLFiltersCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filters(self, p)proc put_ondragstart*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragstart(self, v)proc get_ondragstart*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragstart(self, p)proc toString*(self: ptr IHTMLElement, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String)proc put_onbeforeupdate*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeupdate(self, v)proc get_onbeforeupdate*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeupdate(self, p)proc put_onafterupdate*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterupdate(self, v)proc get_onafterupdate*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterupdate(self, p)proc put_onerrorupdate*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerrorupdate(self, v)proc get_onerrorupdate*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerrorupdate(self, p)proc put_onrowexit*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowexit(self, v)proc get_onrowexit*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowexit(self, p)proc put_onrowenter*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowenter(self, v)proc get_onrowenter*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowenter(self, p)proc put_ondatasetchanged*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondatasetchanged(self, v)proc get_ondatasetchanged*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondatasetchanged(self, p)proc put_ondataavailable*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondataavailable(self, v)proc get_ondataavailable*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondataavailable(self, p)proc put_ondatasetcomplete*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondatasetcomplete(self, v)proc get_ondatasetcomplete*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondatasetcomplete(self, p)proc put_onfilterchange*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfilterchange(self, v)proc get_onfilterchange*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfilterchange(self, p)proc get_children*(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_children(self, p)proc get_all*(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_all(self, p)proc put_selectorText*(self: ptr IHTMLStyleSheetRule, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectorText(self, v)proc get_selectorText*(self: ptr IHTMLStyleSheetRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectorText(self, p)proc get_style*(self: ptr IHTMLStyleSheetRule, p: ptr ptr IHTMLRuleStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p)proc get_readOnly*(self: ptr IHTMLStyleSheetRule, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p)proc get_length*(self: ptr IHTMLStyleSheetRulesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc item*(self: ptr IHTMLStyleSheetRulesCollection, index: LONG, ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppHTMLStyleSheetRule)proc put_title*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_title(self, v)proc get_title*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p)proc get_parentStyleSheet*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentStyleSheet(self, p)proc get_owningElement*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_owningElement(self, p)proc put_disabled*(self: ptr IHTMLStyleSheet, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v)proc get_disabled*(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p)proc get_readOnly*(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p)proc get_imports*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imports(self, p)proc put_href*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v)proc get_href*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p)proc get_type*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p)proc get_id*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_id(self, p)proc addImport*(self: ptr IHTMLStyleSheet, bstrURL: BSTR, lIndex: LONG, plIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addImport(self, bstrURL, lIndex, plIndex)proc addRule*(self: ptr IHTMLStyleSheet, bstrSelector: BSTR, bstrStyle: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addRule(self, bstrSelector, bstrStyle, lIndex, plNewIndex)proc removeImport*(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeImport(self, lIndex)proc removeRule*(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeRule(self, lIndex)proc put_media*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v)proc get_media*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p)proc put_cssText*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v)proc get_cssText*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p)proc get_rules*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rules(self, p)proc get_length*(self: ptr IHTMLStyleSheetsCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc get_newEnum*(self: ptr IHTMLStyleSheetsCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p)proc item*(self: ptr IHTMLStyleSheetsCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult)proc get_htmlText*(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_htmlText(self, p)proc put_text*(self: ptr IHTMLTxtRange, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v)proc get_text*(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p)proc parentElement*(self: ptr IHTMLTxtRange, parent: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.parentElement(self, parent)proc duplicate*(self: ptr IHTMLTxtRange, Duplicate: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.duplicate(self, Duplicate)proc inRange*(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, InRange: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.inRange(self, Range, InRange)proc isEqual*(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, IsEqual: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isEqual(self, Range, IsEqual)proc scrollIntoView*(self: ptr IHTMLTxtRange, fStart: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollIntoView(self, fStart)proc collapse*(self: ptr IHTMLTxtRange, Start: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.collapse(self, Start)proc expand*(self: ptr IHTMLTxtRange, Unit: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.expand(self, Unit, Success)proc move*(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.move(self, Unit, Count, ActualCount)proc moveStart*(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveStart(self, Unit, Count, ActualCount)proc moveEnd*(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveEnd(self, Unit, Count, ActualCount)proc select*(self: ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self)proc pasteHTML*(self: ptr IHTMLTxtRange, html: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.pasteHTML(self, html)proc moveToElementText*(self: ptr IHTMLTxtRange, element: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveToElementText(self, element)proc setEndPoint*(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setEndPoint(self, how, SourceRange)proc compareEndPoints*(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange, ret: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.compareEndPoints(self, how, SourceRange, ret)proc findText*(self: ptr IHTMLTxtRange, String: BSTR, count: LONG, Flags: LONG, Success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.findText(self, String, count, Flags, Success)proc moveToPoint*(self: ptr IHTMLTxtRange, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveToPoint(self, x, y)proc getBookmark*(self: ptr IHTMLTxtRange, Boolmark: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getBookmark(self, Boolmark)proc moveToBookmark*(self: ptr IHTMLTxtRange, Bookmark: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveToBookmark(self, Bookmark, Success)proc queryCommandSupported*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandSupported(self, cmdID, pfRet)proc queryCommandEnabled*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet)proc queryCommandState*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandState(self, cmdID, pfRet)proc queryCommandIndeterm*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet)proc queryCommandText*(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandText(self, cmdID, pcmdText)proc queryCommandValue*(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue)proc execCommand*(self: ptr IHTMLTxtRange, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet)proc execCommandShowHelp*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet)proc put_action*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_action(self, v)proc get_action*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_action(self, p)proc put_dir*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dir(self, v)proc get_dir*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dir(self, p)proc put_encoding*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_encoding(self, v)proc get_encoding*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_encoding(self, p)proc put_method*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_method(self, v)proc get_method*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_method(self, p)proc get_elements*(self: ptr IHTMLFormElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_elements(self, p)proc put_target*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_target(self, v)proc get_target*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p)proc put_name*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v)proc get_name*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p)proc put_onsubmit*(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsubmit(self, v)proc get_onsubmit*(self: ptr IHTMLFormElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsubmit(self, p)proc put_onreset*(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreset(self, v)proc get_onreset*(self: ptr IHTMLFormElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreset(self, p)proc submit*(self: ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.submit(self)proc reset*(self: ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.reset(self)proc put_length*(self: ptr IHTMLFormElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v)proc get_length*(self: ptr IHTMLFormElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc get_newEnum*(self: ptr IHTMLFormElement, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p)proc item*(self: ptr IHTMLFormElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, index, pdisp)proc tags*(self: ptr IHTMLFormElement, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.tags(self, tagName, pdisp)proc put_isMap*(self: ptr IHTMLImgElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_isMap(self, v)proc get_isMap*(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isMap(self, p)proc put_useMap*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_useMap(self, v)proc get_useMap*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_useMap(self, p)proc get_mimeType*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p)proc get_fileSize*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileSize(self, p)proc get_fileCreatedDate*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileCreatedDate(self, p)proc get_fileModifiedDate*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileModifiedDate(self, p)proc get_fileUpdatedDate*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileUpdatedDate(self, p)proc get_protocol*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p)proc get_href*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p)proc get_nameProp*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nameProp(self, p)proc put_border*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v)proc get_border*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p)proc put_vspace*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v)proc get_vspace*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p)proc put_hspace*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v)proc get_hspace*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p)proc put_alt*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v)proc get_alt*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p)proc put_src*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v)proc get_src*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p)proc put_lowsrc*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lowsrc(self, v)proc get_lowsrc*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lowsrc(self, p)proc put_vrml*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vrml(self, v)proc get_vrml*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vrml(self, p)proc put_dynsrc*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dynsrc(self, v)proc get_dynsrc*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dynsrc(self, p)proc get_readyState*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p)proc get_complete*(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_complete(self, p)proc put_loop*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v)proc get_loop*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p)proc put_align*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v)proc get_align*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p)proc put_onload*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v)proc get_onload*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p)proc put_onerror*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v)proc get_onerror*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p)proc put_onabort*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v)proc get_onabort*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p)proc put_name*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v)proc get_name*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p)proc put_width*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v)proc get_width*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p)proc put_height*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v)proc get_height*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p)proc put_start*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_start(self, v)proc get_start*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_start(self, p)proc create*(self: ptr IHTMLImageElementFactory, width: VARIANT, height: VARIANT, a: ptr ptr IHTMLImgElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, width, height, a)proc toString*(self: ptr IHTMLElementCollection, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String)proc put_length*(self: ptr IHTMLElementCollection, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v)proc get_length*(self: ptr IHTMLElementCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc get_newEnum*(self: ptr IHTMLElementCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p)proc item*(self: ptr IHTMLElementCollection, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, index, pdisp)proc tags*(self: ptr IHTMLElementCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.tags(self, tagName, pdisp)proc createRange*(self: ptr IHTMLSelectionObject, range: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createRange(self, range)proc empty*(self: ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.empty(self)proc clear*(self: ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self)proc get_type*(self: ptr IHTMLSelectionObject, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p)proc put_selected*(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selected(self, v)proc get_selected*(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selected(self, p)proc put_value*(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v)proc get_value*(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p)proc put_defaultSelected*(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultSelected(self, v)proc get_defaultSelected*(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultSelected(self, p)proc put_index*(self: ptr IHTMLOptionElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_index(self, v)proc get_index*(self: ptr IHTMLOptionElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_index(self, p)proc put_text*(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v)proc get_text*(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p)proc get_form*(self: ptr IHTMLOptionElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p)proc create*(self: ptr IHTMLOptionElementFactory, text: VARIANT, value: VARIANT, defaultselected: VARIANT, selected: VARIANT, a: ptr ptr IHTMLOptionElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, text, value, defaultselected, selected, a)proc get_length*(self: ptr IOmHistory, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc back*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.back(self, pvargdistance)proc forward*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.forward(self, pvargdistance)proc go*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.go(self, pvargdistance)proc get_length*(self: ptr IHTMLMimeTypesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc get_length*(self: ptr IHTMLPluginsCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc refresh*(self: ptr IHTMLPluginsCollection, reload: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.refresh(self, reload)proc addRequest*(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addRequest(self, name, reserved, success)proc clearRequest*(self: ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearRequest(self)proc doRequest*(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doRequest(self, usage, fname, domain, path, expire, reserved)proc getAttribute*(self: ptr IHTMLOpsProfile, name: BSTR, value: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, name, value)proc setAttribute*(self: ptr IHTMLOpsProfile, name: BSTR, value: BSTR, prefs: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, name, value, prefs, success)proc commitChanges*(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.commitChanges(self, success)proc addReadRequest*(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addReadRequest(self, name, reserved, success)proc doReadRequest*(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doReadRequest(self, usage, fname, domain, path, expire, reserved)proc doWriteRequest*(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doWriteRequest(self, success)proc get_appCodeName*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appCodeName(self, p)proc get_appName*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appName(self, p)proc get_appVersion*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appVersion(self, p)proc get_userAgent*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userAgent(self, p)proc javaEnabled*(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.javaEnabled(self, enabled)proc taintEnabled*(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.taintEnabled(self, enabled)proc get_mimeTypes*(self: ptr IOmNavigator, p: ptr ptr IHTMLMimeTypesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeTypes(self, p)proc get_plugins*(self: ptr IOmNavigator, p: ptr ptr IHTMLPluginsCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_plugins(self, p)proc get_cookieEnabled*(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cookieEnabled(self, p)proc get_opsProfile*(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_opsProfile(self, p)proc toString*(self: ptr IOmNavigator, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string)proc get_cpuClass*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cpuClass(self, p)proc get_systemLanguage*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemLanguage(self, p)proc get_browserLanguage*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_browserLanguage(self, p)proc get_userLanguage*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userLanguage(self, p)proc get_platform*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_platform(self, p)proc get_appMinorVersion*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appMinorVersion(self, p)proc get_connectionSpeed*(self: ptr IOmNavigator, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_connectionSpeed(self, p)proc get_onLine*(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onLine(self, p)proc get_userProfile*(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userProfile(self, p)proc put_href*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v)proc get_href*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p)proc put_protocol*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_protocol(self, v)proc get_protocol*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p)proc put_host*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_host(self, v)proc get_host*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_host(self, p)proc put_hostname*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hostname(self, v)proc get_hostname*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hostname(self, p)proc put_port*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_port(self, v)proc get_port*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_port(self, p)proc put_pathname*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pathname(self, v)proc get_pathname*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathname(self, p)proc put_search*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_search(self, v)proc get_search*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_search(self, p)proc put_hash*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hash(self, v)proc get_hash*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hash(self, p)proc reload*(self: ptr IHTMLLocation, flag: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.reload(self, flag)proc replace*(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replace(self, bstr)proc assign*(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.assign(self, bstr)proc toString*(self: ptr IHTMLLocation, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string)proc get_srcElement*(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcElement(self, p)proc get_altKey*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altKey(self, p)proc get_ctrlKey*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ctrlKey(self, p)proc get_shiftKey*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shiftKey(self, p)proc put_returnValue*(self: ptr IHTMLEventObj, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_returnValue(self, v)proc get_returnValue*(self: ptr IHTMLEventObj, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_returnValue(self, p)proc put_cancelBubble*(self: ptr IHTMLEventObj, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cancelBubble(self, v)proc get_cancelBubble*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cancelBubble(self, p)proc get_fromElement*(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fromElement(self, p)proc get_toElement*(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_toElement(self, p)proc put_keyCode*(self: ptr IHTMLEventObj, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_keyCode(self, v)proc get_keyCode*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_keyCode(self, p)proc get_button*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_button(self, p)proc get_type*(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p)proc get_qualifier*(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_qualifier(self, p)proc get_reason*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_reason(self, p)proc get_x*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p)proc get_y*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p)proc get_clientX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientX(self, p)proc get_clientY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientY(self, p)proc get_offsetX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetX(self, p)proc get_offsetY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetY(self, p)proc get_screenX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenX(self, p)proc get_screenY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenY(self, p)proc get_srcFilter*(self: ptr IHTMLEventObj, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcFilter(self, p)proc item*(self: ptr IHTMLFramesCollection2, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult)proc get_length*(self: ptr IHTMLFramesCollection2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p)proc get_colorDepth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_colorDepth(self, p)proc put_bufferDepth*(self: ptr IHTMLScreen, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bufferDepth(self, v)proc get_bufferDepth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bufferDepth(self, p)proc get_width*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p)proc get_height*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p)proc put_updateInterval*(self: ptr IHTMLScreen, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_updateInterval(self, v)proc get_updateInterval*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_updateInterval(self, p)proc get_availHeight*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_availHeight(self, p)proc get_availWidth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_availWidth(self, p)proc get_fontSmoothingEnabled*(self: ptr IHTMLScreen, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSmoothingEnabled(self, p)proc get_frames*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frames(self, p)proc put_defaultStatus*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultStatus(self, v)proc get_defaultStatus*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultStatus(self, p)proc put_status*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v)proc get_status*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p)proc setTimeout*(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setTimeout(self, expression, msec, language, timerID)proc clearTimeout*(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearTimeout(self, timerID)proc alert*(self: ptr IHTMLWindow2, message: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.alert(self, message)proc confirm*(self: ptr IHTMLWindow2, message: BSTR, confirmed: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.confirm(self, message, confirmed)proc prompt*(self: ptr IHTMLWindow2, message: BSTR, defstr: BSTR, textdata: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.prompt(self, message, defstr, textdata)proc get_Image*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLImageElementFactory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Image(self, p)proc get_location*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLLocation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_location(self, p)proc get_history*(self: ptr IHTMLWindow2, p: ptr ptr IOmHistory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_history(self, p)proc close*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.close(self)proc put_opener*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_opener(self, v)proc get_opener*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_opener(self, p)proc get_navigator*(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_navigator(self, p)proc put_name*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v)proc get_name*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p)proc get_parent*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parent(self, p)proc open*(self: ptr IHTMLWindow2, url: BSTR, name: BSTR, features: BSTR, replace: VARIANT_BOOL, pomWindowResult: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, url, name, features, replace, pomWindowResult)proc get_self*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_self(self, p)proc get_top*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p)proc get_window*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_window(self, p)proc navigate*(self: ptr IHTMLWindow2, url: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.navigate(self, url)proc put_onfocus*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v)proc get_onfocus*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p)proc put_onblur*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v)proc get_onblur*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p)proc put_onload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v)proc get_onload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p)proc put_onbeforeunload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeunload(self, v)proc get_onbeforeunload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeunload(self, p)proc put_onunload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onunload(self, v)proc get_onunload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onunload(self, p)proc put_onhelp*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhelp(self, v)proc get_onhelp*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhelp(self, p)proc put_onerror*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v)proc get_onerror*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p)proc put_onresize*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onresize(self, v)proc get_onresize*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onresize(self, p)proc put_onscroll*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onscroll(self, v)proc get_onscroll*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onscroll(self, p)proc get_document*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p)proc get_event*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_event(self, p)proc get_newEnum*(self: ptr IHTMLWindow2, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p)proc showModalDialog*(self: ptr IHTMLWindow2, dialog: BSTR, varArgIn: ptr VARIANT, varOptions: ptr VARIANT, varArgOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showModalDialog(self, dialog, varArgIn, varOptions, varArgOut)proc showHelp*(self: ptr IHTMLWindow2, helpURL: BSTR, helpArg: VARIANT, features: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showHelp(self, helpURL, helpArg, features)proc get_screen*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLScreen): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screen(self, p)proc get_Option*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLOptionElementFactory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Option(self, p)proc focus*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self)proc get_closed*(self: ptr IHTMLWindow2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_closed(self, p)proc blur*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.blur(self)proc scroll*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scroll(self, x, y)proc get_clientInformation*(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientInformation(self, p)proc setInterval*(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setInterval(self, expression, msec, language, timerID)proc clearInterval*(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearInterval(self, timerID)proc put_offscreenBuffering*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_offscreenBuffering(self, v)proc get_offscreenBuffering*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offscreenBuffering(self, p)proc execScript*(self: ptr IHTMLWindow2, code: BSTR, language: BSTR, pvarRet: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execScript(self, code, language, pvarRet)proc toString*(self: ptr IHTMLWindow2, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String)proc scrollBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollBy(self, x, y)proc scrollTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollTo(self, x, y)proc moveTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveTo(self, x, y)proc moveBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveBy(self, x, y)proc resizeTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.resizeTo(self, x, y)proc resizeBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.resizeBy(self, x, y)proc get_external*(self: ptr IHTMLWindow2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_external(self, p)proc get_Script*(self: ptr IHTMLDocument, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Script(self, p)proc get_all*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_all(self, p)proc get_body*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_body(self, p)proc get_activeElement*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_activeElement(self, p)proc get_images*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_images(self, p)proc get_applets*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_applets(self, p)proc get_links*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_links(self, p)proc get_forms*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_forms(self, p)proc get_anchors*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_anchors(self, p)proc put_title*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_title(self, v)proc get_title*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p)proc get_scripts*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scripts(self, p)proc put_designMode*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_designMode(self, v)proc get_designMode*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_designMode(self, p)proc get_selection*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selection(self, p)proc get_readyState*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p)proc get_frames*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frames(self, p)proc get_embeds*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_embeds(self, p)proc get_plugins*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_plugins(self, p)proc put_alinkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alinkColor(self, v)proc get_alinkColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alinkColor(self, p)proc put_bgColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v)proc get_bgColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p)proc put_fgColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fgColor(self, v)proc get_fgColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fgColor(self, p)proc put_linkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_linkColor(self, v)proc get_linkColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_linkColor(self, p)proc put_vlinkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vlinkColor(self, v)proc get_vlinkColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vlinkColor(self, p)proc get_referrer*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_referrer(self, p)proc get_location*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLLocation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_location(self, p)proc get_lastModified*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastModified(self, p)proc put_URL*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_URL(self, v)proc get_URL*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URL(self, p)proc put_domain*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_domain(self, v)proc get_domain*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domain(self, p)proc put_cookie*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cookie(self, v)proc get_cookie*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cookie(self, p)proc put_expando*(self: ptr IHTMLDocument2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_expando(self, v)proc get_expando*(self: ptr IHTMLDocument2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_expando(self, p)proc put_charset*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, v)proc get_charset*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p)proc put_defaultCharset*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultCharset(self, v)proc get_defaultCharset*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultCharset(self, p)proc get_mimeType*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p)proc get_fileSize*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileSize(self, p)proc get_fileCreatedDate*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileCreatedDate(self, p)proc get_fileModifiedDate*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileModifiedDate(self, p)proc get_fileUpdatedDate*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileUpdatedDate(self, p)proc get_security*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_security(self, p)proc get_protocol*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p)proc get_nameProp*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nameProp(self, p)proc write*(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.write(self, psarray)proc writeln*(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.writeln(self, psarray)proc open*(self: ptr IHTMLDocument2, url: BSTR, name: VARIANT, features: VARIANT, replace: VARIANT, pomWindowResult: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, url, name, features, replace, pomWindowResult)proc close*(self: ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.close(self)proc clear*(self: ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self)proc queryCommandSupported*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandSupported(self, cmdID, pfRet)proc queryCommandEnabled*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet)proc queryCommandState*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandState(self, cmdID, pfRet)proc queryCommandIndeterm*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet)proc queryCommandText*(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandText(self, cmdID, pcmdText)proc queryCommandValue*(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue)proc execCommand*(self: ptr IHTMLDocument2, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet)proc execCommandShowHelp*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet)proc createElement*(self: ptr IHTMLDocument2, eTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElement(self, eTag, newElem)proc put_onhelp*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhelp(self, v)proc get_onhelp*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhelp(self, p)proc put_onclick*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onclick(self, v)proc get_onclick*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onclick(self, p)proc put_ondblclick*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondblclick(self, v)proc get_ondblclick*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondblclick(self, p)proc put_onkeyup*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeyup(self, v)proc get_onkeyup*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeyup(self, p)proc put_onkeydown*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeydown(self, v)proc get_onkeydown*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeydown(self, p)proc put_onkeypress*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeypress(self, v)proc get_onkeypress*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeypress(self, p)proc put_onmouseup*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseup(self, v)proc get_onmouseup*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseup(self, p)proc put_onmousedown*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousedown(self, v)proc get_onmousedown*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousedown(self, p)proc put_onmousemove*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousemove(self, v)proc get_onmousemove*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousemove(self, p)proc put_onmouseout*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseout(self, v)proc get_onmouseout*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseout(self, p)proc put_onmouseover*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseover(self, v)proc get_onmouseover*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseover(self, p)proc put_onreadystatechange*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v)proc get_onreadystatechange*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p)proc put_onafterupdate*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterupdate(self, v)proc get_onafterupdate*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterupdate(self, p)proc put_onrowexit*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowexit(self, v)proc get_onrowexit*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowexit(self, p)proc put_onrowenter*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowenter(self, v)proc get_onrowenter*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowenter(self, p)proc put_ondragstart*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragstart(self, v)proc get_ondragstart*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragstart(self, p)proc put_onselectstart*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselectstart(self, v)proc get_onselectstart*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselectstart(self, p)proc elementFromPoint*(self: ptr IHTMLDocument2, x: LONG, y: LONG, elementHit: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.elementFromPoint(self, x, y, elementHit)proc get_parentWindow*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentWindow(self, p)proc get_styleSheets*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleSheets(self, p)proc put_onbeforeupdate*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeupdate(self, v)proc get_onbeforeupdate*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeupdate(self, p)proc put_onerrorupdate*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerrorupdate(self, v)proc get_onerrorupdate*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerrorupdate(self, p)proc toString*(self: ptr IHTMLDocument2, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String)proc createStyleSheet*(self: ptr IHTMLDocument2, bstrHref: BSTR, lIndex: LONG, ppnewStyleSheet: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createStyleSheet(self, bstrHref, lIndex, ppnewStyleSheet)proc ShowContextMenu*(self: ptr IDocHostUIHandler, dwID: DWORD, ppt: ptr POINT, pcmdtReserved: ptr IUnknown, pdispReserved: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContextMenu(self, dwID, ppt, pcmdtReserved, pdispReserved)proc GetHostInfo*(self: ptr IDocHostUIHandler, pInfo: ptr DOCHOSTUIINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHostInfo(self, pInfo)proc ShowUI*(self: ptr IDocHostUIHandler, dwID: DWORD, pActiveObject: ptr IOleInPlaceActiveObject, pCommandTarget: ptr IOleCommandTarget, pFrame: ptr IOleInPlaceFrame, pDoc: ptr IOleInPlaceUIWindow): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowUI(self, dwID, pActiveObject, pCommandTarget, pFrame, pDoc)proc HideUI*(self: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HideUI(self)proc UpdateUI*(self: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateUI(self)proc EnableModeless*(self: ptr IDocHostUIHandler, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable)proc OnDocWindowActivate*(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDocWindowActivate(self, fActivate)proc OnFrameWindowActivate*(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFrameWindowActivate(self, fActivate)proc ResizeBorder*(self: ptr IDocHostUIHandler, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fRameWindow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResizeBorder(self, prcBorder, pUIWindow, fRameWindow)proc TranslateAccelerator*(self: ptr IDocHostUIHandler, lpMsg: LPMSG, pguidCmdGroup: ptr GUID, nCmdID: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, lpMsg, pguidCmdGroup, nCmdID)proc GetOptionKeyPath*(self: ptr IDocHostUIHandler, pchKey: ptr LPOLESTR, dw: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptionKeyPath(self, pchKey, dw)proc GetDropTarget*(self: ptr IDocHostUIHandler, pDropTarget: ptr IDropTarget, ppDropTarget: ptr ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDropTarget(self, pDropTarget, ppDropTarget)proc GetExternal*(self: ptr IDocHostUIHandler, ppDispatch: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExternal(self, ppDispatch)proc TranslateUrl*(self: ptr IDocHostUIHandler, dwTranslate: DWORD, pchURLIn: LPWSTR, ppchURLOut: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateUrl(self, dwTranslate, pchURLIn, ppchURLOut)proc FilterDataObject*(self: ptr IDocHostUIHandler, pDO: ptr IDataObject, ppDORet: ptr ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FilterDataObject(self, pDO, ppDORet)converter winimConverterIHTMLFiltersCollectionToIDispatch*(x: ptr IHTMLFiltersCollection): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLFiltersCollectionToIUnknown*(x: ptr IHTMLFiltersCollection): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLStyleToIDispatch*(x: ptr IHTMLStyle): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLStyleToIUnknown*(x: ptr IHTMLStyle): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLRuleStyleToIDispatch*(x: ptr IHTMLRuleStyle): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLRuleStyleToIUnknown*(x: ptr IHTMLRuleStyle): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLElementToIDispatch*(x: ptr IHTMLElement): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLElementToIUnknown*(x: ptr IHTMLElement): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLStyleSheetRuleToIDispatch*(x: ptr IHTMLStyleSheetRule): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLStyleSheetRuleToIUnknown*(x: ptr IHTMLStyleSheetRule): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLStyleSheetRulesCollectionToIDispatch*(x: ptr IHTMLStyleSheetRulesCollection): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLStyleSheetRulesCollectionToIUnknown*(x: ptr IHTMLStyleSheetRulesCollection): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLStyleSheetToIDispatch*(x: ptr IHTMLStyleSheet): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLStyleSheetToIUnknown*(x: ptr IHTMLStyleSheet): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLStyleSheetsCollectionToIDispatch*(x: ptr IHTMLStyleSheetsCollection): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLStyleSheetsCollectionToIUnknown*(x: ptr IHTMLStyleSheetsCollection): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLTxtRangeToIDispatch*(x: ptr IHTMLTxtRange): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLTxtRangeToIUnknown*(x: ptr IHTMLTxtRange): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLFormElementToIDispatch*(x: ptr IHTMLFormElement): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLFormElementToIUnknown*(x: ptr IHTMLFormElement): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLImgElementToIDispatch*(x: ptr IHTMLImgElement): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLImgElementToIUnknown*(x: ptr IHTMLImgElement): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLImageElementFactoryToIDispatch*(x: ptr IHTMLImageElementFactory): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLImageElementFactoryToIUnknown*(x: ptr IHTMLImageElementFactory): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLElementCollectionToIDispatch*(x: ptr IHTMLElementCollection): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLElementCollectionToIUnknown*(x: ptr IHTMLElementCollection): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLSelectionObjectToIDispatch*(x: ptr IHTMLSelectionObject): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLSelectionObjectToIUnknown*(x: ptr IHTMLSelectionObject): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLOptionElementToIDispatch*(x: ptr IHTMLOptionElement): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLOptionElementToIUnknown*(x: ptr IHTMLOptionElement): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLOptionElementFactoryToIDispatch*(x: ptr IHTMLOptionElementFactory): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLOptionElementFactoryToIUnknown*(x: ptr IHTMLOptionElementFactory): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOmHistoryToIDispatch*(x: ptr IOmHistory): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIOmHistoryToIUnknown*(x: ptr IOmHistory): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLMimeTypesCollectionToIDispatch*(x: ptr IHTMLMimeTypesCollection): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLMimeTypesCollectionToIUnknown*(x: ptr IHTMLMimeTypesCollection): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLPluginsCollectionToIDispatch*(x: ptr IHTMLPluginsCollection): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLPluginsCollectionToIUnknown*(x: ptr IHTMLPluginsCollection): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLOpsProfileToIDispatch*(x: ptr IHTMLOpsProfile): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLOpsProfileToIUnknown*(x: ptr IHTMLOpsProfile): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIOmNavigatorToIDispatch*(x: ptr IOmNavigator): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIOmNavigatorToIUnknown*(x: ptr IOmNavigator): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLLocationToIDispatch*(x: ptr IHTMLLocation): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLLocationToIUnknown*(x: ptr IHTMLLocation): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLEventObjToIDispatch*(x: ptr IHTMLEventObj): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLEventObjToIUnknown*(x: ptr IHTMLEventObj): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLFramesCollection2ToIDispatch*(x: ptr IHTMLFramesCollection2): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLFramesCollection2ToIUnknown*(x: ptr IHTMLFramesCollection2): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLScreenToIDispatch*(x: ptr IHTMLScreen): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLScreenToIUnknown*(x: ptr IHTMLScreen): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLWindow2ToIHTMLFramesCollection2*(x: ptr IHTMLWindow2): ptr IHTMLFramesCollection2 = cast[ptr IHTMLFramesCollection2](x)converter winimConverterIHTMLWindow2ToIDispatch*(x: ptr IHTMLWindow2): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLWindow2ToIUnknown*(x: ptr IHTMLWindow2): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLDocumentToIDispatch*(x: ptr IHTMLDocument): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLDocumentToIUnknown*(x: ptr IHTMLDocument): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIHTMLDocument2ToIHTMLDocument*(x: ptr IHTMLDocument2): ptr IHTMLDocument = cast[ptr IHTMLDocument](x)converter winimConverterIHTMLDocument2ToIDispatch*(x: ptr IHTMLDocument2): ptr IDispatch = cast[ptr IDispatch](x)converter winimConverterIHTMLDocument2ToIUnknown*(x: ptr IHTMLDocument2): ptr IUnknown = cast[ptr IUnknown](x)converter winimConverterIDocHostUIHandlerToIUnknown*(x: ptr IDocHostUIHandler): ptr IUnknown = cast[ptr IUnknown](x)constunknown* = 0requestSize* = 0typePRINTER_INFO_1A* {.pure.} = objectFlags*: DWORDpDescription*: LPSTRpName*: LPSTRpComment*: LPSTRPRINTER_INFO_1W* {.pure.} = objectFlags*: DWORDpDescription*: LPWSTRpName*: LPWSTRpComment*: LPWSTRPRINTER_DEFAULTSA* {.pure.} = objectpDatatype*: LPSTRpDevMode*: LPDEVMODEADesiredAccess*: ACCESS_MASKLPPRINTER_DEFAULTSA* = ptr PRINTER_DEFAULTSAPRINTER_DEFAULTSW* {.pure.} = objectpDatatype*: LPWSTRpDevMode*: LPDEVMODEWDesiredAccess*: ACCESS_MASKLPPRINTER_DEFAULTSW* = ptr PRINTER_DEFAULTSWconstPRINTER_ENUM_LOCAL* = 0x00000002PRINTER_ENUM_CONNECTIONS* = 0x00000004proc ClosePrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.}when winimUnicode:typePRINTER_INFO_1* = PRINTER_INFO_1Wproc EnumPrinters*(Flags: DWORD, Name: LPWSTR, Level: DWORD, pPrinterEnum: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintersW".}proc OpenPrinter*(pPrinterName: LPWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSW): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinterW".}proc DocumentProperties*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPWSTR, pDevModeOutput: PDEVMODEW, pDevModeInput: PDEVMODEW, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "DocumentPropertiesW".}proc GetDefaultPrinter*(pszBuffer: LPWSTR, pcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetDefaultPrinterW".}proc SetDefaultPrinter*(pszPrinter: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetDefaultPrinterW".}when winimAnsi:typePRINTER_INFO_1* = PRINTER_INFO_1Aproc EnumPrinters*(Flags: DWORD, Name: LPSTR, Level: DWORD, pPrinterEnum: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintersA".}proc OpenPrinter*(pPrinterName: LPSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSA): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinterA".}proc DocumentProperties*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPSTR, pDevModeOutput: PDEVMODEA, pDevModeInput: PDEVMODEA, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "DocumentPropertiesA".}proc GetDefaultPrinter*(pszBuffer: LPSTR, pcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetDefaultPrinterA".}proc SetDefaultPrinter*(pszPrinter: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetDefaultPrinterA".}constBP_CHECKBOX* = 3CBS_UNCHECKEDNORMAL* = 1CBS_UNCHECKEDHOT* = 2CBS_UNCHECKEDDISABLED* = 4CBS_CHECKEDNORMAL* = 5CBS_CHECKEDHOT* = 6CBS_CHECKEDDISABLED* = 8CP_DROPDOWNBUTTON* = 1CP_BORDER* = 4CP_READONLY* = 5CP_DROPDOWNBUTTONRIGHT* = 6CBRO_NORMAL* = 1CBRO_HOT* = 2CBRO_PRESSED* = 3CBRO_DISABLED* = 4TABP_BODY* = 10typeTHEMESIZE* = int32constTS_DRAW* = 2proc OpenThemeData*(hwnd: HWND, pszClassList: LPCWSTR): HTHEME {.winapi, stdcall, dynlib: "uxtheme", importc.}proc CloseThemeData*(hTheme: HTHEME): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.}proc DrawThemeBackground*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pRect: ptr RECT, pClipRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.}proc DrawThemeText*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pszText: LPCWSTR, iCharCount: int32, dwTextFlags: DWORD, dwTextFlags2: DWORD, pRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.}proc GetThemePartSize*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, prc: ptr RECT, eSize: THEMESIZE, psz: ptr SIZE): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.}proc SetWindowTheme*(hwnd: HWND, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.}proc GetThemeSysColor*(hTheme: HTHEME, iColorId: int32): COLORREF {.winapi, stdcall, dynlib: "uxtheme", importc.}proc DrawThemeParentBackground*(hwnd: HWND, hdc: HDC, prc: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.}typeInterpolationMode* = int32GpMatrixOrder* = int32GpStatus* = int32DebugEventProc* = pointerRotateFlipType* = int32ARGB* = DWORDREAL* = float32PixelFormat* = INTconstencoderParameterValueTypeLong* = 4interpolationModeDefault* = 0interpolationModeLowQuality* = 1interpolationModeHighQuality* = 2interpolationModeNearestNeighbor* = 5interpolationModeHighQualityBilinear* = 6interpolationModeHighQualityBicubic* = 7matrixOrderPrepend* = 0Ok* = 0imageLockModeRead* = 1rotateNoneFlipNone* = 0rotate90FlipNone* = 1rotate180FlipNone* = 2rotate270FlipNone* = 3rotateNoneFlipX* = 4rotate90FlipX* = 5rotate180FlipX* = 6rotate270FlipX* = 7rotate180FlipXY* = 0rotate270FlipXY* = 1rotateNoneFlipXY* = 2rotate90FlipXY* = 3rotate180FlipY* = 4rotate270FlipY* = 5rotateNoneFlipY* = 6rotate90FlipY* = 7pixelFormatIndexed* = INT 0x00010000pixelFormatGDI* = INT 0x00020000pixelFormatAlpha* = INT 0x00040000pixelFormatPAlpha* = INT 0x00080000pixelFormatExtended* = INT 0x00100000pixelFormatCanonical* = INT 0x00200000pixelFormat1bppIndexed* = INT(1 or (1 shl 8) or pixelFormatIndexed or pixelFormatGDI)pixelFormat4bppIndexed* = INT(2 or (4 shl 8) or pixelFormatIndexed or pixelFormatGDI)pixelFormat8bppIndexed* = INT(3 or (8 shl 8) or pixelFormatIndexed or pixelFormatGDI)pixelFormat16bppGrayScale* = INT(4 or (16 shl 8) or pixelFormatExtended)pixelFormat16bppRGB555* = INT(5 or (16 shl 8) or pixelFormatGDI)pixelFormat16bppRGB565* = INT(6 or (16 shl 8) or pixelFormatGDI)pixelFormat16bppARGB1555* = INT(7 or (16 shl 8) or pixelFormatAlpha or pixelFormatGDI)pixelFormat24bppRGB* = INT(8 or (24 shl 8) or pixelFormatGDI)pixelFormat32bppRGB* = INT(9 or (32 shl 8) or pixelFormatGDI)pixelFormat32bppARGB* = INT(10 or (32 shl 8) or pixelFormatAlpha or pixelFormatGDI or pixelFormatCanonical)pixelFormat32bppPARGB* = INT(11 or (32 shl 8) or pixelFormatAlpha or pixelFormatPAlpha or pixelFormatGDI)pixelFormat48bppRGB* = INT(12 or (48 shl 8) or pixelFormatExtended)pixelFormat64bppARGB* = INT(13 or (64 shl 8) or pixelFormatAlpha or pixelFormatCanonical or pixelFormatExtended)pixelFormat64bppPARGB* = INT(14 or (64 shl 8) or pixelFormatAlpha or pixelFormatPAlpha or pixelFormatExtended)EncoderQuality* = DEFINE_GUID(0x1D5BE4B5'i32, 0xFA4A, 0x452D, [0x9C'u8,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB])BlurEffectGuid* = DEFINE_GUID(0x633C80A4'i32, 0x1843, 0x482B, [0x9E'u8,0xF2,0xBE,0x28,0x34,0xC5,0xFD,0xD4])BrightnessContrastEffectGuid* = DEFINE_GUID(0xD3A1DBE1'i32, 0x8EC4, 0x4C17, [0x9F'u8,0x4C,0xEA,0x97,0xAD,0x1C,0x34,0x3D])ColorBalanceEffectGuid* = DEFINE_GUID(0x537E597D'i32, 0x251E, 0x48DA, [0x96'u8,0x64,0x29,0xCA,0x49,0x6B,0x70,0xF8])HueSaturationLightnessEffectGuid* = DEFINE_GUID(0x8B2DD6C3'i32, 0xEB07, 0x4D87, [0xA5'u8,0xF0,0x71,0x08,0xE2,0x6A,0x9C,0x5F])LevelsEffectGuid* = DEFINE_GUID(0x99C354EC'i32, 0x2A31, 0x4F3A, [0x8C'u8,0x34,0x17,0xA8,0x03,0xB3,0x3A,0x25])SharpenEffectGuid* = DEFINE_GUID(0x63CBF3EE'i32, 0xC526, 0x402C, [0x8F'u8,0x71,0x62,0xC5,0x40,0xBF,0x51,0x42])TintEffectGuid* = DEFINE_GUID(0x1077AF00'i32, 0x2848, 0x4441, [0x94'u8,0x89,0x44,0xAD,0x4C,0x2D,0x7A,0x2C])typeNotificationHookProc* = proc (token: ptr ULONG_PTR): GpStatus {.stdcall.}NotificationUnhookProc* = proc (token: ULONG_PTR): VOID {.stdcall.}GpRect* {.pure.} = objectX*: INTY*: INTWidth*: INTHeight*: INTBitmapData* {.pure.} = objectWidth*: UINTHeight*: UINTStride*: INTPixelFormat*: INTScan0*: pointerReserved*: UINT_PTREncoderParameter* {.pure.} = objectGuid*: GUIDNumberOfValues*: ULONGType*: ULONGValue*: pointerEncoderParameters* {.pure.} = objectCount*: UINTParameter*: array[1, EncoderParameter]ImageCodecInfo* {.pure.} = objectClsid*: CLSIDFormatID*: GUIDCodecName*: ptr WCHARDllName*: ptr WCHARFormatDescription*: ptr WCHARFilenameExtension*: ptr WCHARMimeType*: ptr WCHARFlags*: DWORDVersion*: DWORDSigCount*: DWORDSigSize*: DWORDSigPattern*: ptr BYTESigMask*: ptr BYTEGdiplusStartupInput* {.pure.} = objectGdiplusVersion*: UINT32DebugEventCallback*: DebugEventProcSuppressBackgroundThread*: BOOLSuppressExternalCodecs*: BOOLGdiplusStartupOutput* {.pure.} = objectNotificationHook*: NotificationHookProcNotificationUnhook*: NotificationUnhookProcColor* {.pure.} = objectValue*: ARGBBlurParams* {.pure.} = objectradius*: REALexpandEdge*: BOOLBrightnessContrastParams* {.pure.} = objectbrightnessLevel*: INTcontrastLevel*: INTColorBalanceParams* {.pure.} = objectcyanRed*: INTmagentaGreen*: INTyellowBlue*: INTHueSaturationLightnessParams* {.pure.} = objecthueLevel*: INTsaturationLevel*: INTlightnessLevel*: INTLevelsParams* {.pure.} = objecthighlight*: INTmidtone*: INTshadow*: INTSharpenParams* {.pure.} = objectradius*: REALamount*: REALTintParams* {.pure.} = objecthue*: INTamount*: INTCGpEffect* {.pure.} = objectGpBitmap* {.pure.} = objectGpGraphics* {.pure.} = objectGpImage* {.pure.} = objectproc GdiplusStartup*(token: ptr ULONG_PTR, input: ptr GdiplusStartupInput, output: ptr GdiplusStartupOutput): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCreateBitmapFromStream*(stream: ptr IStream, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCreateBitmapFromFile*(filename: ptr WCHAR, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCreateBitmapFromScan0*(width: INT, height: INT, stride: INT, format: PixelFormat, scan0: ptr BYTE, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCreateBitmapFromHBITMAP*(hbm: HBITMAP, hpal: HPALETTE, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCreateHBITMAPFromBitmap*(bitmap: ptr GpBitmap, hbmReturn: ptr HBITMAP, background: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipBitmapLockBits*(bitmap: ptr GpBitmap, rect: ptr GpRect, flags: UINT, format: PixelFormat, lockedBitmapData: ptr BitmapData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipBitmapUnlockBits*(bitmap: ptr GpBitmap, lockedBitmapData: ptr BitmapData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipBitmapGetPixel*(bitmap: ptr GpBitmap, x: INT, y: INT, color: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipBitmapSetPixel*(bitmap: ptr GpBitmap, x: INT, y: INT, color: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipBitmapApplyEffect*(bitmap: ptr GpBitmap, effect: ptr CGpEffect, roi: ptr RECT, useAuxData: BOOL, auxData: ptr pointer, auxDataSize: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipBitmapCreateApplyEffect*(inputBitmaps: ptr ptr GpBitmap, numInputs: INT, effect: ptr CGpEffect, roi: ptr RECT, outputRect: ptr RECT, outputBitmap: ptr ptr GpBitmap, useAuxData: BOOL, auxData: ptr pointer, auxDataSize: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCreateEffect*(guid: GUID, effect: ptr ptr CGpEffect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipDeleteEffect*(effect: ptr CGpEffect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipSetEffectParameters*(effect: ptr CGpEffect, params: pointer, size: UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipDeleteGraphics*(graphics: ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipSetInterpolationMode*(graphics: ptr GpGraphics, interpolationMode: InterpolationMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipTranslateWorldTransform*(graphics: ptr GpGraphics, dx: REAL, dy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipRotateWorldTransform*(graphics: ptr GpGraphics, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipDrawImageRectI*(graphics: ptr GpGraphics, image: ptr GpImage, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipCloneImage*(image: ptr GpImage, cloneImage: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipDisposeImage*(image: ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipSaveImageToFile*(image: ptr GpImage, filename: ptr WCHAR, clsidEncoder: ptr CLSID, encoderParams: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipSaveImageToStream*(image: ptr GpImage, stream: ptr IStream, clsidEncoder: ptr CLSID, encoderParams: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageGraphicsContext*(image: ptr GpImage, graphics: ptr ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageWidth*(image: ptr GpImage, width: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageHeight*(image: ptr GpImage, height: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipImageRotateFlip*(image: ptr GpImage, rfType: RotateFlipType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageDecodersSize*(numDecoders: ptr UINT, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageDecoders*(numDecoders: UINT, size: UINT, decoders: ptr ImageCodecInfo): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageEncodersSize*(numEncoders: ptr UINT, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}proc GdipGetImageEncoders*(numEncoders: UINT, size: UINT, encoders: ptr ImageCodecInfo): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.}
import winim/[ lean, winstr]# if a win32 window does a bad# this will call into M$ land# and get the associated err code's reasonproc why*(err: DWORD): auto =vartheDWord: lean.DWORD = FORMAT_MESSAGE_ALLOCATE_BUFFER orFORMAT_MESSAGE_FROM_SYSTEM orFORMAT_MESSAGE_IGNORE_INSERTStheOtherdWord: lean.DWORD = cast [lean.DWORD](MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT))messageBuffer: LPSTRsize = FormatMessageA( theDWord, nil, err, theOtherDWord, cast[LPSTR](addr messageBuffer), 0, nil)result = messageBufferproc ctNewWString(s: static[string]): wstring =# copy from widestrs.nim, use WCHAR instead of Utf16CharconstUNI_REPLACEMENT_CHAR = WCHAR(0xFFFD'u16)UNI_MAX_BMP = 0x0000FFFFUNI_MAX_UTF16 = 0x0010FFFFhalfShift = 10halfBase = 0x0010000halfMask = 0x3FFUNI_SUR_HIGH_START = 0xD800UNI_SUR_LOW_START = 0xDC00UNI_SUR_LOW_END = 0xDFFFUNI_REPL = 0xFFFDtemplate ones(n: untyped): untyped = ((1 shl n)-1)template fastRuneAt(s: cstring, i, L: int, result: untyped, doInc = true) =if ord(s[i]) <= 127:result = ord(s[i])when doInc: inc(i)elif ord(s[i]) shr 5 == 0b110:if i <= L - 2:result = (ord(s[i]) and (ones(5))) shl 6 or (ord(s[i+1]) and ones(6))when doInc: inc(i, 2)else:result = UNI_REPLwhen doInc: inc(i)elif ord(s[i]) shr 4 == 0b1110:if i <= L - 3:result = (ord(s[i]) and ones(4)) shl 12 or(ord(s[i+1]) and ones(6)) shl 6 or(ord(s[i+2]) and ones(6))when doInc: inc(i, 3)else:result = UNI_REPLwhen doInc: inc(i)elif ord(s[i]) shr 3 == 0b11110:if i <= L - 4:result = (ord(s[i]) and ones(3)) shl 18 or(ord(s[i+1]) and ones(6)) shl 12 or(ord(s[i+2]) and ones(6)) shl 6 or(ord(s[i+3]) and ones(6))when doInc: inc(i, 4)else:result = UNI_REPLwhen doInc: inc(i)else:result = 0xFFFDwhen doInc: inc(i)iterator runes(s: cstring, L: int): int =vari = 0ret: intwhile i < L:fastRuneAt(s, i, L, ret, true)yield retiterator WCHARs(source: cstring, L: int): WCHAR =for ch in runes(source, L):if ch <=% UNI_MAX_BMP:if ch >=% UNI_SUR_HIGH_START and ch <=% UNI_SUR_LOW_END:yield UNI_REPLACEMENT_CHARelse:yield WCHAR(ch)elif ch >% UNI_MAX_UTF16:yield UNI_REPLACEMENT_CHARelse:let ch = ch -% halfBaseyield WCHAR((ch shr halfShift) +% UNI_SUR_HIGH_START)yield WCHAR((ch and halfMask) +% UNI_SUR_LOW_START)var ret: stringfor u in WCHARs(s, s.len):ret.add char(u and 0xFF)ret.add char(u shr 8)ret.add "\0\0"result = wstring ret# no const to avoid Error: "VM does not support cast from tyCstring to tyPtr"template L_no_const*(x: string): wstring =## Generate const wstring from `static[string]` at compile-time.var thing = ctNewWString(x)thing
{.experimental: "codeReordering".}import winimimport tables, listsconstwindoww_main_loop_break* = -1window_loop_continue* = 1window_unregister_message* = 32786typeMargins* = objectup*: intdown*: intleft*: intright*: intWin32_Point* = objectx*: inty*: intWin32_Command_ID* = distinct intWin32_Event_Object = ref object of RootObjWin32_Event* = ref object of Win32_Event_Objectwindow*: Win32_WindowmOrigin*: HWNDmMsg*: UINTcommand_id*: Win32_Command_IDw_param*: WPARAMl_param*: LPARAMuserData*: intskip*: boolpropagationLevel*: intl_result*: LRESULTkey_status*: array[256, int8] # use int8 so that we can test if it < 0mouse_Position*: Win32_Pointclient_Position*: Win32_Point# Event handler with event object as parameter.Win32_Event_Proc* = proc (event: Win32_Event)# Event handler without parameter.Win32_Event_Neat_Proc* = proc ()Win32_Message_Loop_Hook_Proc* = proc (msg: var MSG, modal_hwnd: HWND): int## Hook procedure to the message loop. *modalHwnd* is not 0 if it is a modal## window message loop instead of main loop. Returns > 0 to continue(skip) the loop,## and returns < 0 to break(exit) the loop.##Win32_Hook_Proc* = proc ( self: Win32_Window, message: UINT, wParam: WPARAM, lParam: LPARAM): boolWin32_Event_Connection* = objectmessage: UINTid*: Win32_Command_IDhandler*: Win32_Event_Procneat_handler*: Win32_Event_Neat_Procuser_data*: intis_undeletable*: boolWin32_Drop_Target* = objectlpVtbl*: ptr IDropTargetVtblvtbl*: IDropTargetVtblself*: Win32_Windoweffect*: DWORDWin32_Draggable_Info* = ref objectis_enabled*: boolis_in_client*: boolis_dragging*: boolstart_mouse_position*: Win32_Pointstart_position*: Win32_Pointconnection*: array[3,Win32_Event_Connection] # move, up, downDirection* = objectup*: intdown*: intleft*: intright*: intWin32_Sizing_Info* = ref objectborder*: Directiondragging*: boolready*: tuple[up, down, left, right: bool]offset*: Directionconnection*: array[3,Win32_Event_Connection] # move, up, downWin32_Accelerator_Table* = ref object of RootObjhandle*: HACCELaccels*: seq[ACCEL]was_modified*: boolWin32_Status_Bar* = ref object of Win32_Windowfiled_Numbers*: intwidths*: array[256, int32]help_index*: intsize_connection*: Win32_Event_ConnectionWin32_Gdi_Object* = ref object of RootObjhandle*: HANDLEis_deletable*: boolWin32_Brush* = ref object of Win32_Gdi_Objectcolor*: int32style*: DWORDWin32_Pen* = ref object of Win32_Gdi_Objectcolor*: int32style*: DWORDwidth*: intWin32_Bitmap* = ref object of Win32_Gdi_Objectwidth*: intheight*: intdepth*: intWin32_Icon* = ref object of Win32_Gdi_Objectwidth*: intheight*: intWin32_Size* = objectwidth*: intheight*: intWin32_Cursor* = ref object of Win32_Gdi_Objectwidth*: intheight*: inthotspot*: Win32_Pointhas_icon_resource*: boolWin32_Font* = ref object of Win32_Gdi_Objectpoint_size*: floatfamily*: intweight*: intis_italic*: boolunderline*: boolstrikeout*: boolface_name*: stringencoding*: intWin32_Menu_Item_Kind* = enumNormalSeparatorCheckRadioSub_MenuWin32_Menu_Base* = ref object of RootObjh_menu*: HMENUWin32_Menu_Item* = ref object of RootObjid*: Win32_Command_IDmenu_item_kind*: Win32_Menu_Item_Kindtext*: stringhelp_string*: stringbitmap*: Win32_Bitmapsubmenu*: Win32_Menudata*: intWin32_Menu* = ref object of Win32_Menu_Basebitmap*: Win32_Bitmapitem_list*: seq[Win32_Menu_Item]is_deletable*: boolWin32_Toolbar_Tool* = ref object of RootObjbitmap*: Win32_Bitmapshort_help*: stringlong_help*: stringmenu*: Win32_MenuWin32_Toolbar* = ref object of Win32_Windowtools*: seq[Win32_Toolbar_Tool]size_connection*: Win32_Event_Connectioncommand_connection*: Win32_Event_ConnectionWin32_Image_List* = ref object of RootObjhandle*: HIMAGELISTWin32_Rebar* = ref object of Win32_Controlcontrols*: seq[Win32_Control]image_list*: Win32_Image_Listsize_connection*: Win32_Event_Connectiondragging*: boolcan_min_max*: boolcan_drag*: boolWin32_Control* = ref object of Win32_Window_ObjectWin32_Window_Object = object of RootObjhwnd*: HWNDparent_window*: Win32_Windowsub_windows*: seq[Win32_Window]data*: intclass_name*: stringis_registered*: boolsystem_connection_table*: Table[UINT, DoublyLinkedList[Win32_Event_Connection]]connection_table*: Table[UINT, DoublyLinkedList[Win32_Event_Connection]]margins*: Marginsstatus_bar*: Win32_Status_Bartoolbars*: seq[Win32_Toolbar]rebar*: Win32_Rebarfont*: Win32_Fontbackground_color*: int32foreground_color*: int32background_brush*: Win32_Brushcursor*: Win32_Cursoroverrided_cursor*: Win32_Cursoraccelerator_table*: Win32_Accelerator_Tablepopup_menu*: Win32_Menusave_focus_hwnd*: HWNDis_focusable*: boolmouse_In_window*: boolmax_size*: Win32_Sizemin_size*: Win32_Sizedummy_parent*: HWNDtip_hwnd*: HWNDsizing_info*: Win32_Sizing_Infodraggable_info*: Win32_Draggable_Infodrop_target*: ref Win32_Drop_Targethook_proc*: Win32_Hook_ProcWin32_Window* = ref object of Win32_Window_Object
import winim/[ utils], winim/inc/[ windef, winuser], winimximport the_typesproc get_accelerator_handle*(the_table: Win32_Accelerator_Table): HACCEL =# Used internally, generate the accelerator table on the fly.# To avoid recursive module dependencies problem, move this from# wAcceleratorTable.nim to here.if the_table.was_modified:if the_table.handle != 0:winimx.DestroyAcceleratorTable the_table.handleif the_table.accels.len != 0:the_table.handle = CreateAcceleratorTable( addr the_table.accels[0], int32 the_table.accels.len)else:the_table.handle = 0the_table.was_modified = falseresult = the_table.handle
import winim/[ lean]import winim/inc/[ windef], ../../portal/[ portalObj, keyboard], utilsproc WindowProc*( hwnd: HWND, message: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.stdcall.} =varhdc: HDCbOpened: boola_portal: ptr Portal = cast[ptr Portal] ( (GetWindowLongPtr(hwnd, GWLP_USERDATA) ))case messageof WM_NULL:echo "WM_NULL"of WM_CREATE:echo "created window!"echo repr lParamSetWindowLongPtr( hwnd, GWLP_USERDATA, cast[LONG_PTR]( lParam) )SetWindowPos(hwnd, hwnd, 0, 0, 0, 0, SWP_NOSIZE)of WM_DESTROY:PostQuitMessage(0)return 0of WM_MOVE:echo "WM_MOVE"of WM_SIZE:echo "WM_SIZE"of WM_ACTIVATE:echo "WM_ACTIVATE"of WM_SETFOCUS:echo "WM_SET_FOCUS"of WM_ENABLE:echo "WM_ENABLE"of WM_SETREDRAW:echo "WM_SET_REDRAW"of WM_SETTEXT:echo "WM_SET_TEXT"of WM_GETTEXT:echo "WM_GET_TEXT"of WM_GET_TEXTLENGTH:echo "WM_WM_GET_TEXT_LENGTH"of WM_PAINT:varps: PAINTSTRUCThdc = BeginPaint(hwnd, ps)defer: EndPaint(hwnd, ps)var rect: RECTGetClientRect(hwnd, rect)#DrawText(hdc, "Hello, Windows!", -1, rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER)return 0of WM_CLOSE:var new_portal = a_portalassert a_portal != nildiscard DestroyWindow(hwnd)assert a_portal != nilassert a_portal[].relays != nilecho repr new_portal.relays# a_portal.relays.window_closed_relay(a_portal)of WM_CHAR: discardof WM_KEYUP , WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSKEYUP:varvirtual_key_code: WORD = LOWORD(wParam)key_flags: WORD = HIWORD(lParam)scan_code: WORD = LOBYTE(keyFlags)is_extended_key: bool = (keyFlags and KF_EXTENDED) == KF_EXTENDED # true if scancode has 0xE0 prefixwasKeyDown: bool = (keyFlags and KF_REPEAT) == KF_REPEAT # previous key-state flag, 1 on autorepeatrepeatCount: uint16 = LOWORD(lParam) # repeat count, > 0 if several keydown messages was combined into one messageisKeyReleased: bool = (keyFlags and KF_UP) == KF_UP # transition-state flag, 1 on keyupif is_extended_key:scan_code = MAKEWORD(scanCode, 0xE0)# if we want to distinguish these keys:case virtual_key_code# converts to VK_LSHIFT or VK_RSHIFT# converts to VK_LCONTROL or VK_RCONTROL# converts to VK_LMENU or VK_RMENUof VK_SHIFT, VK_CONTROL, VK_MENU:virtual_key_code = LOWORD( MapVirtualKey( UINT(scan_code), UINT(MAPVK_VSC_TO_VK_EX)))else: discardecho virtual_key_code, " <> ", scan_codeof WM_INPUTLANGCHANGE:# determine the thread that'll receive this eventvarwindow = GetForegroundWindow()thread = GetWindowThreadProcessId( window, nil)# get keyboard layout for the threadhkl: HKL = GetKeyboardLayout(thread)the_actual_layout_name: LPWSTR = ""layout_name_bool = GetKeyboardLayoutName(the_actual_layout_name)LoadKeyboardLayout( $the_actual_layout_name, KLF_ACTIVATE)ActivateKeyboardLayout( hkl, KLF_ACTIVATE)echo "now using: ", $the_actual_layout_name#[ of WM_QUERYENDSESSION: echo " WM_QUERYENDSESSION"of WM_QUIT: echo " WM_QUIT"of WM_QUERYOPEN: echo " WM_QUERYOPEN"#of WM_ERASEBKGND: echo " WM_ERASEBKGND"of WM_SYSCOLORCHANGE: echo " WM_SYSCOLORCHANGE"of WM_ENDSESSION: echo " WM_ENDSESSION"of WM_SHOWWINDOW: echo " WM_SHOWWINDOW"#of WM_CTLCOLOR: echo " WM_CTLCOLOR"of WM_WININICHANGE: echo " WM_WININICHANGE"of WM_DEVMODECHANGE: echo " WM_DEVMODECHANGE"of WM_ACTIVATEAPP: echo " WM_ACTIVATEAPP"of WM_FONTCHANGE: echo " WM_FONTCHANGE"of WM_TIMECHANGE: echo " WM_TIMECHANGE"of WM_CANCELMODE: echo " WM_CANCELMODE"#of WM_SETCURSOR: echo " WM_SETCURSOR"of WM_MOUSEACTIVATE: echo " WM_MOUSEACTIVATE"of WM_CHILDACTIVATE: echo " WM_CHILDACTIVATE"of WM_QUEUESYNC: echo " WM_QUEUESYNC"#of WM_GETMINMAXINFO: echo " WM_GETMINMAXINFO"of WM_PAINTICON: echo " WM_PAINTICON"of WM_ICONERASEBKGND: echo " WM_ICONERASEBKGND"of WM_NEXTDLGCTL: echo " WM_NEXTDLGCTL"of WM_SPOOLERSTATUS: echo " WM_SPOOLERSTATUS"of WM_DRAWITEM: echo " WM_DRAWITEM"of WM_MEASUREITEM: echo " WM_MEASUREITEM"of WM_DELETEITEM: echo " WM_DELETEITEM"of WM_VKEYTOITEM: echo " WM_VKEYTOITEM"of WM_CHARTOITEM: echo " WM_CHARTOITEM"of WM_SETFONT: echo " WM_SETFONT"of WM_GETFONT: echo " WM_GETFONT"of WM_SETHOTKEY: echo " WM_SETHOTKEY"of WM_GETHOTKEY: echo " WM_GETHOTKEY"of WM_QUERYDRAGICON: echo " WM_QUERYDRAGICON"of WM_COMPAREITEM: echo " WM_COMPAREITEM"of WM_GETOBJECT: echo " WM_GETOBJECT"of WM_COMPACTING: echo " WM_COMPACTING"of WM_COMMNOTIFY: echo " WM_COMMNOTIFY"of WM_WINDOWPOSCHANGING: echo " WM_WINDOWPOSCHANGING"of WM_WINDOWPOSCHANGED: echo " WM_WINDOWPOSCHANGED"of WM_POWER: echo " WM_POWER"#of WM_COPYGLOBALDATA: echo " WM_COPYGLOBALDATA"of WM_COPYDATA: echo " WM_COPYDATA"of WM_CANCELJOURNAL: echo " WM_CANCELJOURNAL"of WM_NOTIFY: echo " WM_NOTIFY"of WM_INPUTLANGCHANGEREQUEST: echo " WM_INPUTLANGCHANGEREQUEST"of WM_TCARD: echo " WM_TCARD"of WM_HELP: echo " WM_HELP"of WM_USERCHANGED: echo " WM_USERCHANGED"of WM_NOTIFYFORMAT: echo " WM_NOTIFYFORMAT"of WM_CONTEXTMENU: echo " WM_CONTEXTMENU"of WM_STYLECHANGING: echo " WM_STYLECHANGING"of WM_STYLECHANGED: echo " WM_STYLECHANGED"of WM_DISPLAYCHANGE: echo " WM_DISPLAYCHANGE"#of WM_GETICON: echo " WM_GETICON"#of WM_SETICON: echo " WM_SETICON"#of WM_NCCREATE: echo " WM_NCCREATE"#of WM_NCDESTROY: echo " WM_NCDESTROY"of WM_NCCALCSIZE: echo " WM_NCCALCSIZE"#of WM_NCHITTEST: echo " WM_NCHITTEST"of WM_NCPAINT: echo " WM_NCPAINT"of WM_NCACTIVATE: echo " WM_NCACTIVATE"of WM_GETDLGCODE: echo " WM_GETDLGCODE"of WM_SYNCPAINT: echo " WM_SYNCPAINT"of WM_NCMOUSEMOVE: echo " WM_NCMOUSEMOVE"of WM_NCLBUTTONDOWN: echo " WM_NCLBUTTONDOWN"of WM_NCLBUTTONUP: echo " WM_NCLBUTTONUP"of WM_NCLBUTTONDBLCLK: echo " WM_NCLBUTTONDBLCLK"of WM_NCRBUTTONDOWN: echo " WM_NCRBUTTONDOWN"of WM_NCRBUTTONUP: echo " WM_NCRBUTTONUP"of WM_NCRBUTTONDBLCLK: echo " WM_NCRBUTTONDBLCLK"of WM_NCMBUTTONDOWN: echo " WM_NCMBUTTONDOWN"of WM_NCMBUTTONUP: echo " WM_NCMBUTTONUP"of WM_NCMBUTTONDBLCLK: echo " WM_NCMBUTTONDBLCLK"of WM_NCXBUTTONDOWN: echo " WM_NCXBUTTONDOWN"of WM_NCXBUTTONUP: echo " WM_NCXBUTTONUP"of WM_NCXBUTTONDBLCLK: echo " WM_NCXBUTTONDBLCLK"of EM_GETSEL: echo " EM_GETSEL"of EM_SETSEL: echo " EM_SETSEL"of EM_GETRECT: echo " EM_GETRECT"of EM_SETRECT: echo " EM_SETRECT"of EM_SETRECTNP: echo " EM_SETRECTNP"of EM_SCROLL: echo " EM_SCROLL"of EM_LINESCROLL: echo " EM_LINESCROLL"of EM_SCROLLCARET: echo " EM_SCROLLCARET"of EM_GETMODIFY: echo " EM_GETMODIFY"of EM_SETMODIFY: echo " EM_SETMODIFY"of EM_GETLINECOUNT: echo " EM_GETLINECOUNT"of EM_LINEINDEX: echo " EM_LINEINDEX"of EM_SETHANDLE: echo " EM_SETHANDLE"of EM_GETHANDLE: echo " EM_GETHANDLE"of EM_GETTHUMB: echo " EM_GETTHUMB"of EM_LINELENGTH: echo " EM_LINELENGTH"of EM_REPLACESEL: echo " EM_REPLACESEL"#of EM_SETFONT: echo " EM_SETFONT"of EM_GETLINE: echo " EM_GETLINE"of EM_LIMITTEXT: echo " EM_LIMITTEXT"#of EM_SETLIMITTEXT: echo " EM_SETLIMITTEXT"of EM_CANUNDO: echo " EM_CANUNDO"of EM_UNDO: echo " EM_UNDO"of EM_FMTLINES: echo " EM_FMTLINES"of EM_LINEFROMCHAR: echo " EM_LINEFROMCHAR"#of EM_SETWORDBREAK: echo " EM_SETWORDBREAK"of EM_SETTABSTOPS: echo " EM_SETTABSTOPS"of EM_SETPASSWORDCHAR: echo " EM_SETPASSWORDCHAR"of EM_EMPTYUNDOBUFFER: echo " EM_EMPTYUNDOBUFFER"of EM_GETFIRSTVISIBLELINE: echo " EM_GETFIRSTVISIBLELINE"of EM_SETREADONLY: echo " EM_SETREADONLY"of EM_SETWORDBREAKPROC: echo " EM_SETWORDBREAKPROC"of EM_GETWORDBREAKPROC: echo " EM_GETWORDBREAKPROC"of EM_GETPASSWORDCHAR: echo " EM_GETPASSWORDCHAR"of EM_SETMARGINS: echo " EM_SETMARGINS"of EM_GETMARGINS: echo " EM_GETMARGINS"of EM_GETLIMITTEXT: echo " EM_GETLIMITTEXT"of EM_POSFROMCHAR: echo " EM_POSFROMCHAR"of EM_CHARFROMPOS: echo " EM_CHARFROMPOS"of EM_SETIMESTATUS: echo " EM_SETIMESTATUS"of EM_GETIMESTATUS: echo " EM_GETIMESTATUS"of SBM_SETPOS: echo " SBM_SETPOS"of SBM_GETPOS: echo " SBM_GETPOS"of SBM_SETRANGE: echo " SBM_SETRANGE"of SBM_GETRANGE: echo " SBM_GETRANGE"of SBM_ENABLE_ARROWS: echo " SBM_ENABLE_ARROWS"of SBM_SETRANGEREDRAW: echo " SBM_SETRANGEREDRAW"of SBM_SETSCROLLINFO: echo " SBM_SETSCROLLINFO"of SBM_GETSCROLLINFO: echo " SBM_GETSCROLLINFO"of SBM_GETSCROLLBARINFO: echo " SBM_GETSCROLLBARINFO"of BM_GETCHECK: echo " BM_GETCHECK"of BM_SETCHECK: echo " BM_SETCHECK"of BM_GETSTATE: echo " BM_GETSTATE"of BM_SETSTATE: echo " BM_SETSTATE"of BM_SETSTYLE: echo " BM_SETSTYLE"of BM_CLICK: echo " BM_CLICK"of BM_GETIMAGE: echo " BM_GETIMAGE"of BM_SETIMAGE: echo " BM_SETIMAGE"of BM_SETDONTCLICK: echo " BM_SETDONTCLICK"of WM_INPUT: echo " WM_INPUT"#of WM_KEYFIRST: echo " WM_KEYFIRST"of WM_DEADCHAR: echo " WM_DEADCHAR"of WM_SYSCHAR: echo " WM_SYSCHAR"of WM_SYSDEADCHAR: echo " WM_SYSDEADCHAR"of WM_UNICHAR: echo " WM_UNICHAR"#of WM_WNT_CONVERTREQUESTEX: echo " WM_WNT_CONVERTREQUESTEX"#of WM_CONVERTREQUEST: echo " WM_CONVERTREQUEST"#of WM_CONVERTRESULT: echo " WM_CONVERTRESULT"#of WM_INTERIM: echo " WM_INTERIM"of WM_IME_STARTCOMPOSITION: echo " WM_IME_STARTCOMPOSITION"of WM_IME_ENDCOMPOSITION: echo " WM_IME_ENDCOMPOSITION"of WM_IME_COMPOSITION: echo " WM_IME_COMPOSITION"of WM_INITDIALOG: echo " WM_INITDIALOG"of WM_COMMAND: echo " WM_COMMAND"of WM_SYSCOMMAND: echo " WM_SYSCOMMAND"of WM_TIMER: echo " WM_TIMER"of WM_HSCROLL: echo " WM_HSCROLL"of WM_VSCROLL: echo " WM_VSCROLL"of WM_INITMENU: echo " WM_INITMENU"of WM_INITMENUPOPUP: echo " WM_INITMENUPOPUP"#of WM_SYSTIMER: echo " WM_SYSTIMER"of WM_MENUSELECT: echo " WM_MENUSELECT"of WM_MENUCHAR: echo " WM_MENUCHAR"of WM_ENTERIDLE: echo " WM_ENTERIDLE"of WM_MENURBUTTONUP: echo " WM_MENURBUTTONUP"of WM_MENUDRAG: echo " WM_MENUDRAG"of WM_MENUGETOBJECT: echo " WM_MENUGETOBJECT"of WM_UNINITMENUPOPUP: echo " WM_UNINITMENUPOPUP"of WM_MENUCOMMAND: echo " WM_MENUCOMMAND"of WM_CHANGEUISTATE: echo " WM_CHANGEUISTATE"of WM_UPDATEUISTATE: echo " WM_UPDATEUISTATE"of WM_QUERYUISTATE: echo " WM_QUERYUISTATE"#of WM_LBTRACKPOINT: echo " WM_LBTRACKPOINT"of WM_CTLCOLORMSGBOX: echo " WM_CTLCOLORMSGBOX"of WM_CTLCOLOREDIT: echo " WM_CTLCOLOREDIT"of WM_CTLCOLORLISTBOX: echo " WM_CTLCOLORLISTBOX"of WM_CTLCOLORBTN: echo " WM_CTLCOLORBTN"of WM_CTLCOLORDLG: echo " WM_CTLCOLORDLG"of WM_CTLCOLORSCROLLBAR: echo " WM_CTLCOLORSCROLLBAR"of WM_CTLCOLORSTATIC: echo " WM_CTLCOLORSTATIC"of CB_GETEDITSEL: echo " CB_GETEDITSEL"of CB_LIMITTEXT: echo " CB_LIMITTEXT"of CB_SETEDITSEL: echo " CB_SETEDITSEL"of CB_ADDSTRING: echo " CB_ADDSTRING"of CB_DELETESTRING: echo " CB_DELETESTRING"of CB_DIR: echo " CB_DIR"of CB_GETCOUNT: echo " CB_GETCOUNT"of CB_GETCURSEL: echo " CB_GETCURSEL"of CB_GETLBTEXT: echo " CB_GETLBTEXT"of CB_GETLBTEXTLEN: echo " CB_GETLBTEXTLEN"of CB_INSERTSTRING: echo " CB_INSERTSTRING"of CB_RESETCONTENT: echo " CB_RESETCONTENT"of CB_FINDSTRING: echo " CB_FINDSTRING"of CB_SELECTSTRING: echo " CB_SELECTSTRING"of CB_SETCURSEL: echo " CB_SETCURSEL"of CB_SHOWDROPDOWN: echo " CB_SHOWDROPDOWN"of CB_GETITEMDATA: echo " CB_GETITEMDATA"of CB_SETITEMDATA: echo " CB_SETITEMDATA"of CB_GETDROPPEDCONTROLRECT: echo " CB_GETDROPPEDCONTROLRECT"of CB_SETITEMHEIGHT: echo " CB_SETITEMHEIGHT"of CB_GETITEMHEIGHT: echo " CB_GETITEMHEIGHT"of CB_SETEXTENDEDUI: echo " CB_SETEXTENDEDUI"of CB_GETEXTENDEDUI: echo " CB_GETEXTENDEDUI"of CB_GETDROPPEDSTATE: echo " CB_GETDROPPEDSTATE"of CB_FINDSTRINGEXACT: echo " CB_FINDSTRINGEXACT"of CB_SETLOCALE: echo " CB_SETLOCALE"of CB_GETLOCALE: echo " CB_GETLOCALE"of CB_GETTOPINDEX: echo " CB_GETTOPINDEX"of CB_SETTOPINDEX: echo " CB_SETTOPINDEX"of CB_GETHORIZONTALEXTENT: echo " CB_GETHORIZONTALEXTENT"of CB_SETHORIZONTALEXTENT: echo " CB_SETHORIZONTALEXTENT"of CB_GETDROPPEDWIDTH: echo " CB_GETDROPPEDWIDTH"of CB_SETDROPPEDWIDTH: echo " CB_SETDROPPEDWIDTH"of CB_INITSTORAGE: echo " CB_INITSTORAGE"of CB_MULTIPLEADDSTRING: echo " CB_MULTIPLEADDSTRING"of CB_GETCOMBOBOXINFO: echo " CB_GETCOMBOBOXINFO"of CB_MSGMAX: echo " CB_MSGMAX"#of WM_MOUSEFIRST: echo " WM_MOUSEFIRST"of WM_LBUTTONDOWN: echo " WM_LBUTTONDOWN"of WM_LBUTTONUP: echo " WM_LBUTTONUP"of WM_LBUTTONDBLCLK: echo " WM_LBUTTONDBLCLK"of WM_RBUTTONDOWN: echo " WM_RBUTTONDOWN"of WM_RBUTTONUP: echo " WM_RBUTTONUP"of WM_RBUTTONDBLCLK: echo " WM_RBUTTONDBLCLK"of WM_MBUTTONDOWN: echo " WM_MBUTTONDOWN"of WM_MBUTTONUP: echo " WM_MBUTTONUP"of WM_MBUTTONDBLCLK: echo " WM_MBUTTONDBLCLK"of WM_MOUSELAST: echo " WM_MOUSELAST"of WM_MOUSEWHEEL: echo " WM_MOUSEWHEEL"of WM_XBUTTONDOWN: echo " WM_XBUTTONDOWN"of WM_XBUTTONUP: echo " WM_XBUTTONUP"of WM_XBUTTONDBLCLK: echo " WM_XBUTTONDBLCLK"#of WM_MOUSEHWHEEL: echo " WM_MOUSEHWHEEL"of WM_PARENTNOTIFY: echo " WM_PARENTNOTIFY"of WM_ENTERMENULOOP: echo " WM_ENTERMENULOOP"of WM_EXITMENULOOP: echo " WM_EXITMENULOOP"of WM_NEXTMENU: echo " WM_NEXTMENU"of WM_SIZING: echo " WM_SIZING"of WM_CAPTURECHANGED: echo " WM_CAPTURECHANGED"of WM_MOVING: echo " WM_MOVING"of WM_POWERBROADCAST: echo " WM_POWERBROADCAST"of WM_DEVICECHANGE: echo " WM_DEVICECHANGE"of WM_MDICREATE: echo " WM_MDICREATE"of WM_MDIDESTROY: echo " WM_MDIDESTROY"of WM_MDIACTIVATE: echo " WM_MDIACTIVATE"of WM_MDIRESTORE: echo " WM_MDIRESTORE"of WM_MDINEXT: echo " WM_MDINEXT"of WM_MDIMAXIMIZE: echo " WM_MDIMAXIMIZE"of WM_MDITILE: echo " WM_MDITILE"of WM_MDICASCADE: echo " WM_MDICASCADE"of WM_MDIICONARRANGE: echo " WM_MDIICONARRANGE"of WM_MDIGETACTIVE: echo " WM_MDIGETACTIVE"of WM_MDISETMENU: echo " WM_MDISETMENU"of WM_ENTERSIZEMOVE: echo " WM_ENTERSIZEMOVE"of WM_EXITSIZEMOVE: echo " WM_EXITSIZEMOVE"of WM_DROPFILES: echo " WM_DROPFILES"of WM_MDIREFRESHMENU: echo " WM_MDIREFRESHMENU"#of WM_IME_REPORT: echo " WM_IME_REPORT"of WM_IME_SETCONTEXT: echo " WM_IME_SETCONTEXT"of WM_IME_NOTIFY: echo " WM_IME_NOTIFY"of WM_IME_CONTROL: echo " WM_IME_CONTROL"of WM_IME_COMPOSITIONFULL: echo " WM_IME_COMPOSITIONFULL"of WM_IME_SELECT: echo " WM_IME_SELECT"of WM_IME_CHAR: echo " WM_IME_CHAR"of WM_IME_REQUEST: echo " WM_IME_REQUEST"of WM_IMEKEYDOWN: echo " WM_IMEKEYDOWN"#of WM_IME_KEYDOWN: echo " WM_IME_KEYDOWN"of WM_IMEKEYUP: echo " WM_IMEKEYUP"#of WM_IME_KEYUP: echo " WM_IME_KEYUP"of WM_NCMOUSEHOVER: echo " WM_NCMOUSEHOVER"of WM_MOUSEHOVER: echo " WM_MOUSEHOVER"of WM_NCMOUSELEAVE: echo " WM_NCMOUSELEAVE"of WM_MOUSELEAVE: echo " WM_MOUSELEAVE"of WM_CUT: echo " WM_CUT"of WM_COPY: echo " WM_COPY"of WM_PASTE: echo " WM_PASTE"of WM_CLEAR: echo " WM_CLEAR"of WM_UNDO: echo " WM_UNDO"of WM_RENDERFORMAT: echo " WM_RENDERFORMAT"of WM_RENDERALLFORMATS: echo " WM_RENDERALLFORMATS"of WM_DESTROYCLIPBOARD: echo " WM_DESTROYCLIPBOARD"of WM_DRAWCLIPBOARD: echo " WM_DRAWCLIPBOARD"of WM_PAINTCLIPBOARD: echo " WM_PAINTCLIPBOARD"of WM_VSCROLLCLIPBOARD: echo " WM_VSCROLLCLIPBOARD"of WM_SIZECLIPBOARD: echo " WM_SIZECLIPBOARD"of WM_ASKCBFORMATNAME: echo " WM_ASKCBFORMATNAME"of WM_CHANGECBCHAIN: echo " WM_CHANGECBCHAIN"of WM_HSCROLLCLIPBOARD: echo " WM_HSCROLLCLIPBOARD"of WM_QUERYNEWPALETTE: echo " WM_QUERYNEWPALETTE"of WM_PALETTEISCHANGING: echo " WM_PALETTEISCHANGING"of WM_PALETTECHANGED: echo " WM_PALETTECHANGED"of WM_HOTKEY: echo " WM_HOTKEY"of WM_PRINT: echo " WM_PRINT"of WM_PRINTCLIENT: echo " WM_PRINTCLIENT"of WM_APPCOMMAND: echo " WM_APPCOMMAND"of WM_HANDHELDFIRST: echo " WM_HANDHELDFIRST"of WM_HANDHELDLAST: echo " WM_HANDHELDLAST"of WM_AFXFIRST: echo " WM_AFXFIRST"of WM_AFXLAST: echo " WM_AFXLAST"of WM_PENWINFIRST: echo " WM_PENWINFIRST"of DM_GETDEFID: echo " DM_GETDEFID"of DM_SETDEFID: echo " DM_SETDEFID"of DM_REPOSITION: echo " DM_REPOSITION"]#else:return DefWindowProc( hwnd, message, wParam, lParam)
#***********************************************************#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,#and the Massachusetts Institute of Technology, Cambridge, Massachusetts.## All Rights Reserved##Permission to use, copy, modify, and distribute this software and its#documentation for any purpose and without fee is hereby granted,#provided that the above copyright notice appear in all copies and that#both that copyright notice and this permission notice appear in#supporting documentation, and that the names of Digital or MIT not be#used in advertising or publicity pertaining to distribution of the#software without specific, written prior permission.##DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL#DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS#SOFTWARE.##******************************************************************# $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $#*#** File:#**#** Xvlib.h --- Xv library public header file#**#** Author:#**#** David Carver (Digital Workstation Engineering/Project Athena)#**#** Revisions:#**#** 26.06.91 Carver#** - changed XvFreeAdaptors to XvFreeAdaptorInfo#** - changed XvFreeEncodings to XvFreeEncodingInfo#**#** 11.06.91 Carver#** - changed SetPortControl to SetPortAttribute#** - changed GetPortControl to GetPortAttribute#** - changed QueryBestSize#**#** 05.15.91 Carver#** - version 2.0 upgrade#**#** 01.24.91 Carver#** - version 1.4 upgrade#**#*importx, xlib, xshm, xvconstlibXv* = "libXv.so"typePXvRational* = ptr XvRationalXvRational*{.final.} = objectnumerator*: cintdenominator*: cintPXvAttribute* = ptr XvAttributeXvAttribute*{.final.} = objectflags*: cint # XvGettable, XvSettablemin_value*: cintmax_value*: cintname*: cstringPPXvEncodingInfo* = ptr PXvEncodingInfoPXvEncodingInfo* = ptr XvEncodingInfoXvEncodingInfo*{.final.} = objectencoding_id*: XvEncodingIDname*: cstringwidth*: culongheight*: culongrate*: XvRationalnum_encodings*: culongPXvFormat* = ptr XvFormatXvFormat*{.final.} = objectdepth*: ccharvisual_id*: culongPPXvAdaptorInfo* = ptr PXvAdaptorInfoPXvAdaptorInfo* = ptr XvAdaptorInfoXvAdaptorInfo*{.final.} = objectbase_id*: XvPortIDnum_ports*: culongthetype*: ccharname*: cstringnum_formats*: culongformats*: PXvFormatnum_adaptors*: culongPXvVideoNotifyEvent* = ptr XvVideoNotifyEventXvVideoNotifyEvent*{.final.} = objecttheType*: cintserial*: culong # # of last request processed by serversend_event*: XBool # true if this came from a SendEvent requestdisplay*: PDisplay # Display the event was read fromdrawable*: Drawable # drawablereason*: culong # what generated this eventport_id*: XvPortID # what porttime*: Time # millisecondsPXvPortNotifyEvent* = ptr XvPortNotifyEventXvPortNotifyEvent*{.final.} = objecttheType*: cintserial*: culong # # of last request processed by serversend_event*: XBool # true if this came from a SendEvent requestdisplay*: PDisplay # Display the event was read fromport_id*: XvPortID # what porttime*: Time # millisecondsattribute*: Atom # atom that identifies attributevalue*: clong # value of attributePXvEvent* = ptr XvEventXvEvent*{.final.} = objectpad*: array[0..23, clong] # case longint of# 0 : (# theType : cint;# );# 1 : (# xvvideo : XvVideoNotifyEvent;# );# 2 : (# xvport : XvPortNotifyEvent;# );# 3 : (## );PXvImageFormatValues* = ptr XvImageFormatValuesXvImageFormatValues*{.final.} = objectid*: cint # Unique descriptor for the formattheType*: cint # XvRGB, XvYUVbyte_order*: cint # LSBFirst, MSBFirstguid*: array[0..15, cchar] # Globally Unique IDentifierbits_per_pixel*: cintformat*: cint # XvPacked, XvPlanarnum_planes*: cint # for RGB formats onlydepth*: cintred_mask*: cuintgreen_mask*: cuintblue_mask*: cuint # for YUV formats onlyy_sample_bits*: cuintu_sample_bits*: cuintv_sample_bits*: cuinthorz_y_period*: cuinthorz_u_period*: cuinthorz_v_period*: cuintvert_y_period*: cuintvert_u_period*: cuintvert_v_period*: cuintcomponent_order*: array[0..31, char] # eg. UYVYscanline_order*: cint # XvTopToBottom, XvBottomToTopPXvImage* = ptr XvImageXvImage*{.final.} = objectid*: cintwidth*, height*: cintdata_size*: cint # bytesnum_planes*: cintpitches*: cint # bytesoffsets*: cint # bytesdata*: pointerobdata*: XPointer{.deprecated: [TXvRational: XvRational].}{.deprecated: [TXvAttribute: XvAttribute].}{.deprecated: [TXvEncodingInfo: XvEncodingInfo].}{.deprecated: [TXvFormat: XvFormat].}{.deprecated: [TXvAdaptorInfo: XvAdaptorInfo].}{.deprecated: [TXvVideoNotifyEvent: XvVideoNotifyEvent].}{.deprecated: [TXvPortNotifyEvent: XvPortNotifyEvent].}{.deprecated: [TXvEvent: XvEvent].}{.deprecated: [TXvImageFormatValues: XvImageFormatValues].}{.deprecated: [TXvImage: XvImage].}proc XvQueryExtension*(display: PDisplay, p_version, p_revision, p_requestBase,p_eventBase, p_errorBase: cuint): cint{.cdecl, dynlib: libXv, importc.}proc XvQueryAdaptors*(display: PDisplay, window: Window, p_nAdaptors: cuint,p_pAdaptors: PPXvAdaptorInfo): cint{.cdecl, dynlib: libXv,importc.}proc XvQueryEncodings*(display: PDisplay, port: XvPortID, p_nEncoding: cuint,p_pEncoding: PPXvEncodingInfo): cint{.cdecl,dynlib: libXv, importc.}proc XvPutVideo*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC,vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.cdecl, dynlib: libXv, importc.}proc XvPutStill*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC,vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.cdecl, dynlib: libXv, importc.}proc XvGetVideo*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC,vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.cdecl, dynlib: libXv, importc.}proc XvGetStill*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC,vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.cdecl, dynlib: libXv, importc.}proc XvStopVideo*(display: PDisplay, port: XvPortID, drawable: Drawable): cint{.cdecl, dynlib: libXv, importc.}proc XvGrabPort*(display: PDisplay, port: XvPortID, time: Time): cint{.cdecl,dynlib: libXv, importc.}proc XvUngrabPort*(display: PDisplay, port: XvPortID, time: Time): cint{.cdecl, dynlib: libXv, importc.}proc XvSelectVideoNotify*(display: PDisplay, drawable: Drawable, onoff: XBool): cint{.cdecl, dynlib: libXv, importc.}proc XvSelectPortNotify*(display: PDisplay, port: XvPortID, onoff: XBool): cint{.cdecl, dynlib: libXv, importc.}proc XvSetPortAttribute*(display: PDisplay, port: XvPortID, attribute: Atom,value: cint): cint{.cdecl, dynlib: libXv, importc.}proc XvGetPortAttribute*(display: PDisplay, port: XvPortID, attribute: Atom,p_value: cint): cint{.cdecl, dynlib: libXv, importc.}proc XvQueryBestSize*(display: PDisplay, port: XvPortID, motion: XBool,vid_w, vid_h, drw_w, drw_h: cuint,p_actual_width, p_actual_height: cuint): cint{.cdecl,dynlib: libXv, importc.}proc XvQueryPortAttributes*(display: PDisplay, port: XvPortID, number: cint): PXvAttribute{.cdecl, dynlib: libXv, importc.}proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo){.cdecl, dynlib: libXv, importc.}proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo){.cdecl, dynlib: libXv,importc.}proc XvListImageFormats*(display: PDisplay, port_id: XvPortID,count_return: cint): PXvImageFormatValues{.cdecl,dynlib: libXv, importc.}proc XvCreateImage*(display: PDisplay, port: XvPortID, id: cint, data: pointer,width, height: cint): PXvImage{.cdecl, dynlib: libXv,importc.}proc XvPutImage*(display: PDisplay, id: XvPortID, d: Drawable, gc: GC,image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint,dest_x, dest_y: cint, dest_w, dest_h: cuint): cint{.cdecl,dynlib: libXv, importc.}proc XvShmPutImage*(display: PDisplay, id: XvPortID, d: Drawable, gc: GC,image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint,dest_x, dest_y: cint, dest_w, dest_h: cuint,send_event: XBool): cint{.cdecl, dynlib: libXv, importc.}proc XvShmCreateImage*(display: PDisplay, port: XvPortID, id: cint,data: pointer, width, height: cint,shminfo: PXShmSegmentInfo): PXvImage{.cdecl,dynlib: libXv, importc.}# implementation
#***********************************************************#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,#and the Massachusetts Institute of Technology, Cambridge, Massachusetts.## All Rights Reserved##Permission to use, copy, modify, and distribute this software and its#documentation for any purpose and without fee is hereby granted,#provided that the above copyright notice appear in all copies and that#both that copyright notice and this permission notice appear in#supporting documentation, and that the names of Digital or MIT not be#used in advertising or publicity pertaining to distribution of the#software without specific, written prior permission.##DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL#DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS#SOFTWARE.##******************************************************************# $XFree86: xc/include/extensions/Xv.h,v 1.3 1999/05/23 06:33:22 dawes Exp $importxconstXvName* = "libXVideo.so"XvVersion* = 2XvRevision* = 2 # SymbolstypeXvPortID* = XIDXvEncodingID* = XID{.deprecated: [TXvPortID: XvPortID].}{.deprecated: [TXvEncodingID: XvEncodingID].}constXvNone* = 0XvInput* = 0XvOutput* = 1XvInputMask* = 1 shl XvInputXvOutputMask* = 1 shl XvOutputXvVideoMask* = 0x00000004XvStillMask* = 0x00000008XvImageMask* = 0x00000010 # These two are not client viewableXvPixmapMask* = 0x00010000XvWindowMask* = 0x00020000XvGettable* = 0x00000001XvSettable* = 0x00000002XvRGB* = 0XvYUV* = 1XvPacked* = 0XvPlanar* = 1XvTopToBottom* = 0XvBottomToTop* = 1 # EventsXvVideoNotify* = 0XvPortNotify* = 1XvNumEvents* = 2 # Video Notify ReasonsXvStarted* = 0XvStopped* = 1XvBusy* = 2XvPreempted* = 3XvHardError* = 4XvLastReason* = 4XvNumReasons* = XvLastReason + 1XvStartedMask* = 1 shl XvStartedXvStoppedMask* = 1 shl XvStoppedXvBusyMask* = 1 shl XvBusyXvPreemptedMask* = 1 shl XvPreemptedXvHardErrorMask* = 1 shl XvHardErrorXvAnyReasonMask* = (1 shl XvNumReasons) - 1XvNoReasonMask* = 0 # ErrorsXvBadPort* = 0XvBadEncoding* = 1XvBadControl* = 2XvNumErrors* = 3 # StatusXvBadExtension* = 1XvAlreadyGrabbed* = 2XvInvalidTime* = 3XvBadReply* = 4XvBadAlloc* = 5# implementation
importx, xlib, keysym#const# libX11* = "libX11.so"## Automatically converted by H2Pas 0.99.15 from xutil.h# The following command line parameters were used:# -p# -T# -S# -d# -c# xutil.h#constNoValue* = 0x00000000XValue* = 0x00000001YValue* = 0x00000002WidthValue* = 0x00000004HeightValue* = 0x00000008AllValues* = 0x0000000FXNegative* = 0x00000010YNegative* = 0x00000020typeCPoint*{.final.} = objectx*: cinty*: cintPXSizeHints* = ptr XSizeHintsXSizeHints*{.final.} = objectflags*: clongx*, y*: cintwidth*, height*: cintmin_width*, min_height*: cintmax_width*, max_height*: cintwidth_inc*, height_inc*: cintmin_aspect*, max_aspect*: CPointbase_width*, base_height*: cintwin_gravity*: cint{.deprecated: [TCPoint: CPoint].}{.deprecated: [TXSizeHints: XSizeHints].}constUSPosition* = 1 shl 0USSize* = 1 shl 1PPosition* = 1 shl 2PSize* = 1 shl 3PMinSize* = 1 shl 4PMaxSize* = 1 shl 5PResizeInc* = 1 shl 6PAspect* = 1 shl 7PBaseSize* = 1 shl 8PWinGravity* = 1 shl 9PAllHints* = PPosition or PSize or PMinSize or PMaxSize or PResizeInc orPAspecttypePXWMHints* = ptr XWMHintsXWMHints*{.final.} = objectflags*: clonginput*: XBoolinitial_state*: cinticon_pixmap*: Pixmapicon_window*: Windowicon_x*, icon_y*: cinticon_mask*: Pixmapwindow_group*: XID{.deprecated: [TXWMHints: XWMHints].}constInputHint* = 1 shl 0StateHint* = 1 shl 1IconPixmapHint* = 1 shl 2IconWindowHint* = 1 shl 3IconPositionHint* = 1 shl 4IconMaskHint* = 1 shl 5WindowGroupHint* = 1 shl 6AllHints* = InputHint or StateHint or IconPixmapHint or IconWindowHint orIconPositionHint or IconMaskHint or WindowGroupHintXUrgencyHint* = 1 shl 8WithdrawnState* = 0NormalState* = 1IconicState* = 3DontCareState* = 0ZoomState* = 2InactiveState* = 4typePXTextProperty* = ptr XTextPropertyXTextProperty*{.final.} = objectvalue*: Pcucharencoding*: Atomformat*: cintnitems*: culong{.deprecated: [TXTextProperty: XTextProperty].}constXNoMemory* = - 1XLocaleNotSupported* = - 2XConverterNotFound* = - 3typePXICCEncodingStyle* = ptr XICCEncodingStyleXICCEncodingStyle* = enumXStringStyle, XCompoundTextStyle, XTextStyle, XStdICCTextStyle,XUTF8StringStylePPXIconSize* = ptr PXIconSizePXIconSize* = ptr XIconSizeXIconSize*{.final.} = objectmin_width*, min_height*: cintmax_width*, max_height*: cintwidth_inc*, height_inc*: cintPXClassHint* = ptr XClassHintXClassHint*{.final.} = objectres_name*: cstringres_class*: cstring{.deprecated: [TXICCEncodingStyle: XICCEncodingStyle].}{.deprecated: [TXIconSize: XIconSize].}{.deprecated: [TXClassHint: XClassHint].}typePXComposeStatus* = ptr XComposeStatusXComposeStatus*{.final.} = objectcompose_ptr*: XPointerchars_matched*: cint{.deprecated: [TXComposeStatus: XComposeStatus].}typePXRegion* = ptr XRegionXRegion*{.final.} = objectPRegion* = ptr RegionRegion* = PXRegion{.deprecated: [TXRegion: XRegion].}{.deprecated: [TRegion: Region].}constRectangleOut* = 0RectangleIn* = 1RectanglePart* = 2typePXVisualInfo* = ptr XVisualInfoXVisualInfo*{.final.} = objectvisual*: PVisualvisualid*: VisualIDscreen*: cintdepth*: cintclass*: cintred_mask*: culonggreen_mask*: culongblue_mask*: culongcolormap_size*: cintbits_per_rgb*: cint{.deprecated: [TXVisualInfo: XVisualInfo].}constVisualNoMask* = 0x00000000VisualIDMask* = 0x00000001VisualScreenMask* = 0x00000002VisualDepthMask* = 0x00000004VisualClassMask* = 0x00000008VisualRedMaskMask* = 0x00000010VisualGreenMaskMask* = 0x00000020VisualBlueMaskMask* = 0x00000040VisualColormapSizeMask* = 0x00000080VisualBitsPerRGBMask* = 0x00000100VisualAllMask* = 0x000001FFtypePPXStandardColormap* = ptr PXStandardColormapPXStandardColormap* = ptr XStandardColormapXStandardColormap*{.final.} = objectcolormap*: Colormapred_max*: culongred_mult*: culonggreen_max*: culonggreen_mult*: culongblue_max*: culongblue_mult*: culongbase_pixel*: culongvisualid*: VisualIDkillid*: XID{.deprecated: [TXStandardColormap: XStandardColormap].}constBitmapSuccess* = 0BitmapOpenFailed* = 1BitmapFileInvalid* = 2BitmapNoMemory* = 3XCSUCCESS* = 0XCNOMEM* = 1XCNOENT* = 2ReleaseByFreeingColormap*: XID = XID(1)typePXContext* = ptr XContextXContext* = cint{.deprecated: [TXContext: XContext].}proc XAllocClassHint*(): PXClassHint{.cdecl, dynlib: libX11, importc.}proc XAllocIconSize*(): PXIconSize{.cdecl, dynlib: libX11, importc.}proc XAllocSizeHints*(): PXSizeHints{.cdecl, dynlib: libX11, importc.}proc XAllocStandardColormap*(): PXStandardColormap{.cdecl, dynlib: libX11,importc.}proc XAllocWMHints*(): PXWMHints{.cdecl, dynlib: libX11, importc.}proc XClipBox*(para1: Region, para2: PXRectangle): cint{.cdecl, dynlib: libX11,importc.}proc XCreateRegion*(): Region{.cdecl, dynlib: libX11, importc.}proc XDefaultString*(): cstring{.cdecl, dynlib: libX11, importc.}proc XDeleteContext*(para1: PDisplay, para2: XID, para3: XContext): cint{.cdecl, dynlib: libX11, importc.}proc XDestroyRegion*(para1: Region): cint{.cdecl, dynlib: libX11, importc.}proc XEmptyRegion*(para1: Region): cint{.cdecl, dynlib: libX11, importc.}proc XEqualRegion*(para1: Region, para2: Region): cint{.cdecl, dynlib: libX11,importc.}proc XFindContext*(para1: PDisplay, para2: XID, para3: XContext,para4: PXPointer): cint{.cdecl, dynlib: libX11, importc.}proc XGetClassHint*(para1: PDisplay, para2: Window, para3: PXClassHint): Status{.cdecl, dynlib: libX11, importc.}proc XGetIconSizes*(para1: PDisplay, para2: Window, para3: PPXIconSize,para4: Pcint): Status{.cdecl, dynlib: libX11, importc.}proc XGetNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): Status{.cdecl, dynlib: libX11, importc.}proc XGetRGBColormaps*(para1: PDisplay, para2: Window,para3: PPXStandardColormap, para4: Pcint, para5: Atom): Status{.cdecl, dynlib: libX11, importc.}proc XGetSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints,para4: Atom): Status{.cdecl, dynlib: libX11, importc.}proc XGetStandardColormap*(para1: PDisplay, para2: Window,para3: PXStandardColormap, para4: Atom): Status{.cdecl, dynlib: libX11, importc.}proc XGetTextProperty*(para1: PDisplay, para2: Window, para3: PXTextProperty,para4: Atom): Status{.cdecl, dynlib: libX11, importc.}proc XGetVisualInfo*(para1: PDisplay, para2: clong, para3: PXVisualInfo,para4: Pcint): PXVisualInfo{.cdecl, dynlib: libX11, importc.}proc XGetWMClientMachine*(para1: PDisplay, para2: Window, para3: PXTextProperty): Status{.cdecl, dynlib: libX11, importc.}proc XGetWMHints*(para1: PDisplay, para2: Window): PXWMHints{.cdecl,dynlib: libX11, importc.}proc XGetWMIconName*(para1: PDisplay, para2: Window, para3: PXTextProperty): Status{.cdecl, dynlib: libX11, importc.}proc XGetWMName*(para1: PDisplay, para2: Window, para3: PXTextProperty): Status{.cdecl, dynlib: libX11, importc.}proc XGetWMNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints,para4: ptr int): Status{.cdecl, dynlib: libX11, importc.}proc XGetWMSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints,para4: ptr int, para5: Atom): Status{.cdecl,dynlib: libX11, importc.}proc XGetZoomHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): Status{.cdecl, dynlib: libX11, importc.}proc XIntersectRegion*(para1: Region, para2: Region, para3: Region): cint{.cdecl, dynlib: libX11, importc.}proc XConvertCase*(para1: KeySym, para2: PKeySym, para3: PKeySym){.cdecl,dynlib: libX11, importc.}proc XLookupString*(para1: PXKeyEvent, para2: cstring, para3: cint,para4: PKeySym, para5: PXComposeStatus): cint{.cdecl,dynlib: libX11, importc.}proc XMatchVisualInfo*(para1: PDisplay, para2: cint, para3: cint, para4: cint,para5: PXVisualInfo): Status{.cdecl, dynlib: libX11,importc.}proc XOffsetRegion*(para1: Region, para2: cint, para3: cint): cint{.cdecl,dynlib: libX11, importc.}proc XPointInRegion*(para1: Region, para2: cint, para3: cint): XBool{.cdecl,dynlib: libX11, importc.}proc XPolygonRegion*(para1: PXPoint, para2: cint, para3: cint): Region{.cdecl,dynlib: libX11, importc.}proc XRectInRegion*(para1: Region, para2: cint, para3: cint, para4: cuint,para5: cuint): cint{.cdecl, dynlib: libX11, importc.}proc XSaveContext*(para1: PDisplay, para2: XID, para3: XContext,para4: cstring): cint{.cdecl, dynlib: libX11, importc.}proc XSetClassHint*(para1: PDisplay, para2: Window, para3: PXClassHint): cint{.cdecl, dynlib: libX11, importc.}proc XSetIconSizes*(para1: PDisplay, para2: Window, para3: PXIconSize,para4: cint): cint{.cdecl, dynlib: libX11, importc.}proc XSetNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): cint{.cdecl, dynlib: libX11, importc.}proc XSetRGBColormaps*(para1: PDisplay, para2: Window,para3: PXStandardColormap, para4: cint, para5: Atom){.cdecl, dynlib: libX11, importc.}proc XSetSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints,para4: Atom): cint{.cdecl, dynlib: libX11, importc.}proc XSetStandardProperties*(para1: PDisplay, para2: Window, para3: cstring,para4: cstring, para5: Pixmap, para6: PPchar,para7: cint, para8: PXSizeHints): cint{.cdecl,dynlib: libX11, importc.}proc XSetTextProperty*(para1: PDisplay, para2: Window, para3: PXTextProperty,para4: Atom){.cdecl, dynlib: libX11, importc.}proc XSetWMClientMachine*(para1: PDisplay, para2: Window, para3: PXTextProperty){.cdecl, dynlib: libX11, importc.}proc XSetWMHints*(para1: PDisplay, para2: Window, para3: PXWMHints): cint{.cdecl, dynlib: libX11, importc.}proc XSetWMIconName*(para1: PDisplay, para2: Window, para3: PXTextProperty){.cdecl, dynlib: libX11, importc.}proc XSetWMName*(para1: PDisplay, para2: Window, para3: PXTextProperty){.cdecl,dynlib: libX11, importc.}proc XSetWMNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints){.cdecl, dynlib: libX11, importc.}proc XSetWMProperties*(para1: PDisplay, para2: Window, para3: PXTextProperty,para4: PXTextProperty, para5: PPchar, para6: cint,para7: PXSizeHints, para8: PXWMHints, para9: PXClassHint){.cdecl, dynlib: libX11, importc.}proc XmbSetWMProperties*(para1: PDisplay, para2: Window, para3: cstring,para4: cstring, para5: PPchar, para6: cint,para7: PXSizeHints, para8: PXWMHints,para9: PXClassHint){.cdecl, dynlib: libX11, importc.}proc Xutf8SetWMProperties*(para1: PDisplay, para2: Window, para3: cstring,para4: cstring, para5: PPchar, para6: cint,para7: PXSizeHints, para8: PXWMHints,para9: PXClassHint){.cdecl, dynlib: libX11, importc.}proc XSetWMSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints,para4: Atom){.cdecl, dynlib: libX11, importc.}proc XSetRegion*(para1: PDisplay, para2: GC, para3: Region): cint{.cdecl,dynlib: libX11, importc.}proc XSetStandardColormap*(para1: PDisplay, para2: Window,para3: PXStandardColormap, para4: Atom){.cdecl,dynlib: libX11, importc.}proc XSetZoomHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): cint{.cdecl, dynlib: libX11, importc.}proc XShrinkRegion*(para1: Region, para2: cint, para3: cint): cint{.cdecl,dynlib: libX11, importc.}proc XStringListToTextProperty*(para1: PPchar, para2: cint,para3: PXTextProperty): Status{.cdecl,dynlib: libX11, importc.}proc XSubtractRegion*(para1: Region, para2: Region, para3: Region): cint{.cdecl, dynlib: libX11, importc.}proc XmbTextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint,para4: XICCEncodingStyle, para5: PXTextProperty): cint{.cdecl, dynlib: libX11, importc.}proc XwcTextListToTextProperty*(para1: PDisplay, para2: ptr ptr int16, para3: cint,para4: XICCEncodingStyle, para5: PXTextProperty): cint{.cdecl, dynlib: libX11, importc.}proc Xutf8TextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint,para4: XICCEncodingStyle,para5: PXTextProperty): cint{.cdecl,dynlib: libX11, importc.}proc XwcFreeStringList*(para1: ptr ptr int16){.cdecl, dynlib: libX11, importc.}proc XTextPropertyToStringList*(para1: PXTextProperty, para2: PPPchar,para3: Pcint): Status{.cdecl, dynlib: libX11,importc.}proc XmbTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty,para3: PPPchar, para4: Pcint): cint{.cdecl,dynlib: libX11, importc.}proc XwcTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty,para3: ptr ptr ptr int16, para4: Pcint): cint{.cdecl,dynlib: libX11, importc.}proc Xutf8TextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty,para3: PPPchar, para4: Pcint): cint{.cdecl,dynlib: libX11, importc.}proc XUnionRectWithRegion*(para1: PXRectangle, para2: Region, para3: Region): cint{.cdecl, dynlib: libX11, importc.}proc XUnionRegion*(para1: Region, para2: Region, para3: Region): cint{.cdecl,dynlib: libX11, importc.}proc XWMGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring,para5: cuint, para6: PXSizeHints, para7: Pcint, para8: Pcint,para9: Pcint, para10: Pcint, para11: Pcint): cint{.cdecl,dynlib: libX11, importc.}proc XXorRegion*(para1: Region, para2: Region, para3: Region): cint{.cdecl,dynlib: libX11, importc.}#when defined(MACROS):proc XDestroyImage*(ximage: PXImage): cintproc XGetPixel*(ximage: PXImage, x, y: cint): culongproc XPutPixel*(ximage: PXImage, x, y: cint, pixel: culong): cintproc XSubImage*(ximage: PXImage, x, y: cint, width, height: cuint): PXImageproc XAddPixel*(ximage: PXImage, value: clong): cintproc IsKeypadKey*(keysym: KeySym): boolproc IsPrivateKeypadKey*(keysym: KeySym): boolproc IsCursorKey*(keysym: KeySym): boolproc IsPFKey*(keysym: KeySym): boolproc IsFunctionKey*(keysym: KeySym): boolproc IsMiscFunctionKey*(keysym: KeySym): boolproc IsModifierKey*(keysym: KeySym): bool#function XUniqueContext : XContext;#function XStringToContext(_string : Pchar) : XContext;# implementation#when defined(MACROS):proc XDestroyImage(ximage: PXImage): cint =ximage.f.destroy_image(ximage)proc XGetPixel(ximage: PXImage, x, y: cint): culong =ximage.f.get_pixel(ximage, x, y)proc XPutPixel(ximage: PXImage, x, y: cint, pixel: culong): cint =ximage.f.put_pixel(ximage, x, y, pixel)proc XSubImage(ximage: PXImage, x, y: cint, width, height: cuint): PXImage =ximage.f.sub_image(ximage, x, y, width, height)proc XAddPixel(ximage: PXImage, value: clong): cint =ximage.f.add_pixel(ximage, value)proc IsKeypadKey(keysym: KeySym): bool =(keysym >= XK_KP_Space) and (keysym <= XK_KP_Equal)proc IsPrivateKeypadKey(keysym: KeySym): bool =(keysym >= 0x11000000.KeySym) and (keysym <= 0x1100FFFF.KeySym)proc IsCursorKey(keysym: KeySym): bool =(keysym >= XK_Home) and (keysym < XK_Select)proc IsPFKey(keysym: KeySym): bool =(keysym >= XK_KP_F1) and (keysym <= XK_KP_F4)proc IsFunctionKey(keysym: KeySym): bool =(keysym >= XK_F1) and (keysym <= XK_F35)proc IsMiscFunctionKey(keysym: KeySym): bool =(keysym >= XK_Select) and (keysym <= XK_Break)proc IsModifierKey(keysym: KeySym): bool =((keysym >= XK_Shift_L) and (keysym <= XK_Hyper_R)) or(keysym == XK_Mode_switch) or (keysym == XK_Num_Lock)
import x, xlib, xinputconstlibXtst = "libXtst.so(.6|)"recordName* = "RECORD"recordMajorVersion* = 1recordMinorVersion* = 13recordLowestMajorVersion* = 1recordLowestMinorVersion* = 12xRecordBadContext* = 0recordNumErrors* = xRecordBadContext + 1recordNumEvents* = 0xRecordFromServerTime* = 0x01xRecordFromClientTime* = 0x02xRecordFromClientSequence* = 0x04xRecordCurrentClients* = 1xRecordFutureClients* = 2xRecordAllClients* = 3XRecordFromServer* = 0XRecordFromClient* = 1XRecordClientStarted* = 2XRecordClientDied* = 3XRecordStartOfData* = 4XRecordEndOfData* = 5typePXRecordClientSpec* = ptr XRecordClientSpecXRecordClientSpec* = culongPXRecordContext* = ptr XRecordContextXRecordContext* = culongPXRecordRange8* = ptr XRecordRange8XRecordRange8* {.final.} = objectfirst*: charlast*: charPXRecordRange16* = ptr XRecordRange16XRecordRange16* {.final.} = objectfirst*: cushortlast*: cushortPXRecordExtRange* = ptr XRecordExtRangeXRecordExtRange* {.final.} = objectext_major*: XRecordRange8ext_minor*: XRecordRange16PXRecordRange* = ptr XRecordRangeXRecordRange* {.final.} = objectcore_requests*: XRecordRange8 ## core X requestscore_replies*: XRecordRange8 ## core X repliesext_requests*: XRecordExtRange ## extension requestsext_replies*: XRecordExtRange ## extension repliesdelivered_events*: XRecordRange8 ## delivered core and ext eventsdevice_events*: XRecordRange8 ## all core and ext device eventserrors*: XRecordRange8 ## core X and ext errorsclient_started*: XBool ## connection setup replyclient_died*: XBool ## notice of client disconnectPXRecordClientInfo* = ptr XRecordClientInfoXRecordClientInfo* {.final.} = objectclient*: XRecordClientSpecnranges*: culongranges*: ptr UncheckedArray[XRecordRange]PXRecordState* = ptr XRecordStateXRecordState* {.final.} = objectenabled*: XBooldatum_flags*: cintnclients*: culongclient_info*: ptr UncheckedArray[XRecordClientInfo]PXRecordInterceptData* = ptr XRecordInterceptDataXRecordInterceptData* {.final.} = objectid_base*: XIDserver_time*: Timeclient_seq*: culongcategory*: cintclient_swapped*: XBooldata*: cstringdata_len*: culong ## in 4-byte unitsXRecordInterceptProc* = proc (a1: XPointer, a2: PXRecordInterceptData){.deprecated: [TXRecordClientSpec: XRecordClientSpec].}{.deprecated: [TXRecordContext: XRecordContext].}{.deprecated: [TXRecordRange8: XRecordRange8].}{.deprecated: [TXRecordRange16: XRecordRange16].}{.deprecated: [TXRecordExtRange: XRecordExtRange].}{.deprecated: [TXRecordRange: XRecordRange].}{.deprecated: [TXRecordClientInfo: XRecordClientInfo].}{.deprecated: [TXRecordState: XRecordState].}{.deprecated: [TXRecordInterceptData: XRecordInterceptData].}{.deprecated: [TXRecordInterceptProc: XRecordInterceptProc].}{.push cdecl, importc, dynlib: libXtst.}proc XRecordIdBaseMask*(dpy: PDisplay): XIDproc XRecordQueryVersion*(a1: PDisplay, a2, a3: ptr cint): Statusproc XRecordCreateContext*(a1: PDisplay,a2: cint, a3: PXRecordClientSpec,a4: cint, a5: ptr UncheckedArray[XRecordRange],a6: cint): XRecordContextproc XRecordAllocRange*: PXRecordRangeproc XRecordRegisterClients*(a1: PDisplay,a2: XRecordContext,a3: cint, a4: PXRecordClientSpec,a5: cint, a6: ptr UncheckedArray[XRecordRange],a7: cint): Statusproc XRecordUnregisterClients*(a1: PDisplay,a2: XRecordContext,a3: PXRecordClientSpec,a4: cint): Statusproc XRecordGetContext*(a1: PDisplay,a2: XRecordContext,a3: ptr UncheckedArray[XRecordState]): Statusproc XRecordFreeState*(a1: PXRecordState)proc XRecordEnableContext*(a1: PDisplay,a2: XRecordContext,a3: XRecordInterceptProc,a4: XPointer): Statusproc XRecordEnableContextAsync*(a1: PDisplay, a2: XRecordContext,a3: XRecordInterceptProc,a4: XPointer): Statusproc XRecordProcessReplies*(a1: PDisplay)proc XRecordFreeData*(a1: PXRecordInterceptData)proc XRecordDisableContext*(a1: PDisplay, a2: XRecordContext): Statusproc XRecordFreeContext*(a1: PDisplay, a2: XRecordContext): Statusproc XTestQueryExtension*(a1: PDisplay, a2, a3, a4, a5: ptr cint): XBoolproc XTestCompareCursorWithWindow*(a1: PDisplay, a2: Window, a3: Cursor): XBoolproc XTestCompareCurrentCursorWithWindow*(a1: PDisplay, a2: Window): XBoolproc XTestFakeKeyEvent*(a1: PDisplay, a2: cuint, a3: XBool, a4: culong): cintproc XTestFakeButtonEvent*(a1: PDisplay, a2: cuint, a3: XBool, a4: culong): cintproc XTestFakeMotionEvent*(a1: PDisplay, a2, a3, a4: cint, a5: culong): cintproc XTestFakeRelativeMotionEvent*(a1: PDisplay, a2, a3: cint, a4: culong): cintproc XTestFakeDeviceKeyEvent*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: XBool,a5: ptr cint, a6: cint, a7: culong): cintproc XTestFakeDeviceButtonEvent*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: XBool,a5: ptr cint, a6: cint, a7: culong): cintproc XTestFakeProximityEvent*(a1: PDisplay, a2: PXDevice, a3: XBool, a4: ptr cint,a5: cint, a6: culong): cintproc XTestFakeDeviceMotionEvent*(a1: PDisplay, a2: PXDevice, a3: XBool, a4: cint,a5: ptr cint, a6: cint, a7: culong): cintproc XTestGrabControl*(a1: PDisplay, a2: XBool): cintproc XTestSetGContextOfGC*(a1: GC, a2: GContext)proc XTestSetVisualIDOfVisual*(a1: PVisual, a2: VisualID)proc XTestDiscard*(a1: PDisplay): Status{.pop.}
importx, xlibconstlibXext* = "libXext.so(.6|)"## Automatically converted by H2Pas 0.99.15 from xshm.h# The following command line parameters were used:# -p# -T# -S# -d# -c# xshm.h#constconstX_ShmQueryVersion* = 0constX_ShmAttach* = 1constX_ShmDetach* = 2constX_ShmPutImage* = 3constX_ShmGetImage* = 4constX_ShmCreatePixmap* = 5ShmCompletion* = 0ShmNumberEvents* = ShmCompletion + 1BadShmSeg* = 0ShmNumberErrors* = BadShmSeg + 1typePShmSeg* = ptr ShmSegShmSeg* = culongPXShmCompletionEvent* = ptr XShmCompletionEventXShmCompletionEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaydrawable*: Drawablemajor_code*: cintminor_code*: cintshmseg*: ShmSegoffset*: culongPXShmSegmentInfo* = ptr XShmSegmentInfoXShmSegmentInfo*{.final.} = objectshmseg*: ShmSegshmid*: cintshmaddr*: cstringreadOnly*: XBool{.deprecated: [TShmSeg: ShmSeg].}{.deprecated: [TXShmCompletionEvent: XShmCompletionEvent].}{.deprecated: [TXShmSegmentInfo: XShmSegmentInfo].}proc XShmQueryExtension*(para1: PDisplay): XBool{.cdecl, dynlib: libXext, importc.}proc XShmGetEventBase*(para1: PDisplay): cint{.cdecl, dynlib: libXext, importc.}proc XShmQueryVersion*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: PBool): XBool{.cdecl, dynlib: libXext, importc.}proc XShmPixmapFormat*(para1: PDisplay): cint{.cdecl, dynlib: libXext, importc.}proc XShmAttach*(para1: PDisplay, para2: PXShmSegmentInfo): Status{.cdecl,dynlib: libXext, importc.}proc XShmDetach*(para1: PDisplay, para2: PXShmSegmentInfo): Status{.cdecl,dynlib: libXext, importc.}proc XShmPutImage*(para1: PDisplay, para2: Drawable, para3: GC,para4: PXImage, para5: cint, para6: cint, para7: cint,para8: cint, para9: cuint, para10: cuint, para11: XBool): Status{.cdecl, dynlib: libXext, importc.}proc XShmGetImage*(para1: PDisplay, para2: Drawable, para3: PXImage,para4: cint, para5: cint, para6: culong): Status{.cdecl,dynlib: libXext, importc.}proc XShmCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint,para4: cint, para5: cstring, para6: PXShmSegmentInfo,para7: cuint, para8: cuint): PXImage{.cdecl,dynlib: libXext, importc.}proc XShmCreatePixmap*(para1: PDisplay, para2: Drawable, para3: cstring,para4: PXShmSegmentInfo, para5: cuint, para6: cuint,para7: cuint): Pixmap{.cdecl, dynlib: libXext, importc.}# implementation
importx, xlib#const# libX11* = "libX11.so"## Automatically converted by H2Pas 0.99.15 from xresource.h# The following command line parameters were used:# -p# -T# -S# -d# -c# xresource.h#proc Xpermalloc*(para1: int32): cstring{.cdecl, dynlib: libX11, importc.}typePXrmQuark* = ptr XrmQuarkXrmQuark* = int32XrmQuarkList* = PXrmQuarkPXrmQuarkList* = ptr XrmQuarkList{.deprecated: [TXrmQuark: XrmQuark].}{.deprecated: [TXrmQuarkList: XrmQuarkList].}proc NULLQUARK*(): XrmQuarktypePXrmString* = ptr XrmStringXrmString* = ptr char{.deprecated: [TXrmString: XrmString].}proc NULLSTRING*(): XrmStringproc XrmStringToQuark*(para1: cstring): XrmQuark{.cdecl, dynlib: libX11,importc.}proc XrmPermStringToQuark*(para1: cstring): XrmQuark{.cdecl, dynlib: libX11,importc.}proc XrmQuarkToString*(para1: XrmQuark): XrmString{.cdecl, dynlib: libX11,importc.}proc XrmUniqueQuark*(): XrmQuark{.cdecl, dynlib: libX11, importc.}#when defined(MACROS):proc XrmStringsEqual*(a1, a2: cstring): booltypePXrmBinding* = ptr XrmBindingXrmBinding* = enumXrmBindTightly, XrmBindLooselyXrmBindingList* = PXrmBindingPXrmBindingList* = ptr XrmBindingList{.deprecated: [TXrmBinding: XrmBinding].}{.deprecated: [TXrmBindingList: XrmBindingList].}proc XrmStringToQuarkList*(para1: cstring, para2: XrmQuarkList){.cdecl,dynlib: libX11, importc.}proc XrmStringToBindingQuarkList*(para1: cstring, para2: XrmBindingList,para3: XrmQuarkList){.cdecl, dynlib: libX11,importc.}typePXrmName* = ptr XrmNameXrmName* = XrmQuarkPXrmNameList* = ptr XrmNameListXrmNameList* = XrmQuarkList{.deprecated: [TXrmName: XrmName].}{.deprecated: [TXrmNameList: XrmNameList].}#when defined(MACROS):proc XrmNameToString*(name: int32): XrmStringproc XrmStringToName*(str: cstring): int32proc XrmStringToNameList*(str: cstring, name: PXrmQuark)typePXrmClass* = ptr XrmClassXrmClass* = XrmQuarkPXrmClassList* = ptr XrmClassListXrmClassList* = XrmQuarkList{.deprecated: [TXrmClass: XrmClass].}{.deprecated: [TXrmClassList: XrmClassList].}#when defined(MACROS):proc XrmClassToString*(c_class: int32): XrmStringproc XrmStringToClass*(c_class: cstring): int32proc XrmStringToClassList*(str: cstring, c_class: PXrmQuark)typePXrmRepresentation* = ptr XrmRepresentationXrmRepresentation* = XrmQuark{.deprecated: [TXrmRepresentation: XrmRepresentation].}#when defined(MACROS):proc XrmStringToRepresentation*(str: cstring): int32proc XrmRepresentationToString*(thetype: int32): XrmStringtypePXrmValue* = ptr XrmValueXrmValue*{.final.} = objectsize*: int32address*: XPointerPXrmValuePtr* = ptr XrmValuePtrXrmValuePtr* = PXrmValuePXrmHashBucketRec* = ptr XrmHashBucketRecXrmHashBucketRec*{.final.} = objectPXrmHashBucket* = ptr XrmHashBucketXrmHashBucket* = PXrmHashBucketRecPXrmHashTable* = ptr XrmHashTableXrmHashTable* = ptr XrmHashBucketPXrmDatabase* = ptr XrmDatabaseXrmDatabase* = PXrmHashBucketRec{.deprecated: [TXrmValue: XrmValue].}{.deprecated: [TXrmValuePtr: XrmValuePtr].}{.deprecated: [TXrmHashBucketRec: XrmHashBucketRec].}{.deprecated: [TXrmHashBucket: XrmHashBucket].}{.deprecated: [TXrmHashTable: XrmHashTable].}{.deprecated: [TXrmDatabase: XrmDatabase].}proc XrmDestroyDatabase*(para1: XrmDatabase){.cdecl, dynlib: libX11, importc.}proc XrmQPutResource*(para1: PXrmDatabase, para2: XrmBindingList,para3: XrmQuarkList, para4: XrmRepresentation,para5: PXrmValue){.cdecl, dynlib: libX11, importc.}proc XrmPutResource*(para1: PXrmDatabase, para2: cstring, para3: cstring,para4: PXrmValue){.cdecl, dynlib: libX11, importc.}proc XrmQPutStringResource*(para1: PXrmDatabase, para2: XrmBindingList,para3: XrmQuarkList, para4: cstring){.cdecl,dynlib: libX11, importc.}proc XrmPutStringResource*(para1: PXrmDatabase, para2: cstring, para3: cstring){.cdecl, dynlib: libX11, importc.}proc XrmPutLineResource*(para1: PXrmDatabase, para2: cstring){.cdecl,dynlib: libX11, importc.}proc XrmQGetResource*(para1: XrmDatabase, para2: XrmNameList,para3: XrmClassList, para4: PXrmRepresentation,para5: PXrmValue): XBool{.cdecl, dynlib: libX11, importc.}proc XrmGetResource*(para1: XrmDatabase, para2: cstring, para3: cstring,para4: PPchar, para5: PXrmValue): XBool{.cdecl,dynlib: libX11, importc.}# There is no definition of XrmSearchList#function XrmQGetSearchList(para1:XrmDatabase; para2:XrmNameList; para3:XrmClassList; para4:XrmSearchList; para5:longint):XBool;cdecl;external libX11;#function XrmQGetSearchResource(para1:XrmSearchList; para2:XrmName; para3:XrmClass; para4:PXrmRepresentation; para5:PXrmValue):XBool;cdecl;external libX11;proc XrmSetDatabase*(para1: PDisplay, para2: XrmDatabase){.cdecl,dynlib: libX11, importc.}proc XrmGetDatabase*(para1: PDisplay): XrmDatabase{.cdecl, dynlib: libX11,importc.}proc XrmGetFileDatabase*(para1: cstring): XrmDatabase{.cdecl, dynlib: libX11,importc.}proc XrmCombineFileDatabase*(para1: cstring, para2: PXrmDatabase, para3: XBool): Status{.cdecl, dynlib: libX11, importc.}proc XrmGetStringDatabase*(para1: cstring): XrmDatabase{.cdecl, dynlib: libX11,importc.}proc XrmPutFileDatabase*(para1: XrmDatabase, para2: cstring){.cdecl,dynlib: libX11, importc.}proc XrmMergeDatabases*(para1: XrmDatabase, para2: PXrmDatabase){.cdecl,dynlib: libX11, importc.}proc XrmCombineDatabase*(para1: XrmDatabase, para2: PXrmDatabase, para3: XBool){.cdecl, dynlib: libX11, importc.}constXrmEnumAllLevels* = 0XrmEnumOneLevel* = 1typefuncbool* = proc (): XBool {.cdecl.}proc XrmEnumerateDatabase*(para1: XrmDatabase, para2: XrmNameList,para3: XrmClassList, para4: int32, para5: funcbool,para6: XPointer): XBool{.cdecl, dynlib: libX11,importc.}proc XrmLocaleOfDatabase*(para1: XrmDatabase): cstring{.cdecl, dynlib: libX11,importc.}typePXrmOptionKind* = ptr XrmOptionKindXrmOptionKind* = enumXrmoptionNoArg, XrmoptionIsArg, XrmoptionStickyArg, XrmoptionSepArg,XrmoptionResArg, XrmoptionSkipArg, XrmoptionSkipLine, XrmoptionSkipNArgsPXrmOptionDescRec* = ptr XrmOptionDescRecXrmOptionDescRec*{.final.} = objectoption*: cstringspecifier*: cstringargKind*: XrmOptionKindvalue*: XPointerXrmOptionDescList* = PXrmOptionDescRecPXrmOptionDescList* = ptr XrmOptionDescList{.deprecated: [TXrmOptionKind: XrmOptionKind].}{.deprecated: [TXrmOptionDescRec: XrmOptionDescRec].}{.deprecated: [TPXrmOptionDescList: PXrmOptionDescList].}proc XrmParseCommand*(para1: PXrmDatabase, para2: XrmOptionDescList,para3: int32, para4: cstring, para5: ptr int32,para6: PPchar){.cdecl, dynlib: libX11, importc.}# implementationproc NULLQUARK(): XrmQuark =result = XrmQuark(0)proc NULLSTRING(): XrmString =result = nil#when defined(MACROS):proc XrmStringsEqual(a1, a2: cstring): bool =#result = (strcomp(a1, a2)) == 0$a1 == $a2proc XrmNameToString(name: int32): XrmString =result = XrmQuarkToString(name)proc XrmStringToName(str: cstring): int32 =result = XrmStringToQuark(str)proc XrmStringToNameList(str: cstring, name: PXrmQuark) =XrmStringToQuarkList(str, name)proc XrmClassToString(c_class: int32): XrmString =result = XrmQuarkToString(c_class)proc XrmStringToClass(c_class: cstring): int32 =result = XrmStringToQuark(c_class)proc XrmStringToClassList(str: cstring, c_class: PXrmQuark) =XrmStringToQuarkList(str, c_class)proc XrmStringToRepresentation(str: cstring): int32 =result = XrmStringToQuark(str)proc XrmRepresentationToString(thetype: int32): XrmString =result = XrmQuarkToString(thetype)
importx, xlibwhen defined(use_pkg_config) or defined(use_pkg_config_static):{.pragma: libxrender, cdecl, importc.}when defined(use_pkg_config):{.passl: gorge("pkg-config xrender --libs").}else:{.passl: gorge("pkg-config xrender --static --libs").}else:when defined(macosx):constlibXrender* = "libXrender.dylib"else:constlibXrender* = "libXrender.so"{.pragma: libxrender, dynlib: libXrender, cdecl, importc.}#const# libXrender* = "libXrender.so"## Automatically converted by H2Pas 0.99.15 from xrender.h# The following command line parameters were used:# -p# -T# -S# -d# -c# xrender.h#typePGlyph* = ptr GlyphGlyph* = int32PGlyphSet* = ptr GlyphSetGlyphSet* = int32PPicture* = ptr PicturePicture* = int32PPictFormat* = ptr PictFormatPictFormat* = int32{.deprecated: [TGlyph: Glyph].}{.deprecated: [TGlyphSet: GlyphSet].}{.deprecated: [TPicture: Picture].}{.deprecated: [TPictFormat: PictFormat].}constRENDER_NAME* = "RENDER"RENDER_MAJOR* = 0RENDER_MINOR* = 0constX_RenderQueryVersion* = 0X_RenderQueryPictFormats* = 1X_RenderQueryPictIndexValues* = 2X_RenderQueryDithers* = 3constX_RenderCreatePicture* = 4constX_RenderChangePicture* = 5X_RenderSetPictureClipRectangles* = 6constX_RenderFreePicture* = 7constX_RenderComposite* = 8X_RenderScale* = 9X_RenderTrapezoids* = 10X_RenderTriangles* = 11X_RenderTriStrip* = 12X_RenderTriFan* = 13X_RenderColorTrapezoids* = 14X_RenderColorTriangles* = 15X_RenderTransform* = 16constX_RenderCreateGlyphSet* = 17constX_RenderReferenceGlyphSet* = 18constX_RenderFreeGlyphSet* = 19constX_RenderAddGlyphs* = 20constX_RenderAddGlyphsFromPicture* = 21constX_RenderFreeGlyphs* = 22constX_RenderCompositeGlyphs8* = 23constX_RenderCompositeGlyphs16* = 24constX_RenderCompositeGlyphs32* = 25BadPictFormat* = 0BadPicture* = 1BadPictOp* = 2BadGlyphSet* = 3BadGlyph* = 4RenderNumberErrors* = BadGlyph + 1PictTypeIndexed* = 0PictTypeDirect* = 1PictOpClear* = 0PictOpSrc* = 1PictOpDst* = 2PictOpOver* = 3PictOpOverReverse* = 4PictOpIn* = 5PictOpInReverse* = 6PictOpOut* = 7PictOpOutReverse* = 8PictOpAtop* = 9PictOpAtopReverse* = 10PictOpXor* = 11PictOpAdd* = 12PictOpSaturate* = 13PictOpMaximum* = 13PolyEdgeSharp* = 0PolyEdgeSmooth* = 1PolyModePrecise* = 0PolyModeImprecise* = 1CPRepeat* = 1 shl 0CPAlphaMap* = 1 shl 1CPAlphaXOrigin* = 1 shl 2CPAlphaYOrigin* = 1 shl 3CPClipXOrigin* = 1 shl 4CPClipYOrigin* = 1 shl 5CPClipMask* = 1 shl 6CPGraphicsExposure* = 1 shl 7CPSubwindowMode* = 1 shl 8CPPolyEdge* = 1 shl 9CPPolyMode* = 1 shl 10CPDither* = 1 shl 11CPLastBit* = 11typePXRenderDirectFormat* = ptr XRenderDirectFormatXRenderDirectFormat*{.final.} = objectred*: int16redMask*: int16green*: int16greenMask*: int16blue*: int16blueMask*: int16alpha*: int16alphaMask*: int16PXRenderPictFormat* = ptr XRenderPictFormatXRenderPictFormat*{.final.} = objectid*: PictFormatthetype*: int32depth*: int32direct*: XRenderDirectFormatcolormap*: Colormap{.deprecated: [TXRenderDirectFormat: XRenderDirectFormat].}{.deprecated: [TXRenderPictFormat: XRenderPictFormat].}constPictFormatID* = 1 shl 0PictFormatType* = 1 shl 1PictFormatDepth* = 1 shl 2PictFormatRed* = 1 shl 3PictFormatRedMask* = 1 shl 4PictFormatGreen* = 1 shl 5PictFormatGreenMask* = 1 shl 6PictFormatBlue* = 1 shl 7PictFormatBlueMask* = 1 shl 8PictFormatAlpha* = 1 shl 9PictFormatAlphaMask* = 1 shl 10PictFormatColormap* = 1 shl 11typePXRenderVisual* = ptr XRenderVisualXRenderVisual*{.final.} = objectvisual*: PVisualformat*: PXRenderPictFormatPXRenderDepth* = ptr XRenderDepthXRenderDepth*{.final.} = objectdepth*: int32nvisuals*: int32visuals*: PXRenderVisualPXRenderScreen* = ptr XRenderScreenXRenderScreen*{.final.} = objectdepths*: PXRenderDepthndepths*: int32fallback*: PXRenderPictFormatPXRenderInfo* = ptr XRenderInfoXRenderInfo*{.final.} = objectformat*: PXRenderPictFormatnformat*: int32screen*: PXRenderScreennscreen*: int32depth*: PXRenderDepthndepth*: int32visual*: PXRenderVisualnvisual*: int32PXRenderPictureAttributes* = ptr XRenderPictureAttributesXRenderPictureAttributes*{.final.} = objectrepeat*: XBoolalpha_map*: Picturealpha_x_origin*: int32alpha_y_origin*: int32clip_x_origin*: int32clip_y_origin*: int32clip_mask*: Pixmapgraphics_exposures*: XBoolsubwindow_mode*: int32poly_edge*: int32poly_mode*: int32dither*: AtomPXGlyphInfo* = ptr XGlyphInfoXGlyphInfo*{.final.} = objectwidth*: int16height*: int16x*: int16y*: int16xOff*: int16yOff*: int16PXRenderColor* = ptr XRenderColorXRenderColor* = objectred*: cushortgreen*: cushortblue*: cushortalpha*: cushort{.deprecated: [TXRenderVisual: XRenderVisual].}{.deprecated: [TXRenderDepth: XRenderDepth].}{.deprecated: [TXRenderScreen: XRenderScreen].}{.deprecated: [TXRenderInfo: XRenderInfo].}{.deprecated: [TXRenderPictureAttributes: XRenderPictureAttributes].}{.deprecated: [TXGlyphInfo: XGlyphInfo].}proc XRenderQueryExtension*(dpy: PDisplay, event_basep: ptr int32,error_basep: ptr int32): XBool{.libxrender.}proc XRenderQueryVersion*(dpy: PDisplay, major_versionp: ptr int32,minor_versionp: ptr int32): Status{.libxrender.}proc XRenderQueryFormats*(dpy: PDisplay): Status{.libxrender.}proc XRenderFindVisualFormat*(dpy: PDisplay, visual: PVisual): PXRenderPictFormat{.libxrender.}proc XRenderFindFormat*(dpy: PDisplay, mask: int32,`template`: PXRenderPictFormat, count: int32): PXRenderPictFormat{.libxrender.}proc XRenderCreatePicture*(dpy: PDisplay, drawable: Drawable,format: PXRenderPictFormat, valuemask: int32,attributes: PXRenderPictureAttributes): Picture{.libxrender.}proc XRenderChangePicture*(dpy: PDisplay, picture: Picture, valuemask: int32,attributes: PXRenderPictureAttributes){.libxrender.}proc XRenderFreePicture*(dpy: PDisplay, picture: Picture){.libxrender.}proc XRenderComposite*(dpy: PDisplay, op: int32, src: Picture, mask: Picture,dst: Picture, src_x: int32, src_y: int32, mask_x: int32,mask_y: int32, dst_x: int32, dst_y: int32, width: int32,height: int32){.libxrender.}proc XRenderCreateGlyphSet*(dpy: PDisplay, format: PXRenderPictFormat): GlyphSet{.libxrender.}proc XRenderReferenceGlyphSet*(dpy: PDisplay, existing: GlyphSet): GlyphSet{.libxrender.}proc XRenderFreeGlyphSet*(dpy: PDisplay, glyphset: GlyphSet){.libxrender.}proc XRenderAddGlyphs*(dpy: PDisplay, glyphset: GlyphSet, gids: PGlyph,glyphs: PXGlyphInfo, nglyphs: int32, images: cstring,nbyte_images: int32){.libxrender.}proc XRenderFreeGlyphs*(dpy: PDisplay, glyphset: GlyphSet, gids: PGlyph,nglyphs: int32){.libxrender.}proc XRenderCompositeString8*(dpy: PDisplay, op: int32, src: Picture,dst: Picture, maskFormat: PXRenderPictFormat,glyphset: GlyphSet, xSrc: int32, ySrc: int32,xDst: int32, yDst: int32, str: cstring,nchar: int32){.libxrender.}# implementation
import x, xlibconstlibXrandr* = "libXrandr.so(.2|)"RR_HSyncPositive* = 0x00000001RR_HSyncNegative* = 0x00000002RR_VSyncPositive* = 0x00000004RR_VSyncNegative* = 0x00000008RR_Interlace* = 0x00000010RR_DoubleScan* = 0x00000020RR_CSync* = 0x00000040RR_CSyncPositive* = 0x00000080RR_CSyncNegative* = 0x00000100RR_HSkewPresent* = 0x00000200RR_BCast* = 0x00000400RR_PixelMultiplex* = 0x00000800RR_DoubleClock* = 0x00001000RR_ClockDivideBy2* = 0x00002000RR_Connected* = 0RR_Disconnected* = 1RR_UnknownConnection* = 2typePRotation* = ptr RotationRotation* = cushortPSizeID* = ptr SizeIDSizeID* = cushortPSubpixelOrder* = ptr SubpixelOrderSubpixelOrder* = cushortPRRCrtc* = ptr RRCrtcRRCrtc* = XIDPRROutput* = ptr RROutputRROutput* = XIDPRRMode* = ptr RRModeRRMode* = XIDPXRRModeFlags* = ptr XRRModeFlagsXRRModeFlags* = culongPConnection* = ptr ConnectionConnection* = cushort{.deprecated: [TRotation: Rotation].}{.deprecated: [TSizeID: SizeID].}{.deprecated: [TSubpixelOrder: SubpixelOrder].}{.deprecated: [TRRCrtc: RRCrtc].}{.deprecated: [TRROutput: RROutput].}{.deprecated: [TRRMode: RRMode].}{.deprecated: [TXRRModeFlags: XRRModeFlags].}{.deprecated: [TConnection: Connection].}constRANDR_NAME* = "RANDR"RANDR_MAJOR* = 1RANDR_MINOR* = 1RRNumberErrors* = 0RRNumberEvents* = 1constX_RRQueryVersion* = 0 # we skip 1 to make old clients fail pretty immediatelyX_RROldGetScreenInfo* = 1X_RR1_0SetScreenConfig* = 2 # V1.0 apps share the same set screen config request idconstX_RRSetScreenConfig* = 2X_RROldScreenChangeSelectInput* = 3 # 3 used to be ScreenChangeSelectInput: deprecatedconstX_RRSelectInput* = 4constX_RRGetScreenInfo* = 5 # used in XRRSelectInputRRScreenChangeNotifyMask* = 1 shl 0RRScreenChangeNotify* = 0 # used in the rotation field: rotation and reflection in 0.1 proto.RR_Rotate_0* = 1RR_Rotate_90* = 2RR_Rotate_180* = 4RR_Rotate_270* = 8 # new in 1.0 protocol, to allow reflection of screenRR_Reflect_X* = 16RR_Reflect_Y* = 32RRSetConfigSuccess* = 0RRSetConfigInvalidConfigTime* = 1RRSetConfigInvalidTime* = 2RRSetConfigFailed* = 3typePXRRScreenSize* = ptr XRRScreenSizeXRRScreenSize*{.bycopy.} = object ## Events.#width*, height*: cintmwidth*, mheight*: cintXRRScreenChangeNotifyEvent*{.bycopy.} = object # internal representation is private to the librarytyp*: cint # event baseserial*: culong # # of last request processed by serversend_event*: XBool # true if this came from a SendEvent requestdisplay*: PDisplay # Display the event was read fromwindow*: Window # window which selected for this eventroot*: Window # Root window for changed screentimestamp*: Time # when the screen change occurredconfig_timestamp*: Time # when the last configuration changesize_index*: SizeIDsubpixel_order*: SubpixelOrderrotation*: Rotationwidth*: cintheight*: cintmwidth*: cintmheight*: cintPXRRScreenConfiguration* = ptr XRRScreenConfigurationXRRScreenConfiguration* {.bycopy.} = objectPXRRModeInfo* = ptr XRRModeInfoXRRModeInfo* {.bycopy.} = objectid*: RRModewidth*, height*: cuintdotClock*: culonghSyncStart*: cuinthSyncEnd*: cuinthTotal*: cuinthSkew*: cuintvSyncStart*: cuintvSyncEnd*: cuintvTotal*: cuintname*: cstringnameLength*: cuintmodeFlags*: XRRModeFlagsPXRRScreenResources* = ptr XRRScreenResourcesXRRScreenResources* {.bycopy.} = objecttimestamp*, configTimestamp*: Timencrtc*: cintcrtcs*: ptr RRCrtcnoutput*: cintoutputs*: ptr RROutputnmode*: cintmodes*: ptr XRRModeInfoPXRROutputInfo* = ptr XRROutputInfoXRROutputInfo* {.bycopy.} = objecttimestamp*: Timecrtc*: RRCrtcname*: cstringnameLen*: cintmmWidth*, mmHeight*: culongconnection*: ConnectionsubpixelOrder*: SubpixelOrderncrtc*: cintcrtcs*: ptr UncheckedArray[RRCrtc]nclone*: cintclones*: ptr UncheckedArray[RROutput]nmode*: cintnpreferred*: cintmodes*: ptr UncheckedArray[RRMode]PXRRPropertyInfo* = ptr XRRPropertyInfoXRRPropertyInfo* {.bycopy.} = objectpending, range, immutable: boolnumValues: cintvalues: ptr UncheckedArray[clong]XRRCrtcInfo* {.bycopy.} = objecttimestamp*: Timex*, y*: intwidth*, height*: cuintmode*: RRModerotation*: Rotationnoutput*: intoutputs*: ptr UncheckedArray[RROutput]rotations*: Rotationnpossible*: intpossible*: ptr UncheckedArray[RROutput]RandrFormat* = enumrandrFormat16bit = 16, randrFormat32bit = 32{.deprecated: [TXRRScreenSize: XRRScreenSize].}{.deprecated: [TXRRScreenChangeNotifyEvent: XRRScreenChangeNotifyEvent].}{.deprecated: [TXRRScreenConfiguration: XRRScreenConfiguration].}{.deprecated: [TXRRModeInfo: XRRModeInfo].}{.deprecated: [TXRRScreenResources: XRRScreenResources].}{.deprecated: [TXRROutputInfo: XRROutputInfo].}{.deprecated: [TXRRPropertyInfo: XRRPropertyInfo].}proc XRRQueryExtension*(dpy: PDisplay, event_basep, error_basep: Pcint): XBool{.cdecl, importc.}proc XRRQueryVersion*(dpy: PDisplay, major_versionp: Pcint,minor_versionp: Pcint): Status{.cdecl,importc.}proc XRRQueryOutputProperty*(dpy: PDisplay, output: RROutput, property: Atom):PXRRPropertyInfo {.cdecl, importc.}proc XRRChangeOutputProperty*(dpy: PDisplay, output: RROutput,property, kind: Atom, format, mode: cint, data: ptr char, nelements: cint) {.cdecl, importc.}proc XRRGetScreenInfo*(dpy: PDisplay, draw: Drawable): PXRRScreenConfiguration{.cdecl, importc.}proc XRRFreeScreenConfigInfo*(config: PXRRScreenConfiguration){.cdecl,dynlib: libXrandr, importc.}## Note that screen configuration changes are only permitted if the client can# prove it has up to date configuration information. We are trying to# insist that it become possible for screens to change dynamically, so# we want to ensure the client knows what it is talking about when requesting# changes.#proc XRRSetScreenConfig*(dpy: PDisplay, config: PXRRScreenConfiguration,draw: Drawable, size_index: cint, rotation: Rotation,timestamp: Time): Status{.cdecl,importc.}# added in v1.1, sorry for the lame nameproc XRRSetScreenConfigAndRate*(dpy: PDisplay, config: PXRRScreenConfiguration,draw: Drawable, size_index: cint,rotation: Rotation, rate: cshort,timestamp: Time): Status{.cdecl,dynlib: libXrandr, importc.}proc XRRConfigRotations*(config: PXRRScreenConfiguration,current_rotation: PRotation): Rotation{.cdecl,dynlib: libXrandr, importc.}proc XRRConfigTimes*(config: PXRRScreenConfiguration, config_timestamp: PTime): Time{.cdecl, importc.}proc XRRConfigSizes*(config: PXRRScreenConfiguration, nsizes: Pcint): PXRRScreenSize{.cdecl, importc.}proc XRRConfigRates*(config: PXRRScreenConfiguration, sizeID: cint,nrates: Pcint): ptr int16{.cdecl, importc.}proc XRRConfigCurrentConfiguration*(config: PXRRScreenConfiguration,rotation: PRotation): SizeID{.cdecl,dynlib: libXrandr, importc.}proc XRRConfigCurrentRate*(config: PXRRScreenConfiguration): cshort{.cdecl,dynlib: libXrandr, importc.}proc XRRRootToScreen*(dpy: PDisplay, root: Window): cint{.cdecl,dynlib: libXrandr, importc.}## returns the screen configuration for the specified screen: does a lazy# evalution to delay getting the information, and caches the result.# These routines should be used in preference to XRRGetScreenInfo# to avoid unneeded round trips to the X server. These are new# in protocol version 0.1.#proc XRRScreenConfig*(dpy: PDisplay, screen: cint): PXRRScreenConfiguration{.cdecl, importc.}proc XRRConfig*(screen: PScreen): PXRRScreenConfiguration{.cdecl,dynlib: libXrandr, importc.}proc XRRSelectInput*(dpy: PDisplay, window: Window, mask: cint){.cdecl,dynlib: libXrandr, importc.}## the following are always safe to call, even if RandR is not implemented# on a screen#proc XRRRotations*(dpy: PDisplay, screen: cint, current_rotation: PRotation): Rotation{.cdecl, importc.}proc XRRSizes*(dpy: PDisplay, screen: cint, nsizes: Pcint): PXRRScreenSize{.cdecl, importc.}proc XRRRates*(dpy: PDisplay, screen: cint, sizeID: cint, nrates: Pcint): ptr int16{.cdecl, importc.}proc XRRTimes*(dpy: PDisplay, screen: cint, config_timestamp: PTime): Time{.cdecl, importc.}proc XRRUpdateConfiguration*(event: PXEvent): cint{.cdecl, importc.}proc XRRGetScreenResourcesCurrent*(dpy: PDisplay, win: Window): PXRRScreenResources {.cdecl, importc.}proc XRRFreeScreenResources*(res: PXRRScreenResources) {.cdecl, importc.}proc XRRGetOutputInfo*(dpy: PDisplay, res: PXRRScreenResources, ret: RROutput): PXRROutputInfo {.cdecl, importc.}proc XRRFreeOutputInfo*(info: PXRROutputInfo) {.cdecl, importc.}# addedproc XRRGetCrtcInfo*(dpy: ptr Display, resources: ptr XRRScreenResources, crtc: RRCrtc): ptr XRRCrtcInfo {.importc, cdecl.}
importxinclude "x11pragma.nim"typecunsigned* = cintPcint* = ptr cintPPcint* = ptr PcintPPcuchar* = ptr ptr charPWideChar* = ptr int16PPChar* = ptr cstringPPPChar* = ptr ptr cstringPculong* = ptr culongPcuchar* = cstringPcuint* = ptr cuintPcushort* = ptr uint16# Automatically converted by H2Pas 0.99.15 from xlib.h# The following command line parameters were used:# -p# -T# -S# -d# -c# xlib.hconstXlibSpecificationRelease* = 6typePXPointer* = ptr XPointerXPointer* = ptr charPBool* = ptr XBoolXBool* = cintPStatus* = ptr StatusStatus* = cint{.deprecated: [TXPointer: XPointer].}{.deprecated: [TXBool: XBool].}{.deprecated: [TStatus: Status].}constQueuedAlready* = 0QueuedAfterReading* = 1QueuedAfterFlush* = 2typePPXExtData* = ptr PXExtDataPXExtData* = ptr XExtDataXExtData*{.final.} = objectnumber*: cintnext*: PXExtDatafree_private*: proc (extension: PXExtData): cint{.cdecl.}private_data*: XPointerPXExtCodes* = ptr XExtCodesXExtCodes*{.final.} = objectextension*: cintmajor_opcode*: cintfirst_event*: cintfirst_error*: cintPXPixmapFormatValues* = ptr XPixmapFormatValuesXPixmapFormatValues*{.final.} = objectdepth*: cintbits_per_pixel*: cintscanline_pad*: cintPXGCValues* = ptr XGCValuesXGCValues*{.final.} = objectfunction*: cintplane_mask*: culongforeground*: culongbackground*: culongline_width*: cintline_style*: cintcap_style*: cintjoin_style*: cintfill_style*: cintfill_rule*: cintarc_mode*: cinttile*: Pixmapstipple*: Pixmapts_x_origin*: cintts_y_origin*: cintfont*: Fontsubwindow_mode*: cintgraphics_exposures*: XBoolclip_x_origin*: cintclip_y_origin*: cintclip_mask*: Pixmapdash_offset*: cintdashes*: ccharPXGC* = ptr XGCXGC*{.final.} = objectGC* = PXGCPGC* = ptr GCPVisual* = ptr VisualVisual*{.final.} = objectext_data*: PXExtDatavisualid*: VisualIDc_class*: cintred_mask*, green_mask*, blue_mask*: culongbits_per_rgb*: cintmap_entries*: cintPDepth* = ptr DepthDepth*{.final.} = objectdepth*: cintnvisuals*: cintvisuals*: PVisualPXDisplay* = ptr XDisplayXDisplay*{.final.} = objectPScreen* = ptr ScreenScreen*{.final.} = objectext_data*: PXExtDatadisplay*: PXDisplayroot*: Windowwidth*, height*: cintmwidth*, mheight*: cintndepths*: cintdepths*: PDepthroot_depth*: cintroot_visual*: PVisualdefault_gc*: GCcmap*: Colormapwhite_pixel*: culongblack_pixel*: culongmax_maps*, min_maps*: cintbacking_store*: cintsave_unders*: XBoolroot_input_mask*: clongPScreenFormat* = ptr ScreenFormatScreenFormat*{.final.} = objectext_data*: PXExtDatadepth*: cintbits_per_pixel*: cintscanline_pad*: cintPXSetWindowAttributes* = ptr XSetWindowAttributesXSetWindowAttributes*{.final.} = objectbackground_pixmap*: Pixmapbackground_pixel*: culongborder_pixmap*: Pixmapborder_pixel*: culongbit_gravity*: cintwin_gravity*: cintbacking_store*: cintbacking_planes*: culongbacking_pixel*: culongsave_under*: XBoolevent_mask*: clongdo_not_propagate_mask*: clongoverride_redirect*: XBoolcolormap*: Colormapcursor*: CursorPXWindowAttributes* = ptr XWindowAttributesXWindowAttributes*{.final.} = objectx*, y*: cintwidth*, height*: cintborder_width*: cintdepth*: cintvisual*: PVisualroot*: Windowc_class*: cintbit_gravity*: cintwin_gravity*: cintbacking_store*: cintbacking_planes*: culongbacking_pixel*: culongsave_under*: XBoolcolormap*: Colormapmap_installed*: XBoolmap_state*: cintall_event_masks*: clongyour_event_mask*: clongdo_not_propagate_mask*: clongoverride_redirect*: XBoolscreen*: PScreenPXHostAddress* = ptr XHostAddressXHostAddress*{.final.} = objectfamily*: cintlen*: cintaddress*: cstringPXServerInterpretedAddress* = ptr XServerInterpretedAddressXServerInterpretedAddress*{.final.} = objecttypelength*: cintvaluelength*: cinttheType*: cstringvalue*: cstringPXImage* = ptr XImageF*{.final.} = objectcreate_image*: proc (para1: PXDisplay, para2: PVisual, para3: cuint,para4: cint, para5: cint, para6: cstring, para7: cuint,para8: cuint, para9: cint, para10: cint): PXImage{.cdecl.}destroy_image*: proc (para1: PXImage): cint{.cdecl.}get_pixel*: proc (para1: PXImage, para2: cint, para3: cint): culong{.cdecl.}put_pixel*: proc (para1: PXImage, para2: cint, para3: cint, para4: culong): cint{.cdecl.}sub_image*: proc (para1: PXImage, para2: cint, para3: cint, para4: cuint,para5: cuint): PXImage{.cdecl.}add_pixel*: proc (para1: PXImage, para2: clong): cint{.cdecl.}XImage*{.final.} = objectwidth*, height*: cintxoffset*: cintformat*: cintdata*: cstringbyte_order*: cintbitmap_unit*: cintbitmap_bit_order*: cintbitmap_pad*: cintdepth*: cintbytes_per_line*: cintbits_per_pixel*: cintred_mask*: culonggreen_mask*: culongblue_mask*: culongobdata*: XPointerf*: FPXWindowChanges* = ptr XWindowChangesXWindowChanges*{.final.} = objectx*, y*: cintwidth*, height*: cintborder_width*: cintsibling*: Windowstack_mode*: cintPXColor* = ptr XColorXColor*{.final.} = objectpixel*: culongred*, green*, blue*: cushortflags*: ccharpad*: ccharPXSegment* = ptr XSegmentXSegment*{.final.} = objectx1*, y1*, x2*, y2*: cshortPXPoint* = ptr XPointXPoint*{.final.} = objectx*, y*: cshortPXRectangle* = ptr XRectangleXRectangle*{.final.} = objectx*, y*: cshortwidth*, height*: cushortPXArc* = ptr XArcXArc*{.final.} = objectx*, y*: cshortwidth*, height*: cushortangle1*, angle2*: cshortPXKeyboardControl* = ptr XKeyboardControlXKeyboardControl*{.final.} = objectkey_click_percent*: cintbell_percent*: cintbell_pitch*: cintbell_duration*: cintled*: cintled_mode*: cintkey*: cintauto_repeat_mode*: cintPXKeyboardState* = ptr XKeyboardStateXKeyboardState*{.final.} = objectkey_click_percent*: cintbell_percent*: cintbell_pitch*, bell_duration*: cuintled_mask*: culongglobal_auto_repeat*: cintauto_repeats*: array[0..31, cchar]PXTimeCoord* = ptr XTimeCoordXTimeCoord*{.final.} = objecttime*: Timex*, y*: cshortPXModifierKeymap* = ptr XModifierKeymapXModifierKeymap*{.final.} = objectmax_keypermod*: cintmodifiermap*: PKeyCodePDisplay* = ptr DisplayDisplay* = XDisplayPXPrivate* = ptr PrivatePrivate*{.final.} = objectPXrmHashBucketRec* = ptr XrmHashBucketRecXrmHashBucketRec*{.final.} = objectPXPrivDisplay* = ptr XPrivDisplayXPrivDisplay*{.final.} = objectext_data*: PXExtDataprivate1*: PXPrivatefd*: cintprivate2*: cintproto_major_version*: cintproto_minor_version*: cintvendor*: cstringprivate3*: XIDprivate4*: XIDprivate5*: XIDprivate6*: cintresource_alloc*: proc (para1: PXDisplay): XID{.cdecl.}byte_order*: cintbitmap_unit*: cintbitmap_pad*: cintbitmap_bit_order*: cintnformats*: cintpixmap_format*: PScreenFormatprivate8*: cintrelease*: cintprivate9*, private10*: PXPrivateqlen*: cintlast_request_read*: culongrequest*: culongprivate11*: XPointerprivate12*: XPointerprivate13*: XPointerprivate14*: XPointermax_request_size*: cunsigneddb*: PXrmHashBucketRecprivate15*: proc (para1: PXDisplay): cint{.cdecl.}display_name*: cstringdefault_screen*: cintnscreens*: cintscreens*: PScreenmotion_buffer*: culongprivate16*: culongmin_keycode*: cintmax_keycode*: cintprivate17*: XPointerprivate18*: XPointerprivate19*: cintxdefaults*: cstringPXKeyEvent* = ptr XKeyEventXKeyEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowroot*: Windowsubwindow*: Windowtime*: Timex*, y*: cintx_root*, y_root*: cintstate*: cuintkeycode*: cuintsame_screen*: XBoolPXKeyPressedEvent* = ptr XKeyPressedEventXKeyPressedEvent* = XKeyEventPXKeyReleasedEvent* = ptr XKeyReleasedEventXKeyReleasedEvent* = XKeyEventPXButtonEvent* = ptr XButtonEventXButtonEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowroot*: Windowsubwindow*: Windowtime*: Timex*, y*: cintx_root*, y_root*: cintstate*: cuintbutton*: cuintsame_screen*: XBoolPXButtonPressedEvent* = ptr XButtonPressedEventXButtonPressedEvent* = XButtonEventPXButtonReleasedEvent* = ptr XButtonReleasedEventXButtonReleasedEvent* = XButtonEventPXMotionEvent* = ptr XMotionEventXMotionEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowroot*: Windowsubwindow*: Windowtime*: Timex*, y*: cintx_root*, y_root*: cintstate*: cuintis_hint*: ccharsame_screen*: XBoolPXPointerMovedEvent* = ptr XPointerMovedEventXPointerMovedEvent* = XMotionEventPXCrossingEvent* = ptr XCrossingEventXCrossingEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowroot*: Windowsubwindow*: Windowtime*: Timex*, y*: cintx_root*, y_root*: cintmode*: cintdetail*: cintsame_screen*: XBoolfocus*: XBoolstate*: cuintPXEnterWindowEvent* = ptr XEnterWindowEventXEnterWindowEvent* = XCrossingEventPXLeaveWindowEvent* = ptr XLeaveWindowEventXLeaveWindowEvent* = XCrossingEventPXFocusChangeEvent* = ptr XFocusChangeEventXFocusChangeEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowmode*: cintdetail*: cintPXFocusInEvent* = ptr XFocusInEventXFocusInEvent* = XFocusChangeEventPXFocusOutEvent* = ptr XFocusOutEventXFocusOutEvent* = XFocusChangeEventPXKeymapEvent* = ptr XKeymapEventXKeymapEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowkey_vector*: array[0..31, cchar]PXExposeEvent* = ptr XExposeEventXExposeEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowx*, y*: cintwidth*, height*: cintcount*: cintPXGraphicsExposeEvent* = ptr XGraphicsExposeEventXGraphicsExposeEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaydrawable*: Drawablex*, y*: cintwidth*, height*: cintcount*: cintmajor_code*: cintminor_code*: cintPXNoExposeEvent* = ptr XNoExposeEventXNoExposeEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaydrawable*: Drawablemajor_code*: cintminor_code*: cintPXVisibilityEvent* = ptr XVisibilityEventXVisibilityEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowstate*: cintPXCreateWindowEvent* = ptr XCreateWindowEventXCreateWindowEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayparent*: Windowwindow*: Windowx*, y*: cintwidth*, height*: cintborder_width*: cintoverride_redirect*: XBoolPXDestroyWindowEvent* = ptr XDestroyWindowEventXDestroyWindowEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: WindowPXUnmapEvent* = ptr XUnmapEventXUnmapEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: Windowfrom_configure*: XBoolPXMapEvent* = ptr XMapEventXMapEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: Windowoverride_redirect*: XBoolPXMapRequestEvent* = ptr XMapRequestEventXMapRequestEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayparent*: Windowwindow*: WindowPXReparentEvent* = ptr XReparentEventXReparentEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: Windowparent*: Windowx*, y*: cintoverride_redirect*: XBoolPXConfigureEvent* = ptr XConfigureEventXConfigureEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: Windowx*, y*: cintwidth*, height*: cintborder_width*: cintabove*: Windowoverride_redirect*: XBoolPXGravityEvent* = ptr XGravityEventXGravityEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: Windowx*, y*: cintPXResizeRequestEvent* = ptr XResizeRequestEventXResizeRequestEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowwidth*, height*: cintPXConfigureRequestEvent* = ptr XConfigureRequestEventXConfigureRequestEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayparent*: Windowwindow*: Windowx*, y*: cintwidth*, height*: cintborder_width*: cintabove*: Windowdetail*: cintvalue_mask*: culongPXCirculateEvent* = ptr XCirculateEventXCirculateEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayevent*: Windowwindow*: Windowplace*: cintPXCirculateRequestEvent* = ptr XCirculateRequestEventXCirculateRequestEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayparent*: Windowwindow*: Windowplace*: cintPXPropertyEvent* = ptr XPropertyEventXPropertyEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowatom*: Atomtime*: Timestate*: cintPXSelectionClearEvent* = ptr XSelectionClearEventXSelectionClearEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowselection*: Atomtime*: TimePXSelectionRequestEvent* = ptr XSelectionRequestEventXSelectionRequestEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayowner*: Windowrequestor*: Windowselection*: Atomtarget*: Atomproperty*: Atomtime*: TimePXSelectionEvent* = ptr XSelectionEventXSelectionEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplayrequestor*: Windowselection*: Atomtarget*: Atomproperty*: Atomtime*: TimePXColormapEvent* = ptr XColormapEventXColormapEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowcolormap*: Colormapc_new*: XBoolstate*: cintPXClientMessageEvent* = ptr XClientMessageEventXClientMessageData* {.union.} = objectb*: array[20, cchar]s*: array[10, cshort]l*: array[5, clong]XClientMessageEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowmessage_type*: Atomformat*: cintdata*: XClientMessageDataPXMappingEvent* = ptr XMappingEventXMappingEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: Windowrequest*: cintfirst_keycode*: cintcount*: cintPXErrorEvent* = ptr XErrorEventXErrorEvent*{.final.} = objecttheType*: cintdisplay*: PDisplayresourceid*: XIDserial*: culongerror_code*: charrequest_code*: charminor_code*: charPXAnyEvent* = ptr XAnyEventXAnyEvent*{.final.} = objecttheType*: cintserial*: culongsend_event*: XBooldisplay*: PDisplaywindow*: WindowPXGenericEvent* = ptr XGenericEventXGenericEvent*{.final.} = objecttheType*: cint ## of event. Always GenericEventserial*: culong ## # of last request processedsend_event*: XBool ## true if from SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## major opcode of extension that caused the eventevtype*: cint ## actual event type.PXGenericEventCookie* = ptr XGenericEventCookieXGenericEventCookie*{.final.} = objecttheType*: cint ## of event. Always GenericEventserial*: culong ## # of last request processedsend_event*: XBool ## true if from SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## major opcode of extension that caused the eventevtype*: cint ## actual event type.cookie*: cuintdata*: pointerPXEvent* = ptr XEventXEvent*{.final, union.} = objecttheType*: cintxany*: XAnyEventxkey*: XKeyEventxbutton*: XButtonEventxmotion*: XMotionEventxcrossing*: XCrossingEventxfocus*: XFocusChangeEventxexpose*: XExposeEventxgraphicsexpose*: XGraphicsExposeEventxnoexpose*: XNoExposeEventxvisibility*: XVisibilityEventxcreatewindow*: XCreateWindowEventxdestroywindow*: XDestroyWindowEventxunmap*: XUnmapEventxmap*: XMapEventxmaprequest*: XMapRequestEventxreparent*: XReparentEventxconfigure*: XConfigureEventxgravity*: XGravityEventxresizerequest*: XResizeRequestEventxconfigurerequest*: XConfigureRequestEventxcirculate*: XCirculateEventxcirculaterequest*: XCirculateRequestEventxproperty*: XPropertyEventxselectionclear*: XSelectionClearEventxselectionrequest*: XSelectionRequestEventxselection*: XSelectionEventxcolormap*: XColormapEventxclient*: XClientMessageEventxmapping*: XMappingEventxerror*: XErrorEventxkeymap*: XKeymapEventxgeneric*: XGenericEventxcookie*: XGenericEventCookiepad: array[0..23, clong]{.deprecated: [TXExtData: XExtData].}{.deprecated: [TXExtCodes: XExtCodes].}{.deprecated: [TXPixmapFormatValues: XPixmapFormatValues].}{.deprecated: [TXGCValues: XGCValues].}{.deprecated: [TXGC: XGC].}{.deprecated: [TGC: GC].}{.deprecated: [TVisual: Visual].}{.deprecated: [TDepth: Depth].}{.deprecated: [TXDisplay: XDisplay].}{.deprecated: [TScreen: Screen].}{.deprecated: [TScreenFormat: ScreenFormat].}{.deprecated: [TXSetWindowAttributes: XSetWindowAttributes].}{.deprecated: [TXWindowAttributes: XWindowAttributes].}{.deprecated: [TXHostAddress: XHostAddress].}{.deprecated: [TXServerInterpretedAddress: XServerInterpretedAddress].}{.deprecated: [TF: F].}{.deprecated: [TXImage: XImage].}{.deprecated: [TXWindowChanges: XWindowChanges].}{.deprecated: [TXColor: XColor].}{.deprecated: [TXSegment: XSegment].}{.deprecated: [TXPoint: XPoint].}{.deprecated: [TXRectangle: XRectangle].}{.deprecated: [TXArc: XArc].}{.deprecated: [TXKeyboardControl: XKeyboardControl].}{.deprecated: [TXKeyboardState: XKeyboardState].}{.deprecated: [TXTimeCoord: XTimeCoord].}{.deprecated: [TXModifierKeymap: XModifierKeymap].}{.deprecated: [TDisplay: Display].}{.deprecated: [TPrivate: Private].}{.deprecated: [TXrmHashBucketRec: XrmHashBucketRec].}{.deprecated: [TXPrivDisplay: XPrivDisplay].}{.deprecated: [TXKeyEvent: XKeyEvent].}{.deprecated: [TXKeyPressedEvent: XKeyPressedEvent].}{.deprecated: [TXKeyReleasedEvent: XKeyReleasedEvent].}{.deprecated: [TXButtonEvent: XButtonEvent].}{.deprecated: [TXButtonPressedEvent: XButtonPressedEvent].}{.deprecated: [TXButtonReleasedEvent: XButtonReleasedEvent].}{.deprecated: [TXMotionEvent: XMotionEvent].}{.deprecated: [TXPointerMovedEvent: XPointerMovedEvent].}{.deprecated: [TXCrossingEvent: XCrossingEvent].}{.deprecated: [TXEnterWindowEvent: XEnterWindowEvent].}{.deprecated: [TXLeaveWindowEvent: XLeaveWindowEvent].}{.deprecated: [TXFocusChangeEvent: XFocusChangeEvent].}{.deprecated: [TXFocusInEvent: XFocusInEvent].}{.deprecated: [TXFocusOutEvent: XFocusOutEvent].}{.deprecated: [TXKeymapEvent: XKeymapEvent].}{.deprecated: [TXExposeEvent: XExposeEvent].}{.deprecated: [TXGraphicsExposeEvent: XGraphicsExposeEvent].}{.deprecated: [TXNoExposeEvent: XNoExposeEvent].}{.deprecated: [TXVisibilityEvent: XVisibilityEvent].}{.deprecated: [TXCreateWindowEvent: XCreateWindowEvent].}{.deprecated: [TXDestroyWindowEvent: XDestroyWindowEvent].}{.deprecated: [TXUnmapEvent: XUnmapEvent].}{.deprecated: [TXMapEvent: XMapEvent].}{.deprecated: [TXMapRequestEvent: XMapRequestEvent].}{.deprecated: [TXReparentEvent: XReparentEvent].}{.deprecated: [TXConfigureEvent: XConfigureEvent].}{.deprecated: [TXGravityEvent: XGravityEvent].}{.deprecated: [TXResizeRequestEvent: XResizeRequestEvent].}{.deprecated: [TXConfigureRequestEvent: XConfigureRequestEvent].}{.deprecated: [TXCirculateEvent: XCirculateEvent].}{.deprecated: [TXCirculateRequestEvent: XCirculateRequestEvent].}{.deprecated: [TXPropertyEvent: XPropertyEvent].}{.deprecated: [TXSelectionClearEvent: XSelectionClearEvent].}{.deprecated: [TXSelectionRequestEvent: XSelectionRequestEvent].}{.deprecated: [TXSelectionEvent: XSelectionEvent].}{.deprecated: [TXColormapEvent: XColormapEvent].}{.deprecated: [TXClientMessageData: XClientMessageData].}{.deprecated: [TXClientMessageEvent: XClientMessageEvent].}{.deprecated: [TXMappingEvent: XMappingEvent].}{.deprecated: [TXErrorEvent: XErrorEvent].}{.deprecated: [TXAnyEvent: XAnyEvent].}{.deprecated: [TXEvent: XEvent].}typePXCharStruct* = ptr XCharStructXCharStruct*{.final.} = objectlbearing*: cshortrbearing*: cshortwidth*: cshortascent*: cshortdescent*: cshortattributes*: cushortPXFontProp* = ptr XFontPropXFontProp*{.final.} = objectname*: Atomcard32*: culongPPPXFontStruct* = ptr PPXFontStructPPXFontStruct* = ptr PXFontStructPXFontStruct* = ptr XFontStructXFontStruct*{.final.} = objectext_data*: PXExtDatafid*: Fontdirection*: cunsignedmin_char_or_byte2*: cunsignedmax_char_or_byte2*: cunsignedmin_byte1*: cunsignedmax_byte1*: cunsignedall_chars_exist*: XBooldefault_char*: cunsignedn_properties*: cintproperties*: PXFontPropmin_bounds*: XCharStructmax_bounds*: XCharStructper_char*: PXCharStructascent*: cintdescent*: cintPXTextItem* = ptr XTextItemXTextItem*{.final.} = objectchars*: cstringnchars*: cintdelta*: cintfont*: FontPXChar2b* = ptr XChar2bXChar2b*{.final.} = objectbyte1*: charbyte2*: charPXTextItem16* = ptr XTextItem16XTextItem16*{.final.} = objectchars*: PXChar2bnchars*: cintdelta*: cintfont*: FontPXEDataObject* = ptr XEDataObjectXEDataObject*{.final.} = objectdisplay*: PDisplay # case longint of# 0 : ( display : PDisplay );# 1 : ( gc : GC );# 2 : ( visual : PVisual );# 3 : ( screen : PScreen );# 4 : ( pixmap_format : PScreenFormat );# 5 : ( font : PXFontStruct );PXFontSetExtents* = ptr XFontSetExtentsXFontSetExtents*{.final.} = objectmax_ink_extent*: XRectanglemax_logical_extent*: XRectanglePXOM* = ptr XOMXOM*{.final.} = objectPXOC* = ptr XOCXOC*{.final.} = objectPXFontSet* = ptr XFontSetXFontSet* = PXOCPXmbTextItem* = ptr XmbTextItemXmbTextItem*{.final.} = objectchars*: cstringnchars*: cintdelta*: cintfont_set*: XFontSetPXwcTextItem* = ptr XwcTextItemXwcTextItem*{.final.} = objectchars*: PWideChar #wchar_t*nchars*: cintdelta*: cintfont_set*: XFontSet{.deprecated: [TXCharStruct: XCharStruct].}{.deprecated: [TXFontProp: XFontProp].}{.deprecated: [TXFontStruct: XFontStruct].}{.deprecated: [TXTextItem: XTextItem].}{.deprecated: [TXChar2b: XChar2b].}{.deprecated: [TXTextItem16: XTextItem16].}{.deprecated: [TXEDataObject: XEDataObject].}{.deprecated: [TXFontSetExtents: XFontSetExtents].}{.deprecated: [TXOM: XOM].}{.deprecated: [TXOC: XOC].}{.deprecated: [TXFontSet: XFontSet].}{.deprecated: [TXmbTextItem: XmbTextItem].}{.deprecated: [TXwcTextItem: XwcTextItem].}constXNRequiredCharSet* = "requiredCharSet"XNQueryOrientation* = "queryOrientation"XNBaseFontName* = "baseFontName"XNOMAutomatic* = "omAutomatic"XNMissingCharSet* = "missingCharSet"XNDefaultString* = "defaultString"XNOrientation* = "orientation"XNDirectionalDependentDrawing* = "directionalDependentDrawing"XNContextualDrawing* = "contextualDrawing"XNFontInfo* = "fontInfo"typePXOMCharSetList* = ptr XOMCharSetListXOMCharSetList*{.final.} = objectcharset_count*: cintcharset_list*: PPCharPXOrientation* = ptr XOrientationXOrientation* = enumXOMOrientation_LTR_TTB, XOMOrientation_RTL_TTB, XOMOrientation_TTB_LTR,XOMOrientation_TTB_RTL, XOMOrientation_ContextPXOMOrientation* = ptr XOMOrientationXOMOrientation*{.final.} = objectnum_orientation*: cintorientation*: PXOrientationPXOMFontInfo* = ptr XOMFontInfoXOMFontInfo*{.final.} = objectnum_font*: cintfont_struct_list*: ptr PXFontStructfont_name_list*: PPCharXIM*{.final.} = ptr objectXIC*{.final.} = ptr objectXIMProc* = proc (para1: XIM, para2: XPointer, para3: XPointer){.cdecl.}XICProc* = proc (para1: XIC, para2: XPointer, para3: XPointer): XBool{.cdecl.}XIDProc* = proc (para1: PDisplay, para2: XPointer, para3: XPointer){.cdecl.}PXIMStyle* = ptr XIMStyleXIMStyle* = culongPXIMStyles* = ptr XIMStylesXIMStyles*{.final.} = objectcount_styles*: cushortsupported_styles*: PXIMStyle{.deprecated: [TXOMCharSetList: XOMCharSetList].}{.deprecated: [TXOrientation: XOrientation].}{.deprecated: [TXOMOrientation: XOMOrientation].}{.deprecated: [TXOMFontInfo: XOMFontInfo].}{.deprecated: [TXIM: XIM].}{.deprecated: [TXIC: XIC].}{.deprecated: [TXIMProc: XIMProc].}{.deprecated: [TXICProc: XICProc].}{.deprecated: [TXIDProc: XIDProc].}{.deprecated: [TXIMStyle: XIMStyle].}{.deprecated: [TXIMStyles: XIMStyles].}constXIMPreeditArea* = 0x00000001XIMPreeditCallbacks* = 0x00000002XIMPreeditPosition* = 0x00000004XIMPreeditNothing* = 0x00000008XIMPreeditNone* = 0x00000010XIMStatusArea* = 0x00000100XIMStatusCallbacks* = 0x00000200XIMStatusNothing* = 0x00000400XIMStatusNone* = 0x00000800XNVaNestedList* = "XNVaNestedList"XNQueryInputStyle* = "queryInputStyle"XNClientWindow* = "clientWindow"XNInputStyle* = "inputStyle"XNFocusWindow* = "focusWindow"XNResourceName* = "resourceName"XNResourceClass* = "resourceClass"XNGeometryCallback* = "geometryCallback"XNDestroyCallback* = "destroyCallback"XNFilterEvents* = "filterEvents"XNPreeditStartCallback* = "preeditStartCallback"XNPreeditDoneCallback* = "preeditDoneCallback"XNPreeditDrawCallback* = "preeditDrawCallback"XNPreeditCaretCallback* = "preeditCaretCallback"XNPreeditStateNotifyCallback* = "preeditStateNotifyCallback"XNPreeditAttributes* = "preeditAttributes"XNStatusStartCallback* = "statusStartCallback"XNStatusDoneCallback* = "statusDoneCallback"XNStatusDrawCallback* = "statusDrawCallback"XNStatusAttributes* = "statusAttributes"XNArea* = "area"XNAreaNeeded* = "areaNeeded"XNSpotLocation* = "spotLocation"XNColormap* = "colorMap"XNStdColormap* = "stdColorMap"XNForeground* = "foreground"XNBackground* = "background"XNBackgroundPixmap* = "backgroundPixmap"XNFontSet* = "fontSet"XNLineSpace* = "lineSpace"XNCursor* = "cursor"XNQueryIMValuesList* = "queryIMValuesList"XNQueryICValuesList* = "queryICValuesList"XNVisiblePosition* = "visiblePosition"XNR6PreeditCallback* = "r6PreeditCallback"XNStringConversionCallback* = "stringConversionCallback"XNStringConversion* = "stringConversion"XNResetState* = "resetState"XNHotKey* = "hotKey"XNHotKeyState* = "hotKeyState"XNPreeditState* = "preeditState"XNSeparatorofNestedList* = "separatorofNestedList"XBufferOverflow* = - (1)XLookupNone* = 1XLookupChars* = 2XLookupKeySymVal* = 3XLookupBoth* = 4typePXVaNestedList* = ptr XVaNestedListXVaNestedList* = pointerPXIMCallback* = ptr XIMCallbackXIMCallback*{.final.} = objectclient_data*: XPointercallback*: XIMProcPXICCallback* = ptr XICCallbackXICCallback*{.final.} = objectclient_data*: XPointercallback*: XICProcPXIMFeedback* = ptr XIMFeedbackXIMFeedback* = culong{.deprecated: [TXVaNestedList: XVaNestedList].}{.deprecated: [TXIMCallback: XIMCallback].}{.deprecated: [TXICCallback: XICCallback].}{.deprecated: [TXIMFeedback: XIMFeedback].}constXIMReverse* = 1XIMUnderline* = 1 shl 1XIMHighlight* = 1 shl 2XIMPrimary* = 1 shl 5XIMSecondary* = 1 shl 6XIMTertiary* = 1 shl 7XIMVisibleToForward* = 1 shl 8XIMVisibleToBackword* = 1 shl 9XIMVisibleToCenter* = 1 shl 10typePXIMText* = ptr XIMTextXIMText*{.final.} = objectlen*: cushortfeedback*: PXIMFeedbackencoding_is_wchar*: XBoolmulti_byte*: cstringPXIMPreeditState* = ptr XIMPreeditStateXIMPreeditState* = culong{.deprecated: [TXIMText: XIMText].}{.deprecated: [TXIMPreeditState: XIMPreeditState].}constXIMPreeditUnKnown* = 0XIMPreeditEnable* = 1XIMPreeditDisable* = 1 shl 1typePXIMPreeditStateNotifyCallbackStruct* = ptr XIMPreeditStateNotifyCallbackStructXIMPreeditStateNotifyCallbackStruct*{.final.} = objectstate*: XIMPreeditStatePXIMResetState* = ptr XIMResetStateXIMResetState* = culong{.deprecated: [TXIMPreeditStateNotifyCallbackStruct: XIMPreeditStateNotifyCallbackStruct].}{.deprecated: [TXIMResetState: XIMResetState].}constXIMInitialState* = 1XIMPreserveState* = 1 shl 1typePXIMStringConversionFeedback* = ptr XIMStringConversionFeedbackXIMStringConversionFeedback* = culong{.deprecated: [TXIMStringConversionFeedback: XIMStringConversionFeedback].}constXIMStringConversionLeftEdge* = 0x00000001XIMStringConversionRightEdge* = 0x00000002XIMStringConversionTopEdge* = 0x00000004XIMStringConversionBottomEdge* = 0x00000008XIMStringConversionConcealed* = 0x00000010XIMStringConversionWrapped* = 0x00000020typePXIMStringConversionText* = ptr XIMStringConversionTextXIMStringConversionText*{.final.} = objectlen*: cushortfeedback*: PXIMStringConversionFeedbackencoding_is_wchar*: XBoolmbs*: cstringPXIMStringConversionPosition* = ptr XIMStringConversionPositionXIMStringConversionPosition* = cushortPXIMStringConversionType* = ptr XIMStringConversionTypeXIMStringConversionType* = cushort{.deprecated: [TXIMStringConversionText: XIMStringConversionText].}{.deprecated: [TXIMStringConversionPosition: XIMStringConversionPosition].}{.deprecated: [TXIMStringConversionType: XIMStringConversionType].}constXIMStringConversionBuffer* = 0x00000001XIMStringConversionLine* = 0x00000002XIMStringConversionWord* = 0x00000003XIMStringConversionChar* = 0x00000004typePXIMStringConversionOperation* = ptr XIMStringConversionOperationXIMStringConversionOperation* = cushort{.deprecated: [TXIMStringConversionOperation: XIMStringConversionOperation].}constXIMStringConversionSubstitution* = 0x00000001XIMStringConversionRetrieval* = 0x00000002typePXIMCaretDirection* = ptr XIMCaretDirectionXIMCaretDirection* = enumXIMForwardChar, XIMBackwardChar, XIMForwardWord, XIMBackwardWord,XIMCaretUp, XIMCaretDown, XIMNextLine, XIMPreviousLine, XIMLineStart,XIMLineEnd, XIMAbsolutePosition, XIMDontChangePXIMStringConversionCallbackStruct* = ptr XIMStringConversionCallbackStructXIMStringConversionCallbackStruct*{.final.} = objectposition*: XIMStringConversionPositiondirection*: XIMCaretDirectionoperation*: XIMStringConversionOperationfactor*: cushorttext*: PXIMStringConversionTextPXIMPreeditDrawCallbackStruct* = ptr XIMPreeditDrawCallbackStructXIMPreeditDrawCallbackStruct*{.final.} = objectcaret*: cintchg_first*: cintchg_length*: cinttext*: PXIMTextPXIMCaretStyle* = ptr XIMCaretStyleXIMCaretStyle* = enumXIMIsInvisible, XIMIsPrimary, XIMIsSecondaryPXIMPreeditCaretCallbackStruct* = ptr XIMPreeditCaretCallbackStructXIMPreeditCaretCallbackStruct*{.final.} = objectposition*: cintdirection*: XIMCaretDirectionstyle*: XIMCaretStylePXIMStatusDataType* = ptr XIMStatusDataTypeXIMStatusDataType* = enumXIMTextType, XIMBitmapTypePXIMStatusDrawCallbackStruct* = ptr XIMStatusDrawCallbackStructXIMStatusDrawCallbackStruct*{.final.} = objecttheType*: XIMStatusDataTypebitmap*: PixmapPXIMHotKeyTrigger* = ptr XIMHotKeyTriggerXIMHotKeyTrigger*{.final.} = objectkeysym*: KeySymmodifier*: cintmodifier_mask*: cintPXIMHotKeyTriggers* = ptr XIMHotKeyTriggersXIMHotKeyTriggers*{.final.} = objectnum_hot_key*: cintkey*: PXIMHotKeyTriggerPXIMHotKeyState* = ptr XIMHotKeyStateXIMHotKeyState* = culong{.deprecated: [TXIMCaretDirection: XIMCaretDirection].}{.deprecated: [TXIMStringConversionCallbackStruct: XIMStringConversionCallbackStruct].}{.deprecated: [TXIMPreeditDrawCallbackStruct: XIMPreeditDrawCallbackStruct].}{.deprecated: [TXIMCaretStyle: XIMCaretStyle].}{.deprecated: [TXIMPreeditCaretCallbackStruct: XIMPreeditCaretCallbackStruct].}{.deprecated: [TXIMStatusDataType: XIMStatusDataType].}{.deprecated: [TXIMStatusDrawCallbackStruct: XIMStatusDrawCallbackStruct].}{.deprecated: [TXIMHotKeyTrigger: XIMHotKeyTrigger].}{.deprecated: [TXIMHotKeyTriggers: XIMHotKeyTriggers].}{.deprecated: [TXIMHotKeyState: XIMHotKeyState].}constXIMHotKeyStateON* = 0x00000001XIMHotKeyStateOFF* = 0x00000002typePXIMValuesList* = ptr XIMValuesListXIMValuesList*{.final.} = objectcount_values*: cushortsupported_values*: PPChar{.deprecated: [TXIMValuesList: XIMValuesList].}typefuncdisp* = proc (display: PDisplay): cint{.cdecl.}funcifevent* = proc (display: PDisplay, event: PXEvent, p: XPointer): XBool{.cdecl.}chararr32* = array[0..31, char]constAllPlanes*: culong = not culong(0)proc XLoadQueryFont*(para1: PDisplay, para2: cstring): PXFontStruct{.libx11.}proc XQueryFont*(para1: PDisplay, para2: XID): PXFontStruct{.libx11.}proc XGetMotionEvents*(para1: PDisplay, para2: Window, para3: Time,para4: Time, para5: Pcint): PXTimeCoord{.libx11.}proc XDeleteModifiermapEntry*(para1: PXModifierKeymap, para2: KeyCode,para3: cint): PXModifierKeymap{.libx11.}proc XGetModifierMapping*(para1: PDisplay): PXModifierKeymap{.libx11.}proc XInsertModifiermapEntry*(para1: PXModifierKeymap, para2: KeyCode,para3: cint): PXModifierKeymap{.libx11.}proc XNewModifiermap*(para1: cint): PXModifierKeymap{.libx11.}proc XCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, para4: cint,para5: cint, para6: cstring, para7: cuint, para8: cuint,para9: cint, para10: cint): PXImage{.libx11.}proc XInitImage*(para1: PXImage): Status{.libx11.}proc XGetImage*(para1: PDisplay, para2: Drawable, para3: cint, para4: cint,para5: cuint, para6: cuint, para7: culong, para8: cint): PXImage{.libx11.}proc XGetSubImage*(para1: PDisplay, para2: Drawable, para3: cint, para4: cint,para5: cuint, para6: cuint, para7: culong, para8: cint,para9: PXImage, para10: cint, para11: cint): PXImage{.libx11.}proc XOpenDisplay*(para1: cstring): PDisplay{.libx11.}proc XrmInitialize*(){.libx11.}proc XFetchBytes*(para1: PDisplay, para2: Pcint): cstring{.libx11.}proc XFetchBuffer*(para1: PDisplay, para2: Pcint, para3: cint): cstring{.libx11.}proc XGetAtomName*(para1: PDisplay, para2: Atom): cstring{.libx11.}proc XGetAtomNames*(para1: PDisplay, para2: PAtom, para3: cint, para4: PPchar): Status{.libx11.}proc XGetDefault*(para1: PDisplay, para2: cstring, para3: cstring): cstring{.libx11.}proc XDisplayName*(para1: cstring): cstring{.libx11.}proc XKeysymToString*(para1: KeySym): cstring{.libx11.}proc XSynchronize*(para1: PDisplay, para2: XBool): funcdisp{.libx11.}proc XSetAfterFunction*(para1: PDisplay, para2: funcdisp): funcdisp{.libx11.}proc XInternAtom*(para1: PDisplay, para2: cstring, para3: XBool): Atom{.libx11.}proc XInternAtoms*(para1: PDisplay, para2: PPchar, para3: cint, para4: XBool,para5: PAtom): Status{.libx11.}proc XCopyColormapAndFree*(para1: PDisplay, para2: Colormap): Colormap{.libx11.}proc XCreateColormap*(para1: PDisplay, para2: Window, para3: PVisual,para4: cint): Colormap{.libx11.}proc XCreatePixmapCursor*(para1: PDisplay, para2: Pixmap, para3: Pixmap,para4: PXColor, para5: PXColor, para6: cuint,para7: cuint): Cursor{.libx11.}proc XCreateGlyphCursor*(para1: PDisplay, para2: Font, para3: Font,para4: cuint, para5: cuint, para6: PXColor,para7: PXColor): Cursor{.libx11.}proc XCreateFontCursor*(para1: PDisplay, para2: cuint): Cursor{.libx11.}proc XLoadFont*(para1: PDisplay, para2: cstring): Font{.libx11.}proc XCreateGC*(para1: PDisplay, para2: Drawable, para3: culong,para4: PXGCValues): GC{.libx11.}proc XGContextFromGC*(para1: GC): GContext{.libx11.}proc XFlushGC*(para1: PDisplay, para2: GC){.libx11.}proc XCreatePixmap*(para1: PDisplay, para2: Drawable, para3: cuint,para4: cuint, para5: cuint): Pixmap{.libx11.}proc XCreateBitmapFromData*(para1: PDisplay, para2: Drawable, para3: cstring,para4: cuint, para5: cuint): Pixmap{.libx11.}proc XCreatePixmapFromBitmapData*(para1: PDisplay, para2: Drawable,para3: cstring, para4: cuint, para5: cuint,para6: culong, para7: culong, para8: cuint): Pixmap{.libx11.}proc XCreateSimpleWindow*(para1: PDisplay, para2: Window, para3: cint,para4: cint, para5: cuint, para6: cuint, para7: cuint,para8: culong, para9: culong): Window{.libx11.}proc XGetSelectionOwner*(para1: PDisplay, para2: Atom): Window{.libx11.}proc XCreateWindow*(para1: PDisplay, para2: Window, para3: cint, para4: cint,para5: cuint, para6: cuint, para7: cuint, para8: cint,para9: cuint, para10: PVisual, para11: culong,para12: PXSetWindowAttributes): Window{.libx11.}proc XListInstalledColormaps*(para1: PDisplay, para2: Window, para3: Pcint): PColormap{.libx11.}proc XListFonts*(para1: PDisplay, para2: cstring, para3: cint, para4: Pcint): PPChar{.libx11.}proc XListFontsWithInfo*(para1: PDisplay, para2: cstring, para3: cint,para4: Pcint, para5: PPXFontStruct): PPChar{.libx11.}proc XGetFontPath*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}proc XListExtensions*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}proc XListProperties*(para1: PDisplay, para2: Window, para3: Pcint): PAtom{.libx11.}proc XListHosts*(para1: PDisplay, para2: Pcint, para3: PBool): PXHostAddress{.libx11.}proc XKeycodeToKeysym*(para1: PDisplay, para2: KeyCode, para3: cint): KeySym{.libx11.}proc XLookupKeysym*(para1: PXKeyEvent, para2: cint): KeySym{.libx11.}proc XGetKeyboardMapping*(para1: PDisplay, para2: KeyCode, para3: cint,para4: Pcint): PKeySym{.libx11.}proc XStringToKeysym*(para1: cstring): KeySym{.libx11.}proc XMaxRequestSize*(para1: PDisplay): clong{.libx11.}proc XExtendedMaxRequestSize*(para1: PDisplay): clong{.libx11.}proc XResourceManagerString*(para1: PDisplay): cstring{.libx11.}proc XScreenResourceString*(para1: PScreen): cstring{.libx11.}proc XDisplayMotionBufferSize*(para1: PDisplay): culong{.libx11.}proc XVisualIDFromVisual*(para1: PVisual): VisualID{.libx11.}proc XInitThreads*(): Status{.libx11.}proc XLockDisplay*(para1: PDisplay){.libx11.}proc XUnlockDisplay*(para1: PDisplay){.libx11.}proc XInitExtension*(para1: PDisplay, para2: cstring): PXExtCodes{.libx11.}proc XAddExtension*(para1: PDisplay): PXExtCodes{.libx11.}proc XFindOnExtensionList*(para1: PPXExtData, para2: cint): PXExtData{.libx11.}proc XEHeadOfExtensionList*(para1: XEDataObject): PPXExtData{.libx11.}proc XRootWindow*(para1: PDisplay, para2: cint): Window{.libx11.}proc XDefaultRootWindow*(para1: PDisplay): Window{.libx11.}proc XRootWindowOfScreen*(para1: PScreen): Window{.libx11.}proc XDefaultVisual*(para1: PDisplay, para2: cint): PVisual{.libx11.}proc XDefaultVisualOfScreen*(para1: PScreen): PVisual{.libx11.}proc XDefaultGC*(para1: PDisplay, para2: cint): GC{.libx11.}proc XDefaultGCOfScreen*(para1: PScreen): GC{.libx11.}proc XBlackPixel*(para1: PDisplay, para2: cint): culong{.libx11.}proc XWhitePixel*(para1: PDisplay, para2: cint): culong{.libx11.}proc XAllPlanes*(): culong{.libx11.}proc XBlackPixelOfScreen*(para1: PScreen): culong{.libx11.}proc XWhitePixelOfScreen*(para1: PScreen): culong{.libx11.}proc XNextRequest*(para1: PDisplay): culong{.libx11.}proc XLastKnownRequestProcessed*(para1: PDisplay): culong{.libx11.}proc XServerVendor*(para1: PDisplay): cstring{.libx11.}proc XDisplayString*(para1: PDisplay): cstring{.libx11.}proc XDefaultColormap*(para1: PDisplay, para2: cint): Colormap{.libx11.}proc XDefaultColormapOfScreen*(para1: PScreen): Colormap{.libx11.}proc XDisplayOfScreen*(para1: PScreen): PDisplay{.libx11.}proc XScreenOfDisplay*(para1: PDisplay, para2: cint): PScreen{.libx11.}proc XDefaultScreenOfDisplay*(para1: PDisplay): PScreen{.libx11.}proc XEventMaskOfScreen*(para1: PScreen): clong{.libx11.}proc XScreenNumberOfScreen*(para1: PScreen): cint{.libx11.}typeXErrorHandler* = proc (para1: PDisplay, para2: PXErrorEvent): cint{.cdecl.}{.deprecated: [TXErrorHandler: XErrorHandler].}proc XSetErrorHandler*(para1: XErrorHandler): XErrorHandler{.libx11.}typeXIOErrorHandler* = proc (para1: PDisplay): cint{.cdecl.}{.deprecated: [TXIOErrorHandler: XIOErrorHandler].}proc XSetIOErrorHandler*(para1: XIOErrorHandler): XIOErrorHandler{.libx11.}proc XListPixmapFormats*(para1: PDisplay, para2: Pcint): PXPixmapFormatValues{.libx11.}proc XListDepths*(para1: PDisplay, para2: cint, para3: Pcint): Pcint{.libx11.}proc XReconfigureWMWindow*(para1: PDisplay, para2: Window, para3: cint,para4: cuint, para5: PXWindowChanges): Status{.libx11.}proc XGetWMProtocols*(para1: PDisplay, para2: Window, para3: PPAtom,para4: Pcint): Status{.libx11.}proc XSetWMProtocols*(para1: PDisplay, para2: Window, para3: PAtom, para4: cint): Status{.libx11.}proc XIconifyWindow*(para1: PDisplay, para2: Window, para3: cint): Status{.libx11.}proc XWithdrawWindow*(para1: PDisplay, para2: Window, para3: cint): Status{.libx11.}proc XGetCommand*(para1: PDisplay, para2: Window, para3: PPPchar, para4: Pcint): Status{.libx11.}proc XGetWMColormapWindows*(para1: PDisplay, para2: Window, para3: PPWindow,para4: Pcint): Status{.libx11.}proc XSetWMColormapWindows*(para1: PDisplay, para2: Window, para3: PWindow,para4: cint): Status{.libx11.}proc XFreeStringList*(para1: PPchar){.libx11.}proc XSetTransientForHint*(para1: PDisplay, para2: Window, para3: Window): cint{.libx11.}proc XActivateScreenSaver*(para1: PDisplay): cint{.libx11.}proc XAddHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}proc XAddHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.libx11.}proc XAddToExtensionList*(para1: PPXExtData, para2: PXExtData): cint{.libx11.}proc XAddToSaveSet*(para1: PDisplay, para2: Window): cint{.libx11.}proc XAllocColor*(para1: PDisplay, para2: Colormap, para3: PXColor): Status{.libx11.}proc XAllocColorCells*(para1: PDisplay, para2: Colormap, para3: XBool,para4: Pculong, para5: cuint, para6: Pculong,para7: cuint): Status{.libx11.}proc XAllocColorPlanes*(para1: PDisplay, para2: Colormap, para3: XBool,para4: Pculong, para5: cint, para6: cint, para7: cint,para8: cint, para9: Pculong, para10: Pculong,para11: Pculong): Status{.libx11.}proc XAllocNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring,para4: PXColor, para5: PXColor): Status{.libx11.}proc XAllowEvents*(para1: PDisplay, para2: cint, para3: Time): cint{.libx11.}proc XAutoRepeatOff*(para1: PDisplay): cint{.libx11.}proc XAutoRepeatOn*(para1: PDisplay): cint{.libx11.}proc XBell*(para1: PDisplay, para2: cint): cint{.libx11.}proc XBitmapBitOrder*(para1: PDisplay): cint{.libx11.}proc XBitmapPad*(para1: PDisplay): cint{.libx11.}proc XBitmapUnit*(para1: PDisplay): cint{.libx11.}proc XCellsOfScreen*(para1: PScreen): cint{.libx11.}proc XChangeActivePointerGrab*(para1: PDisplay, para2: cuint, para3: Cursor,para4: Time): cint{.libx11.}proc XChangeGC*(para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues): cint{.libx11.}proc XChangeKeyboardControl*(para1: PDisplay, para2: culong,para3: PXKeyboardControl): cint{.libx11.}proc XChangeKeyboardMapping*(para1: PDisplay, para2: cint, para3: cint,para4: PKeySym, para5: cint): cint{.libx11.}proc XChangePointerControl*(para1: PDisplay, para2: XBool, para3: XBool,para4: cint, para5: cint, para6: cint): cint{.libx11.}proc XChangeProperty*(para1: PDisplay, para2: Window, para3: Atom,para4: Atom, para5: cint, para6: cint, para7: Pcuchar,para8: cint): cint{.libx11.}proc XChangeSaveSet*(para1: PDisplay, para2: Window, para3: cint): cint{.libx11.}proc XChangeWindowAttributes*(para1: PDisplay, para2: Window, para3: culong,para4: PXSetWindowAttributes): cint{.libx11.}proc XCheckIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent,para4: XPointer): XBool{.libx11.}proc XCheckMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): XBool{.libx11.}proc XCheckTypedEvent*(para1: PDisplay, para2: cint, para3: PXEvent): XBool{.libx11.}proc XCheckTypedWindowEvent*(para1: PDisplay, para2: Window, para3: cint,para4: PXEvent): XBool{.libx11.}proc XCheckWindowEvent*(para1: PDisplay, para2: Window, para3: clong,para4: PXEvent): XBool{.libx11.}proc XCirculateSubwindows*(para1: PDisplay, para2: Window, para3: cint): cint{.libx11.}proc XCirculateSubwindowsDown*(para1: PDisplay, para2: Window): cint{.libx11.}proc XCirculateSubwindowsUp*(para1: PDisplay, para2: Window): cint{.libx11.}proc XClearArea*(para1: PDisplay, para2: Window, para3: cint, para4: cint,para5: cuint, para6: cuint, para7: XBool): cint{.libx11.}proc XClearWindow*(para1: PDisplay, para2: Window): cint{.libx11.}proc XCloseDisplay*(para1: PDisplay): cint{.libx11.}proc XConfigureWindow*(para1: PDisplay, para2: Window, para3: cuint,para4: PXWindowChanges): cint{.libx11.}proc XConnectionNumber*(para1: PDisplay): cint{.libx11.}proc XConvertSelection*(para1: PDisplay, para2: Atom, para3: Atom,para4: Atom, para5: Window, para6: Time): cint{.libx11.}proc XCopyArea*(para1: PDisplay, para2: Drawable, para3: Drawable, para4: GC,para5: cint, para6: cint, para7: cuint, para8: cuint,para9: cint, para10: cint): cint{.libx11.}proc XCopyGC*(para1: PDisplay, para2: GC, para3: culong, para4: GC): cint{.libx11.}proc XCopyPlane*(para1: PDisplay, para2: Drawable, para3: Drawable,para4: GC, para5: cint, para6: cint, para7: cuint,para8: cuint, para9: cint, para10: cint, para11: culong): cint{.libx11.}proc XDefaultDepth*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDefaultDepthOfScreen*(para1: PScreen): cint{.libx11.}proc XDefaultScreen*(para1: PDisplay): cint{.libx11.}proc XDefineCursor*(para1: PDisplay, para2: Window, para3: Cursor): cint{.libx11.}proc XDeleteProperty*(para1: PDisplay, para2: Window, para3: Atom): cint{.libx11.}proc XDestroyWindow*(para1: PDisplay, para2: Window): cint{.libx11.}proc XDestroySubwindows*(para1: PDisplay, para2: Window): cint{.libx11.}proc XDoesBackingStore*(para1: PScreen): cint{.libx11.}proc XDoesSaveUnders*(para1: PScreen): XBool{.libx11.}proc XDisableAccessControl*(para1: PDisplay): cint{.libx11.}proc XDisplayCells*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDisplayHeight*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDisplayHeightMM*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDisplayKeycodes*(para1: PDisplay, para2: Pcint, para3: Pcint): cint{.libx11.}proc XDisplayPlanes*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDisplayWidth*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDisplayWidthMM*(para1: PDisplay, para2: cint): cint{.libx11.}proc XDrawArc*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.libx11.}proc XDrawArcs*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc,para5: cint): cint{.libx11.}proc XDrawImageString*(para1: PDisplay, para2: Drawable, para3: GC,para4: cint, para5: cint, para6: cstring, para7: cint): cint{.libx11.}proc XDrawImageString16*(para1: PDisplay, para2: Drawable, para3: GC,para4: cint, para5: cint, para6: PXChar2b, para7: cint): cint{.libx11.}proc XDrawLine*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: cint, para7: cint): cint{.libx11.}proc XDrawLines*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint,para5: cint, para6: cint): cint{.libx11.}proc XDrawPoint*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint): cint{.libx11.}proc XDrawPoints*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint,para5: cint, para6: cint): cint{.libx11.}proc XDrawRectangle*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: cuint, para7: cuint): cint{.libx11.}proc XDrawRectangles*(para1: PDisplay, para2: Drawable, para3: GC,para4: PXRectangle, para5: cint): cint{.libx11.}proc XDrawSegments*(para1: PDisplay, para2: Drawable, para3: GC,para4: PXSegment, para5: cint): cint{.libx11.}proc XDrawString*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: cstring, para7: cint): cint{.libx11.}proc XDrawString16*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: PXChar2b, para7: cint): cint{.libx11.}proc XDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: PXTextItem, para7: cint): cint{.libx11.}proc XDrawText16*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: PXTextItem16, para7: cint): cint{.libx11.}proc XEnableAccessControl*(para1: PDisplay): cint{.libx11.}proc XEventsQueued*(para1: PDisplay, para2: cint): cint{.libx11.}proc XFetchName*(para1: PDisplay, para2: Window, para3: PPchar): Status{.libx11.}proc XFillArc*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.libx11.}proc XFillArcs*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc,para5: cint): cint{.libx11.}proc XFillPolygon*(para1: PDisplay, para2: Drawable, para3: GC,para4: PXPoint, para5: cint, para6: cint, para7: cint): cint{.libx11.}proc XFillRectangle*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: cuint, para7: cuint): cint{.libx11.}proc XFillRectangles*(para1: PDisplay, para2: Drawable, para3: GC,para4: PXRectangle, para5: cint): cint{.libx11.}proc XFlush*(para1: PDisplay): cint{.libx11.}proc XForceScreenSaver*(para1: PDisplay, para2: cint): cint{.libx11.}proc XFree*(para1: pointer): cint{.libx11.}proc XFreeColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.}proc XFreeColors*(para1: PDisplay, para2: Colormap, para3: Pculong,para4: cint, para5: culong): cint{.libx11.}proc XFreeCursor*(para1: PDisplay, para2: Cursor): cint{.libx11.}proc XFreeExtensionList*(para1: PPchar): cint{.libx11.}proc XFreeFont*(para1: PDisplay, para2: PXFontStruct): cint{.libx11.}proc XFreeFontInfo*(para1: PPchar, para2: PXFontStruct, para3: cint): cint{.libx11.}proc XFreeFontNames*(para1: PPchar): cint{.libx11.}proc XFreeFontPath*(para1: PPchar): cint{.libx11.}proc XFreeGC*(para1: PDisplay, para2: GC): cint{.libx11.}proc XFreeModifiermap*(para1: PXModifierKeymap): cint{.libx11.}proc XFreePixmap*(para1: PDisplay, para2: Pixmap): cint{.libx11.}proc XGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring,para5: cuint, para6: cuint, para7: cuint, para8: cint,para9: cint, para10: Pcint, para11: Pcint, para12: Pcint,para13: Pcint): cint{.libx11.}proc XGetErrorDatabaseText*(para1: PDisplay, para2: cstring, para3: cstring,para4: cstring, para5: cstring, para6: cint): cint{.libx11.}proc XGetErrorText*(para1: PDisplay, para2: cint, para3: cstring, para4: cint): cint{.libx11.}proc XGetFontProperty*(para1: PXFontStruct, para2: Atom, para3: Pculong): XBool{.libx11.}proc XGetGCValues*(para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues): Status{.libx11.}proc XGetGeometry*(para1: PDisplay, para2: Drawable, para3: PWindow,para4: Pcint, para5: Pcint, para6: Pcuint, para7: Pcuint,para8: Pcuint, para9: Pcuint): Status{.libx11.}proc XGetIconName*(para1: PDisplay, para2: Window, para3: PPchar): Status{.libx11.}proc XGetInputFocus*(para1: PDisplay, para2: PWindow, para3: Pcint): cint{.libx11.}proc XGetKeyboardControl*(para1: PDisplay, para2: PXKeyboardState): cint{.libx11.}proc XGetPointerControl*(para1: PDisplay, para2: Pcint, para3: Pcint,para4: Pcint): cint{.libx11.}proc XGetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.libx11.}proc XGetScreenSaver*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint,para5: Pcint): cint{.libx11.}proc XGetTransientForHint*(para1: PDisplay, para2: Window, para3: PWindow): Status{.libx11.}proc XGetWindowProperty*(para1: PDisplay, para2: Window, para3: Atom,para4: clong, para5: clong, para6: XBool, para7: Atom,para8: PAtom, para9: Pcint, para10: Pculong,para11: Pculong, para12: PPcuchar): cint{.libx11.}proc XGetWindowAttributes*(para1: PDisplay, para2: Window,para3: PXWindowAttributes): Status{.libx11.}proc XGrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: Window,para5: XBool, para6: cuint, para7: cint, para8: cint,para9: Window, para10: Cursor): cint{.libx11.}proc XGrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: Window,para5: XBool, para6: cint, para7: cint): cint{.libx11.}proc XGrabKeyboard*(para1: PDisplay, para2: Window, para3: XBool, para4: cint,para5: cint, para6: Time): cint{.libx11.}proc XGrabPointer*(para1: PDisplay, para2: Window, para3: XBool, para4: cuint,para5: cint, para6: cint, para7: Window, para8: Cursor,para9: Time): cint{.libx11.}proc XGrabServer*(para1: PDisplay): cint{.libx11.}proc XHeightMMOfScreen*(para1: PScreen): cint{.libx11.}proc XHeightOfScreen*(para1: PScreen): cint{.libx11.}proc XIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent,para4: XPointer): cint{.libx11.}proc XImageByteOrder*(para1: PDisplay): cint{.libx11.}proc XInstallColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.}proc XKeysymToKeycode*(para1: PDisplay, para2: KeySym): KeyCode{.libx11.}proc XKillClient*(para1: PDisplay, para2: XID): cint{.libx11.}proc XLookupColor*(para1: PDisplay, para2: Colormap, para3: cstring,para4: PXColor, para5: PXColor): Status{.libx11.}proc XLowerWindow*(para1: PDisplay, para2: Window): cint{.libx11.}proc XMapRaised*(para1: PDisplay, para2: Window): cint{.libx11.}proc XMapSubwindows*(para1: PDisplay, para2: Window): cint{.libx11.}proc XMapWindow*(para1: PDisplay, para2: Window): cint{.libx11.}proc XMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): cint{.libx11.}proc XMaxCmapsOfScreen*(para1: PScreen): cint{.libx11.}proc XMinCmapsOfScreen*(para1: PScreen): cint{.libx11.}proc XMoveResizeWindow*(para1: PDisplay, para2: Window, para3: cint,para4: cint, para5: cuint, para6: cuint): cint{.libx11.}proc XMoveWindow*(para1: PDisplay, para2: Window, para3: cint, para4: cint): cint{.libx11.}proc XNextEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}proc XNoOp*(para1: PDisplay): cint{.libx11.}proc XParseColor*(para1: PDisplay, para2: Colormap, para3: cstring,para4: PXColor): Status{.libx11.}proc XParseGeometry*(para1: cstring, para2: Pcint, para3: Pcint, para4: Pcuint,para5: Pcuint): cint{.libx11.}proc XPeekEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}proc XPeekIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent,para4: XPointer): cint{.libx11.}proc XPending*(para1: PDisplay): cint{.libx11.}proc XPlanesOfScreen*(para1: PScreen): cint{.libx11.}proc XProtocolRevision*(para1: PDisplay): cint{.libx11.}proc XProtocolVersion*(para1: PDisplay): cint{.libx11.}proc XPutBackEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}proc XPutImage*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXImage,para5: cint, para6: cint, para7: cint, para8: cint,para9: cuint, para10: cuint): cint{.libx11.}proc XQLength*(para1: PDisplay): cint{.libx11.}proc XQueryBestCursor*(para1: PDisplay, para2: Drawable, para3: cuint,para4: cuint, para5: Pcuint, para6: Pcuint): Status{.libx11.}proc XQueryBestSize*(para1: PDisplay, para2: cint, para3: Drawable,para4: cuint, para5: cuint, para6: Pcuint, para7: Pcuint): Status{.libx11.}proc XQueryBestStipple*(para1: PDisplay, para2: Drawable, para3: cuint,para4: cuint, para5: Pcuint, para6: Pcuint): Status{.libx11.}proc XQueryBestTile*(para1: PDisplay, para2: Drawable, para3: cuint,para4: cuint, para5: Pcuint, para6: Pcuint): Status{.libx11.}proc XQueryColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint{.libx11.}proc XQueryColors*(para1: PDisplay, para2: Colormap, para3: PXColor,para4: cint): cint{.libx11.}proc XQueryExtension*(para1: PDisplay, para2: cstring, para3: Pcint,para4: Pcint, para5: Pcint): XBool{.libx11.}#?proc XQueryKeymap*(para1: PDisplay, para2: chararr32): cint{.libx11.}proc XQueryPointer*(para1: PDisplay, para2: Window, para3: PWindow,para4: PWindow, para5: Pcint, para6: Pcint, para7: Pcint,para8: Pcint, para9: Pcuint): XBool{.libx11.}proc XQueryTextExtents*(para1: PDisplay, para2: XID, para3: cstring,para4: cint, para5: Pcint, para6: Pcint, para7: Pcint,para8: PXCharStruct): cint{.libx11.}proc XQueryTextExtents16*(para1: PDisplay, para2: XID, para3: PXChar2b,para4: cint, para5: Pcint, para6: Pcint, para7: Pcint,para8: PXCharStruct): cint{.libx11.}proc XQueryTree*(para1: PDisplay, para2: Window, para3: PWindow,para4: PWindow, para5: PPWindow, para6: Pcuint): Status{.libx11.}proc XRaiseWindow*(para1: PDisplay, para2: Window): cint{.libx11.}proc XReadBitmapFile*(para1: PDisplay, para2: Drawable, para3: cstring,para4: Pcuint, para5: Pcuint, para6: PPixmap,para7: Pcint, para8: Pcint): cint{.libx11.}proc XReadBitmapFileData*(para1: cstring, para2: Pcuint, para3: Pcuint,para4: PPcuchar, para5: Pcint, para6: Pcint): cint{.libx11.}proc XRebindKeysym*(para1: PDisplay, para2: KeySym, para3: PKeySym,para4: cint, para5: Pcuchar, para6: cint): cint{.libx11.}proc XRecolorCursor*(para1: PDisplay, para2: Cursor, para3: PXColor,para4: PXColor): cint{.libx11.}proc XRefreshKeyboardMapping*(para1: PXMappingEvent): cint{.libx11.}proc XRemoveFromSaveSet*(para1: PDisplay, para2: Window): cint{.libx11.}proc XRemoveHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}proc XRemoveHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.libx11.}proc XReparentWindow*(para1: PDisplay, para2: Window, para3: Window,para4: cint, para5: cint): cint{.libx11.}proc XResetScreenSaver*(para1: PDisplay): cint{.libx11.}proc XResizeWindow*(para1: PDisplay, para2: Window, para3: cuint, para4: cuint): cint{.libx11.}proc XRestackWindows*(para1: PDisplay, para2: PWindow, para3: cint): cint{.libx11.}proc XRotateBuffers*(para1: PDisplay, para2: cint): cint{.libx11.}proc XRotateWindowProperties*(para1: PDisplay, para2: Window, para3: PAtom,para4: cint, para5: cint): cint{.libx11.}proc XScreenCount*(para1: PDisplay): cint{.libx11.}proc XSelectInput*(para1: PDisplay, para2: Window, para3: clong): cint{.libx11.}proc XSendEvent*(para1: PDisplay, para2: Window, para3: XBool, para4: clong,para5: PXEvent): Status{.libx11.}proc XSetAccessControl*(para1: PDisplay, para2: cint): cint{.libx11.}proc XSetArcMode*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}proc XSetBackground*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.}proc XSetClipMask*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.}proc XSetClipOrigin*(para1: PDisplay, para2: GC, para3: cint, para4: cint): cint{.libx11.}proc XSetClipRectangles*(para1: PDisplay, para2: GC, para3: cint, para4: cint,para5: PXRectangle, para6: cint, para7: cint): cint{.libx11.}proc XSetCloseDownMode*(para1: PDisplay, para2: cint): cint{.libx11.}proc XSetCommand*(para1: PDisplay, para2: Window, para3: PPchar, para4: cint): cint{.libx11.}proc XSetDashes*(para1: PDisplay, para2: GC, para3: cint, para4: cstring,para5: cint): cint{.libx11.}proc XSetFillRule*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}proc XSetFillStyle*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}proc XSetFont*(para1: PDisplay, para2: GC, para3: Font): cint{.libx11.}proc XSetFontPath*(para1: PDisplay, para2: PPchar, para3: cint): cint{.libx11.}proc XSetForeground*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.}proc XSetFunction*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}proc XSetGraphicsExposures*(para1: PDisplay, para2: GC, para3: XBool): cint{.libx11.}proc XSetIconName*(para1: PDisplay, para2: Window, para3: cstring): cint{.libx11.}proc XSetInputFocus*(para1: PDisplay, para2: Window, para3: cint, para4: Time): cint{.libx11.}proc XSetLineAttributes*(para1: PDisplay, para2: GC, para3: cuint, para4: cint,para5: cint, para6: cint): cint{.libx11.}proc XSetModifierMapping*(para1: PDisplay, para2: PXModifierKeymap): cint{.libx11.}proc XSetPlaneMask*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.}proc XSetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.libx11.}proc XSetScreenSaver*(para1: PDisplay, para2: cint, para3: cint, para4: cint,para5: cint): cint{.libx11.}proc XSetSelectionOwner*(para1: PDisplay, para2: Atom, para3: Window,para4: Time): cint{.libx11.}proc XSetState*(para1: PDisplay, para2: GC, para3: culong, para4: culong,para5: cint, para6: culong): cint{.libx11.}proc XSetStipple*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.}proc XSetSubwindowMode*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.}proc XSetTSOrigin*(para1: PDisplay, para2: GC, para3: cint, para4: cint): cint{.libx11.}proc XSetTile*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.}proc XSetWindowBackground*(para1: PDisplay, para2: Window, para3: culong): cint{.libx11.}proc XSetWindowBackgroundPixmap*(para1: PDisplay, para2: Window, para3: Pixmap): cint{.libx11.}proc XSetWindowBorder*(para1: PDisplay, para2: Window, para3: culong): cint{.libx11.}proc XSetWindowBorderPixmap*(para1: PDisplay, para2: Window, para3: Pixmap): cint{.libx11.}proc XSetWindowBorderWidth*(para1: PDisplay, para2: Window, para3: cuint): cint{.libx11.}proc XSetWindowColormap*(para1: PDisplay, para2: Window, para3: Colormap): cint{.libx11.}proc XStoreBuffer*(para1: PDisplay, para2: cstring, para3: cint, para4: cint): cint{.libx11.}proc XStoreBytes*(para1: PDisplay, para2: cstring, para3: cint): cint{.libx11.}proc XStoreColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint{.libx11.}proc XStoreColors*(para1: PDisplay, para2: Colormap, para3: PXColor,para4: cint): cint{.libx11.}proc XStoreName*(para1: PDisplay, para2: Window, para3: cstring): cint{.libx11.}proc XStoreNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring,para4: culong, para5: cint): cint{.libx11.}proc XSync*(para1: PDisplay, para2: XBool): cint{.libx11.}proc XTextExtents*(para1: PXFontStruct, para2: cstring, para3: cint,para4: Pcint, para5: Pcint, para6: Pcint, para7: PXCharStruct): cint{.libx11.}proc XTextExtents16*(para1: PXFontStruct, para2: PXChar2b, para3: cint,para4: Pcint, para5: Pcint, para6: Pcint,para7: PXCharStruct): cint{.libx11.}proc XTextWidth*(para1: PXFontStruct, para2: cstring, para3: cint): cint{.libx11.}proc XTextWidth16*(para1: PXFontStruct, para2: PXChar2b, para3: cint): cint{.libx11.}proc XTranslateCoordinates*(para1: PDisplay, para2: Window, para3: Window,para4: cint, para5: cint, para6: Pcint,para7: Pcint, para8: PWindow): XBool{.libx11.}proc XUndefineCursor*(para1: PDisplay, para2: Window): cint{.libx11.}proc XUngrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: Window): cint{.libx11.}proc XUngrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: Window): cint{.libx11.}proc XUngrabKeyboard*(para1: PDisplay, para2: Time): cint{.libx11.}proc XUngrabPointer*(para1: PDisplay, para2: Time): cint{.libx11.}proc XUngrabServer*(para1: PDisplay): cint{.libx11.}proc XUninstallColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.}proc XUnloadFont*(para1: PDisplay, para2: Font): cint{.libx11.}proc XUnmapSubwindows*(para1: PDisplay, para2: Window): cint{.libx11.}proc XUnmapWindow*(para1: PDisplay, para2: Window): cint{.libx11.}proc XVendorRelease*(para1: PDisplay): cint{.libx11.}proc XWarpPointer*(para1: PDisplay, para2: Window, para3: Window, para4: cint,para5: cint, para6: cuint, para7: cuint, para8: cint,para9: cint): cint{.libx11.}proc XWidthMMOfScreen*(para1: PScreen): cint{.libx11.}proc XWidthOfScreen*(para1: PScreen): cint{.libx11.}proc XWindowEvent*(para1: PDisplay, para2: Window, para3: clong, para4: PXEvent): cint{.libx11.}proc XWriteBitmapFile*(para1: PDisplay, para2: cstring, para3: Pixmap,para4: cuint, para5: cuint, para6: cint, para7: cint): cint{.libx11.}proc XSupportsLocale*(): XBool{.libx11.}proc XSetLocaleModifiers*(para1: cstring): cstring{.libx11.}proc XOpenOM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring,para4: cstring): XOM{.libx11.}proc XCloseOM*(para1: XOM): Status{.libx11.}proc XSetOMValues*(para1: XOM): cstring{.varargs, libx11.}proc XGetOMValues*(para1: XOM): cstring{.varargs, libx11.}proc XDisplayOfOM*(para1: XOM): PDisplay{.libx11.}proc XLocaleOfOM*(para1: XOM): cstring{.libx11.}proc XCreateOC*(para1: XOM): XOC{.varargs, libx11.}proc XDestroyOC*(para1: XOC){.libx11.}proc XOMOfOC*(para1: XOC): XOM{.libx11.}proc XSetOCValues*(para1: XOC): cstring{.varargs, libx11.}proc XGetOCValues*(para1: XOC): cstring{.varargs, libx11.}proc XCreateFontSet*(para1: PDisplay, para2: cstring, para3: PPPchar,para4: Pcint, para5: PPchar): XFontSet{.libx11.}proc XFreeFontSet*(para1: PDisplay, para2: XFontSet){.libx11.}proc XFontsOfFontSet*(para1: XFontSet, para2: PPPXFontStruct, para3: PPPchar): cint{.libx11.}proc XBaseFontNameListOfFontSet*(para1: XFontSet): cstring{.libx11.}proc XLocaleOfFontSet*(para1: XFontSet): cstring{.libx11.}proc XContextDependentDrawing*(para1: XFontSet): XBool{.libx11.}proc XDirectionalDependentDrawing*(para1: XFontSet): XBool{.libx11.}proc XContextualDrawing*(para1: XFontSet): XBool{.libx11.}proc XExtentsOfFontSet*(para1: XFontSet): PXFontSetExtents{.libx11.}proc XmbTextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint{.libx11.}proc XwcTextEscapement*(para1: XFontSet, para2: PWideChar, para3: cint): cint{.libx11.}proc Xutf8TextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint{.libx11.}proc XmbTextExtents*(para1: XFontSet, para2: cstring, para3: cint,para4: PXRectangle, para5: PXRectangle): cint{.libx11.}proc XwcTextExtents*(para1: XFontSet, para2: PWideChar, para3: cint,para4: PXRectangle, para5: PXRectangle): cint{.libx11.}proc Xutf8TextExtents*(para1: XFontSet, para2: cstring, para3: cint,para4: PXRectangle, para5: PXRectangle): cint{.libx11.}proc XmbTextPerCharExtents*(para1: XFontSet, para2: cstring, para3: cint,para4: PXRectangle, para5: PXRectangle, para6: cint,para7: Pcint, para8: PXRectangle, para9: PXRectangle): Status{.libx11.}proc XwcTextPerCharExtents*(para1: XFontSet, para2: PWideChar, para3: cint,para4: PXRectangle, para5: PXRectangle, para6: cint,para7: Pcint, para8: PXRectangle, para9: PXRectangle): Status{.libx11.}proc Xutf8TextPerCharExtents*(para1: XFontSet, para2: cstring, para3: cint,para4: PXRectangle, para5: PXRectangle,para6: cint, para7: Pcint, para8: PXRectangle,para9: PXRectangle): Status{.libx11.}proc XmbDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}proc XwcDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: PXwcTextItem, para7: cint){.libx11.}proc Xutf8DrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint,para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}proc XmbDrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet,para4: GC, para5: cint, para6: cint, para7: cstring,para8: cint){.libx11.}proc XwcDrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet,para4: GC, para5: cint, para6: cint, para7: PWideChar,para8: cint){.libx11.}proc Xutf8DrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet,para4: GC, para5: cint, para6: cint, para7: cstring,para8: cint){.libx11.}proc XmbDrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet,para4: GC, para5: cint, para6: cint, para7: cstring,para8: cint){.libx11.}proc XwcDrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet,para4: GC, para5: cint, para6: cint, para7: PWideChar,para8: cint){.libx11.}proc Xutf8DrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet,para4: GC, para5: cint, para6: cint, para7: cstring,para8: cint){.libx11.}proc XOpenIM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring,para4: cstring): XIM{.libx11.}proc XCloseIM*(para1: XIM): Status{.libx11.}proc XGetIMValues*(para1: XIM): cstring{.varargs, libx11.}proc XSetIMValues*(para1: XIM): cstring{.varargs, libx11.}proc XDisplayOfIM*(para1: XIM): PDisplay{.libx11.}proc XLocaleOfIM*(para1: XIM): cstring{.libx11.}proc XCreateIC*(para1: XIM): XIC{.varargs, libx11.}proc XDestroyIC*(para1: XIC){.libx11.}proc XSetICFocus*(para1: XIC){.libx11.}proc XUnsetICFocus*(para1: XIC){.libx11.}proc XwcResetIC*(para1: XIC): PWideChar{.libx11.}proc XmbResetIC*(para1: XIC): cstring{.libx11.}proc Xutf8ResetIC*(para1: XIC): cstring{.libx11.}proc XSetICValues*(para1: XIC): cstring{.varargs, libx11.}proc XGetICValues*(para1: XIC): cstring{.varargs, libx11.}proc XIMOfIC*(para1: XIC): XIM{.libx11.}proc XFilterEvent*(para1: PXEvent, para2: Window): XBool{.libx11.}proc XmbLookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: cstring,para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}proc XwcLookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: PWideChar,para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}proc Xutf8LookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: cstring,para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}proc XVaCreateNestedList*(unused: cint): XVaNestedList{.varargs, libx11.}proc XRegisterIMInstantiateCallback*(para1: PDisplay, para2: PXrmHashBucketRec,para3: cstring, para4: cstring,para5: XIDProc, para6: XPointer): XBool{.libx11.}proc XUnregisterIMInstantiateCallback*(para1: PDisplay,para2: PXrmHashBucketRec, para3: cstring,para4: cstring, para5: XIDProc,para6: XPointer): XBool{.libx11.}typeXConnectionWatchProc* = proc (para1: PDisplay, para2: XPointer, para3: cint,para4: XBool, para5: PXPointer){.cdecl.}{.deprecated: [TXConnectionWatchProc: XConnectionWatchProc].}proc XInternalConnectionNumbers*(para1: PDisplay, para2: PPcint, para3: Pcint): Status{.libx11.}proc XProcessInternalConnection*(para1: PDisplay, para2: cint){.libx11.}proc XAddConnectionWatch*(para1: PDisplay, para2: XConnectionWatchProc,para3: XPointer): Status{.libx11.}proc XRemoveConnectionWatch*(para1: PDisplay, para2: XConnectionWatchProc,para3: XPointer){.libx11.}proc XSetAuthorization*(para1: cstring, para2: cint, para3: cstring, para4: cint){.libx11.}## _Xmbtowc?# _Xwctomb?#proc XGetEventData*(para1: PDisplay, para2: PXGenericEventCookie): XBool {.libX11.}proc XFreeEventData*(para1: PDisplay, para2: PXGenericEventCookie) {.libX11.}#when defined(MACROS):proc ConnectionNumber*(dpy: PDisplay): cintproc RootWindow*(dpy: PDisplay, scr: cint): Windowproc DefaultScreen*(dpy: PDisplay): cintproc DefaultRootWindow*(dpy: PDisplay): Windowproc DefaultVisual*(dpy: PDisplay, scr: cint): PVisualproc DefaultGC*(dpy: PDisplay, scr: cint): GCproc BlackPixel*(dpy: PDisplay, scr: cint): culongproc WhitePixel*(dpy: PDisplay, scr: cint): culongproc QLength*(dpy: PDisplay): cintproc DisplayWidth*(dpy: PDisplay, scr: cint): cintproc DisplayHeight*(dpy: PDisplay, scr: cint): cintproc DisplayWidthMM*(dpy: PDisplay, scr: cint): cintproc DisplayHeightMM*(dpy: PDisplay, scr: cint): cintproc DisplayPlanes*(dpy: PDisplay, scr: cint): cintproc DisplayCells*(dpy: PDisplay, scr: cint): cintproc ScreenCount*(dpy: PDisplay): cintproc ServerVendor*(dpy: PDisplay): cstringproc ProtocolVersion*(dpy: PDisplay): cintproc ProtocolRevision*(dpy: PDisplay): cintproc VendorRelease*(dpy: PDisplay): cintproc DisplayString*(dpy: PDisplay): cstringproc DefaultDepth*(dpy: PDisplay, scr: cint): cintproc DefaultColormap*(dpy: PDisplay, scr: cint): Colormapproc BitmapUnit*(dpy: PDisplay): cintproc BitmapBitOrder*(dpy: PDisplay): cintproc BitmapPad*(dpy: PDisplay): cintproc ImageByteOrder*(dpy: PDisplay): cintproc NextRequest*(dpy: PDisplay): culongproc LastKnownRequestProcessed*(dpy: PDisplay): culongproc ScreenOfDisplay*(dpy: PDisplay, scr: cint): PScreenproc DefaultScreenOfDisplay*(dpy: PDisplay): PScreenproc DisplayOfScreen*(s: PScreen): PDisplayproc RootWindowOfScreen*(s: PScreen): Windowproc BlackPixelOfScreen*(s: PScreen): culongproc WhitePixelOfScreen*(s: PScreen): culongproc DefaultColormapOfScreen*(s: PScreen): Colormapproc DefaultDepthOfScreen*(s: PScreen): cintproc DefaultGCOfScreen*(s: PScreen): GCproc DefaultVisualOfScreen*(s: PScreen): PVisualproc WidthOfScreen*(s: PScreen): cintproc HeightOfScreen*(s: PScreen): cintproc WidthMMOfScreen*(s: PScreen): cintproc HeightMMOfScreen*(s: PScreen): cintproc PlanesOfScreen*(s: PScreen): cintproc CellsOfScreen*(s: PScreen): cintproc MinCmapsOfScreen*(s: PScreen): cintproc MaxCmapsOfScreen*(s: PScreen): cintproc DoesSaveUnders*(s: PScreen): XBoolproc DoesBackingStore*(s: PScreen): cintproc EventMaskOfScreen*(s: PScreen): clongproc XAllocID*(dpy: PDisplay): XID# implementation#when defined(MACROS):template privDisp : untyped = cast[PXPrivDisplay](dpy)proc ConnectionNumber(dpy: PDisplay): cint =privDisp.fdproc RootWindow(dpy: PDisplay, scr: cint): Window =ScreenOfDisplay(dpy, scr).rootproc DefaultScreen(dpy: PDisplay): cint =privDisp.default_screenproc DefaultRootWindow(dpy: PDisplay): Window =ScreenOfDisplay(dpy, DefaultScreen(dpy)).rootproc DefaultVisual(dpy: PDisplay, scr: cint): PVisual =ScreenOfDisplay(dpy, scr).root_visualproc DefaultGC(dpy: PDisplay, scr: cint): GC =ScreenOfDisplay(dpy, scr).default_gcproc BlackPixel(dpy: PDisplay, scr: cint): culong =ScreenOfDisplay(dpy, scr).black_pixelproc WhitePixel(dpy: PDisplay, scr: cint): culong =ScreenOfDisplay(dpy, scr).white_pixelproc QLength(dpy: PDisplay): cint =privDisp.qlenproc DisplayWidth(dpy: PDisplay, scr: cint): cint =ScreenOfDisplay(dpy, scr).widthproc DisplayHeight(dpy: PDisplay, scr: cint): cint =ScreenOfDisplay(dpy, scr).heightproc DisplayWidthMM(dpy: PDisplay, scr: cint): cint =ScreenOfDisplay(dpy, scr).mwidthproc DisplayHeightMM(dpy: PDisplay, scr: cint): cint =ScreenOfDisplay(dpy, scr).mheightproc DisplayPlanes(dpy: PDisplay, scr: cint): cint =ScreenOfDisplay(dpy, scr).root_depthproc DisplayCells(dpy: PDisplay, scr: cint): cint =DefaultVisual(dpy, scr).map_entriesproc ScreenCount(dpy: PDisplay): cint =privDisp.nscreensproc ServerVendor(dpy: PDisplay): cstring =privDisp.vendorproc ProtocolVersion(dpy: PDisplay): cint =privDisp.proto_major_versionproc ProtocolRevision(dpy: PDisplay): cint =privDisp.proto_minor_versionproc VendorRelease(dpy: PDisplay): cint =privDisp.releaseproc DisplayString(dpy: PDisplay): cstring =privDisp.display_nameproc DefaultDepth(dpy: PDisplay, scr: cint): cint =ScreenOfDisplay(dpy, scr).root_depthproc DefaultColormap(dpy: PDisplay, scr: cint): Colormap =ScreenOfDisplay(dpy, scr).cmapproc BitmapUnit(dpy: PDisplay): cint =privDisp.bitmap_unitproc BitmapBitOrder(dpy: PDisplay): cint =privDisp.bitmap_bit_orderproc BitmapPad(dpy: PDisplay): cint =privDisp.bitmap_padproc ImageByteOrder(dpy: PDisplay): cint =privDisp.byte_orderproc NextRequest(dpy: PDisplay): culong =privDisp.request + 1.culongproc LastKnownRequestProcessed(dpy: PDisplay): culong =privDisp.last_request_read# from fowltek/pointer_arithm, required for ScreenOfDisplay()proc offset[A] (some: ptr A; b: int): ptr A =cast[ptr A](cast[int](some) + (b * sizeof(A)))proc ScreenOfDisplay(dpy: PDisplay, scr: cint): PScreen =#addr(((privDisp.screens)[scr]))privDisp.screens.offset(scr.int)proc DefaultScreenOfDisplay(dpy: PDisplay): PScreen =ScreenOfDisplay(dpy, DefaultScreen(dpy))proc DisplayOfScreen(s: PScreen): PDisplay =s.displayproc RootWindowOfScreen(s: PScreen): Window =s.rootproc BlackPixelOfScreen(s: PScreen): culong =s.black_pixelproc WhitePixelOfScreen(s: PScreen): culong =s.white_pixelproc DefaultColormapOfScreen(s: PScreen): Colormap =s.cmapproc DefaultDepthOfScreen(s: PScreen): cint =s.root_depthproc DefaultGCOfScreen(s: PScreen): GC =s.default_gcproc DefaultVisualOfScreen(s: PScreen): PVisual =s.root_visualproc WidthOfScreen(s: PScreen): cint =s.widthproc HeightOfScreen(s: PScreen): cint =s.heightproc WidthMMOfScreen(s: PScreen): cint =s.mwidthproc HeightMMOfScreen(s: PScreen): cint =s.mheightproc PlanesOfScreen(s: PScreen): cint =s.root_depthproc CellsOfScreen(s: PScreen): cint =DefaultVisualOfScreen(s).map_entriesproc MinCmapsOfScreen(s: PScreen): cint =s.min_mapsproc MaxCmapsOfScreen(s: PScreen): cint =s.max_mapsproc DoesSaveUnders(s: PScreen): XBool =s.save_undersproc DoesBackingStore(s: PScreen): cint =s.backing_storeproc EventMaskOfScreen(s: PScreen): clong =s.root_input_maskproc XAllocID(dpy: PDisplay): XID =privDisp.resource_alloc(dpy)
importx, xlib, xkb#, bitopsinclude "x11pragma.nim"typePXkbAnyEvent* = ptr XkbAnyEventXkbAnyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # milliseconds;xkb_type*: int16 # XKB event minor codedevice*: int16 # device ID{.deprecated: [TXkbAnyEvent: XkbAnyEvent].}typePXkbNewKeyboardNotifyEvent* = ptr XkbNewKeyboardNotifyEventXkbNewKeyboardNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbNewKeyboardNotifydevice*: int16 # device IDold_device*: int16 # device ID of previous keyboardmin_key_code*: int16 # minimum key codemax_key_code*: int16 # maximum key codeold_min_key_code*: int16 # min key code of previous kbdold_max_key_code*: int16 # max key code of previous kbdchanged*: int16 # changed aspects of the keyboardreq_major*: int8 # major and minor opcode of reqreq_minor*: int8 # that caused change, if applicable{.deprecated: [TXkbNewKeyboardNotifyEvent: XkbNewKeyboardNotifyEvent].}typePXkbMapNotifyEvent* = ptr XkbMapNotifyEventXkbMapNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent requestdisplay*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbMapNotifydevice*: int16 # device IDchanged*: int16 # fields which have been changedflags*: int16 # reservedfirst_type*: int16 # first changed key typenum_types*: int16 # number of changed key typesmin_key_code*: KeyCodemax_key_code*: KeyCodefirst_key_sym*: KeyCodefirst_key_act*: KeyCodefirst_key_behavior*: KeyCodefirst_key_explicit*: KeyCodefirst_modmap_key*: KeyCodefirst_vmodmap_key*: KeyCodenum_key_syms*: int16num_key_acts*: int16num_key_behaviors*: int16num_key_explicit*: int16num_modmap_keys*: int16num_vmodmap_keys*: int16vmods*: int16 # mask of changed virtual mods{.deprecated: [TXkbMapNotifyEvent: XkbMapNotifyEvent].}typePXkbStateNotifyEvent* = ptr XkbStateNotifyEventXkbStateNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbStateNotifydevice*: int16 # device IDchanged*: int16 # mask of changed state componentsgroup*: int16 # keyboard groupbase_group*: int16 # base keyboard grouplatched_group*: int16 # latched keyboard grouplocked_group*: int16 # locked keyboard groupmods*: int16 # modifier statebase_mods*: int16 # base modifier statelatched_mods*: int16 # latched modifierslocked_mods*: int16 # locked modifierscompat_state*: int16 # compatibility stategrab_mods*: int8 # mods used for grabscompat_grab_mods*: int8 # grab mods for non-XKB clientslookup_mods*: int8 # mods sent to clientscompat_lookup_mods*: int8 # mods sent to non-XKB clientsptr_buttons*: int16 # pointer button statekeycode*: KeyCode # keycode that caused the changeevent_type*: int8 # KeyPress or KeyReleasereq_major*: int8 # Major opcode of requestreq_minor*: int8 # Minor opcode of request{.deprecated: [TXkbStateNotifyEvent: XkbStateNotifyEvent].}typePXkbControlsNotifyEvent* = ptr XkbControlsNotifyEventXkbControlsNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbControlsNotifydevice*: int16 # device IDchanged_ctrls*: int16 # controls with changed sub-valuesenabled_ctrls*: int16 # controls currently enabledenabled_ctrl_changes*: int16 # controls just {en,dis}ablednum_groups*: int16 # total groups on keyboardkeycode*: KeyCode # key that caused change or 0event_type*: int8 # type of event that caused changereq_major*: int8 # if keycode==0, major and minorreq_minor*: int8 # opcode of req that caused change{.deprecated: [TXkbControlsNotifyEvent: XkbControlsNotifyEvent].}typePXkbIndicatorNotifyEvent* = ptr XkbIndicatorNotifyEventXkbIndicatorNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbIndicatorNotifydevice*: int16 # devicechanged*: int16 # indicators with new state or mapstate*: int16 # current state of all indicators{.deprecated: [TXkbIndicatorNotifyEvent: XkbIndicatorNotifyEvent].}typePXkbNamesNotifyEvent* = ptr XkbNamesNotifyEventXkbNamesNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbNamesNotifydevice*: int16 # device IDchanged*: int32 # names that have changedfirst_type*: int16 # first key type with new namenum_types*: int16 # number of key types with new namesfirst_lvl*: int16 # first key type new new level namesnum_lvls*: int16 # # of key types w/new level namesnum_aliases*: int16 # total number of key aliasesnum_radio_groups*: int16 # total number of radio groupschanged_vmods*: int16 # virtual modifiers with new nameschanged_groups*: int16 # groups with new nameschanged_indicators*: int16 # indicators with new namesfirst_key*: int16 # first key with new namenum_keys*: int16 # number of keys with new names{.deprecated: [TXkbNamesNotifyEvent: XkbNamesNotifyEvent].}typePXkbCompatMapNotifyEvent* = ptr XkbCompatMapNotifyEventXkbCompatMapNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbCompatMapNotifydevice*: int16 # device IDchanged_groups*: int16 # groups with new compat mapsfirst_si*: int16 # first new symbol interpnum_si*: int16 # number of new symbol interpsnum_total_si*: int16 # total # of symbol interps{.deprecated: [TXkbCompatMapNotifyEvent: XkbCompatMapNotifyEvent].}typePXkbBellNotifyEvent* = ptr XkbBellNotifyEventXkbBellNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbBellNotifydevice*: int16 # device IDpercent*: int16 # requested volume as a % of maximumpitch*: int16 # requested pitch in Hzduration*: int16 # requested duration in usecondsbell_class*: int16 # (input extension) feedback classbell_id*: int16 # (input extension) ID of feedbackname*: Atom # "name" of requested bellwindow*: Window # window associated with eventevent_only*: bool # "event only" requested{.deprecated: [TXkbBellNotifyEvent: XkbBellNotifyEvent].}typePXkbActionMessageEvent* = ptr XkbActionMessageEventXkbActionMessageEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbActionMessagedevice*: int16 # device IDkeycode*: KeyCode # key that generated the eventpress*: bool # true if act caused by key presskey_event_follows*: bool # true if key event also generatedgroup*: int16 # effective groupmods*: int16 # effective modsmessage*: array[0..XkbActionMessageLength, char] # message -- leave space for NUL{.deprecated: [TXkbActionMessageEvent: XkbActionMessageEvent].}typePXkbAccessXNotifyEvent* = ptr XkbAccessXNotifyEventXkbAccessXNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbAccessXNotifydevice*: int16 # device IDdetail*: int16 # XkbAXN_*keycode*: int16 # key of eventsk_delay*: int16 # current slow keys delaydebounce_delay*: int16 # current debounce delay{.deprecated: [TXkbAccessXNotifyEvent: XkbAccessXNotifyEvent].}typePXkbExtensionDeviceNotifyEvent* = ptr XkbExtensionDeviceNotifyEventXkbExtensionDeviceNotifyEvent*{.final.} = objecttheType*: int16 # XkbAnyEventserial*: int32 # of last req processed by serversend_event*: bool # is this `from` a SendEvent request?display*: PDisplay # Display the event was read `from`time*: Time # millisecondsxkb_type*: int16 # XkbExtensionDeviceNotifydevice*: int16 # device IDreason*: int16 # reason for the eventsupported*: int16 # mask of supported featuresunsupported*: int16 # mask of unsupported features# that some app tried to usefirst_btn*: int16 # first button that changednum_btns*: int16 # range of buttons changedleds_defined*: int16 # indicators with names or mapsled_state*: int16 # current state of the indicatorsled_class*: int16 # feedback class for led changesled_id*: int16 # feedback id for led changes{.deprecated: [TXkbExtensionDeviceNotifyEvent: XkbExtensionDeviceNotifyEvent].}typePXkbEvent* = ptr XkbEventXkbEvent*{.final.} = objecttheType*: int16any*: XkbAnyEventnew_kbd*: XkbNewKeyboardNotifyEventmap*: XkbMapNotifyEventstate*: XkbStateNotifyEventctrls*: XkbControlsNotifyEventindicators*: XkbIndicatorNotifyEventnames*: XkbNamesNotifyEventcompat*: XkbCompatMapNotifyEventbell*: XkbBellNotifyEventmessage*: XkbActionMessageEventaccessx*: XkbAccessXNotifyEventdevice*: XkbExtensionDeviceNotifyEventcore*: XEvent{.deprecated: [TXkbEvent: XkbEvent].}typePXkbKbdDpyStatePtr* = ptr XkbKbdDpyStateRecXkbKbdDpyStateRec*{.final.} = object # XkbOpenDisplay error codes{.deprecated: [TXkbKbdDpyStateRec: XkbKbdDpyStateRec].}constXkbOD_Success* = 0XkbOD_BadLibraryVersion* = 1XkbOD_ConnectionRefused* = 2XkbOD_NonXkbServer* = 3XkbOD_BadServerVersion* = 4 # Values for XlibFlagsconstXkbLC_ForceLatin1Lookup* = 1 shl 0XkbLC_ConsumeLookupMods* = 1 shl 1XkbLC_AlwaysConsumeShiftAndLock* = 1 shl 2XkbLC_IgnoreNewKeyboards* = 1 shl 3XkbLC_ControlFallback* = 1 shl 4XkbLC_ConsumeKeysOnComposeFail* = 1 shl 29XkbLC_ComposeLED* = 1 shl 30XkbLC_BeepOnComposeFail* = 1 shl 31XkbLC_AllComposeControls* = 0xC0000000XkbLC_AllControls* = 0xC000001Fproc XkbIgnoreExtension*(ignore: bool): bool{.libx11c,importc: "XkbIgnoreExtension".}proc XkbOpenDisplay*(name: cstring, ev_rtrn, err_rtrn, major_rtrn, minor_rtrn,reason: ptr int16): PDisplay{.libx11c, importc: "XkbOpenDisplay".}proc XkbQueryExtension*(dpy: PDisplay, opcodeReturn, eventBaseReturn,errorBaseReturn, majorRtrn, minorRtrn: ptr int16): bool{.libx11c, importc: "XkbQueryExtension".}proc XkbUseExtension*(dpy: PDisplay, major_rtrn, minor_rtrn: ptr int16): bool{.libx11c, importc: "XkbUseExtension".}proc XkbLibraryVersion*(libMajorRtrn, libMinorRtrn: ptr int16): bool{.libx11c, importc: "XkbLibraryVersion".}proc XkbSetXlibControls*(dpy: PDisplay, affect, values: int16): int16{.libx11c, importc: "XkbSetXlibControls".}proc XkbGetXlibControls*(dpy: PDisplay): int16{.libx11c,importc: "XkbGetXlibControls".}typeXkbInternAtomFunc* = proc (dpy: PDisplay, name: cstring, only_if_exists: bool): Atom{.cdecl.}typeXkbGetAtomNameFunc* = proc (dpy: PDisplay, atom: Atom): cstring{.cdecl.}proc XkbSetAtomFuncs*(getAtom: XkbInternAtomFunc, getName: XkbGetAtomNameFunc){.libx11c, importc: "XkbSetAtomFuncs".}proc XkbKeycodeToKeysym*(dpy: PDisplay, kc: KeyCode, group, level: int16): KeySym{.libx11c, importc: "XkbKeycodeToKeysym".}proc XkbKeysymToModifiers*(dpy: PDisplay, ks: KeySym): int16{.libx11c, importc: "XkbKeysymToModifiers".}proc XkbLookupKeySym*(dpy: PDisplay, keycode: KeyCode,modifiers, modifiers_return: int16, keysym_return: PKeySym): bool{.libx11c, importc: "XkbLookupKeySym".}proc XkbLookupKeyBinding*(dpy: PDisplay, sym_rtrn: KeySym, mods: int16,buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.libx11c, importc: "XkbLookupKeyBinding".}proc XkbTranslateKeyCode*(xkb: PXkbDescPtr, keycode: KeyCode,modifiers, modifiers_return: int16,keysym_return: PKeySym): bool{.libx11c,importc: "XkbTranslateKeyCode".}proc XkbTranslateKeySym*(dpy: PDisplay, sym_return: KeySym, modifiers: int16,buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.libx11c, importc: "XkbTranslateKeySym".}proc XkbSetAutoRepeatRate*(dpy: PDisplay, deviceSpec, delay, interval: int16): bool{.libx11c, importc: "XkbSetAutoRepeatRate".}proc XkbGetAutoRepeatRate*(dpy: PDisplay, deviceSpec: int16,delayRtrn, intervalRtrn: PWord): bool{.libx11c, importc: "XkbGetAutoRepeatRate".}proc XkbChangeEnabledControls*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.libx11c, importc: "XkbChangeEnabledControls".}proc XkbDeviceBell*(dpy: PDisplay, win: Window,deviceSpec, bellClass, bellID, percent: int16, name: Atom): bool{.libx11c, importc: "XkbDeviceBell".}proc XkbForceDeviceBell*(dpy: PDisplay,deviceSpec, bellClass, bellID, percent: int16): bool{.libx11c, importc: "XkbForceDeviceBell".}proc XkbDeviceBellEvent*(dpy: PDisplay, win: Window,deviceSpec, bellClass, bellID, percent: int16,name: Atom): bool{.libx11c,importc: "XkbDeviceBellEvent".}proc XkbBell*(dpy: PDisplay, win: Window, percent: int16, name: Atom): bool{.libx11c, importc: "XkbBell".}proc XkbForceBell*(dpy: PDisplay, percent: int16): bool{.libx11c,importc: "XkbForceBell".}proc XkbBellEvent*(dpy: PDisplay, win: Window, percent: int16, name: Atom): bool{.libx11c, importc: "XkbBellEvent".}proc XkbSelectEvents*(dpy: PDisplay, deviceID, affect, values: int16): bool{.libx11c, importc: "XkbSelectEvents".}proc XkbSelectEventDetails*(dpy: PDisplay, deviceID, eventType: int16,affect, details: int32): bool{.libx11c, importc: "XkbSelectEventDetails".}proc XkbNoteMapChanges*(old: PXkbMapChangesPtr, new: PXkbMapNotifyEvent,wanted: int16){.libx11c,importc: "XkbNoteMapChanges".}proc XkbNoteNameChanges*(old: PXkbNameChangesPtr, new: PXkbNamesNotifyEvent,wanted: int16){.libx11c,importc: "XkbNoteNameChanges".}proc XkbGetIndicatorState*(dpy: PDisplay, deviceSpec: int16, pStateRtrn: PWord): Status{.libx11c, importc: "XkbGetIndicatorState".}proc XkbGetDeviceIndicatorState*(dpy: PDisplay,deviceSpec, ledClass, ledID: int16,pStateRtrn: PWord): Status{.libx11c, importc: "XkbGetDeviceIndicatorState".}proc XkbGetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetIndicatorMap".}proc XkbSetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.libx11c, importc: "XkbSetIndicatorMap".}proc XkbNoteIndicatorMapChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)proc XkbNoteIndicatorStateChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)proc XkbGetIndicatorMapChanges*(d: PDisplay, x: PXkbDescPtr,c: PXkbIndicatorChangesPtr): Statusproc XkbChangeIndicatorMaps*(d: PDisplay, x: PXkbDescPtr,c: PXkbIndicatorChangesPtr): boolproc XkbGetNamedIndicator*(dpy: PDisplay, name: Atom, pNdxRtrn: ptr int16,pStateRtrn: ptr bool, pMapRtrn: PXkbIndicatorMapPtr,pRealRtrn: ptr bool): bool{.libx11c,importc: "XkbGetNamedIndicator".}proc XkbGetNamedDeviceIndicator*(dpy: PDisplay,deviceSpec, ledClass, ledID: int16,name: Atom, pNdxRtrn: ptr int16,pStateRtrn: ptr bool,pMapRtrn: PXkbIndicatorMapPtr,pRealRtrn: ptr bool): bool{.libx11c, importc: "XkbGetNamedDeviceIndicator".}proc XkbSetNamedIndicator*(dpy: PDisplay, name: Atom,changeState, state, createNewMap: bool,pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedIndicator".}proc XkbSetNamedDeviceIndicator*(dpy: PDisplay,deviceSpec, ledClass, ledID: int16,name: Atom,changeState, state, createNewMap: bool,pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedDeviceIndicator".}proc XkbLockModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.libx11c, importc: "XkbLockModifiers".}proc XkbLatchModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.libx11c, importc: "XkbLatchModifiers".}proc XkbLockGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLockGroup".}proc XkbLatchGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLatchGroup".}proc XkbSetServerInternalMods*(dpy: PDisplay, deviceSpec, affectReal,realValues, affectVirtual, virtualValues: int16): bool{.libx11c, importc: "XkbSetServerInternalMods".}proc XkbSetIgnoreLockMods*(dpy: PDisplay, deviceSpec, affectReal, realValues,affectVirtual, virtualValues: int16): bool{.libx11c,importc: "XkbSetIgnoreLockMods".}proc XkbVirtualModsToReal*(dpy: PDisplay, virtual_mask: int16, mask_rtrn: PWord): bool{.libx11c, importc: "XkbVirtualModsToReal".}proc XkbComputeEffectiveMap*(xkb: PXkbDescPtr, theType: PXkbKeyTypePtr,map_rtrn: PByte): bool{.libx11c,importc: "XkbComputeEffectiveMap".}proc XkbInitCanonicalKeyTypes*(xkb: PXkbDescPtr, which: int16, keypadVMod: int16): Status{.libx11c, importc: "XkbInitCanonicalKeyTypes".}proc XkbAllocKeyboard*(): PXkbDescPtr{.libx11c,importc: "XkbAllocKeyboard".}proc XkbFreeKeyboard*(xkb: PXkbDescPtr, which: int16, freeDesc: bool){.libx11c, importc: "XkbFreeKeyboard".}proc XkbAllocClientMap*(xkb: PXkbDescPtr, which, nTypes: int16): Status{.libx11c, importc: "XkbAllocClientMap".}proc XkbAllocServerMap*(xkb: PXkbDescPtr, which, nActions: int16): Status{.libx11c, importc: "XkbAllocServerMap".}proc XkbFreeClientMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeClientMap".}proc XkbFreeServerMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeServerMap".}proc XkbAddKeyType*(xkb: PXkbDescPtr, name: Atom, map_count: int16,want_preserve: bool, num_lvls: int16): PXkbKeyTypePtr{.libx11c, importc: "XkbAddKeyType".}proc XkbAllocIndicatorMaps*(xkb: PXkbDescPtr): Status{.libx11c,importc: "XkbAllocIndicatorMaps".}proc XkbFreeIndicatorMaps*(xkb: PXkbDescPtr){.libx11c,importc: "XkbFreeIndicatorMaps".}proc XkbGetMap*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.libx11c, importc: "XkbGetMap".}proc XkbGetUpdatedMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetUpdatedMap".}proc XkbGetMapChanges*(dpy: PDisplay, xkb: PXkbDescPtr,changes: PXkbMapChangesPtr): Status{.libx11c, importc: "XkbGetMapChanges".}proc XkbRefreshKeyboardMapping*(event: PXkbMapNotifyEvent): Status{.libx11c, importc: "XkbRefreshKeyboardMapping".}proc XkbGetKeyTypes*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): Status{.libx11c, importc: "XkbGetKeyTypes".}proc XkbGetKeySyms*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): Status{.libx11c, importc: "XkbGetKeySyms".}proc XkbGetKeyActions*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): Status{.libx11c, importc: "XkbGetKeyActions".}proc XkbGetKeyBehaviors*(dpy: PDisplay, firstKey, nKeys: int16,desc: PXkbDescPtr): Status{.libx11c,importc: "XkbGetKeyBehaviors".}proc XkbGetVirtualMods*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetVirtualMods".}proc XkbGetKeyExplicitComponents*(dpy: PDisplay, firstKey, nKeys: int16,desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetKeyExplicitComponents".}proc XkbGetKeyModifierMap*(dpy: PDisplay, firstKey, nKeys: int16,desc: PXkbDescPtr): Status{.libx11c,importc: "XkbGetKeyModifierMap".}proc XkbAllocControls*(xkb: PXkbDescPtr, which: int16): Status{.libx11c, importc: "XkbAllocControls".}proc XkbFreeControls*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeControls".}# should which be int32 like it originally was?proc XkbGetControls*(dpy: PDisplay, which: int64, desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetControls".}proc XkbSetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.libx11c, importc: "XkbSetControls".}proc XkbNoteControlsChanges*(old: PXkbControlsChangesPtr,new: PXkbControlsNotifyEvent, wanted: int16){.libx11c, importc: "XkbNoteControlsChanges".}proc XkbGetControlsChanges*(d: PDisplay, x: PXkbDescPtr,c: PXkbControlsChangesPtr): Statusproc XkbChangeControls*(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): boolproc XkbAllocCompatMap*(xkb: PXkbDescPtr, which, nInterpret: int16): Status{.libx11c, importc: "XkbAllocCompatMap".}proc XkbFreeCompatMap*(xkib: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeCompatMap".}proc XkbGetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr): Status{.libx11c, importc: "XkbGetCompatMap".}proc XkbSetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr,updateActions: bool): bool{.libx11c,importc: "XkbSetCompatMap".}proc XkbAddSymInterpret*(xkb: PXkbDescPtr, si: PXkbSymInterpretPtr,updateMap: bool, changes: PXkbChangesPtr): PXkbSymInterpretPtr{.libx11c, importc: "XkbAddSymInterpret".}proc XkbAllocNames*(xkb: PXkbDescPtr, which: int16, nTotalRG, nTotalAliases: int16): Status{.libx11c, importc: "XkbAllocNames".}proc XkbGetNames*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetNames".}proc XkbSetNames*(dpy: PDisplay, which, firstType, nTypes: int16, desc: PXkbDescPtr): bool{.libx11c,importc: "XkbSetNames".}proc XkbChangeNames*(dpy: PDisplay, xkb: PXkbDescPtr,changes: PXkbNameChangesPtr): bool{.libx11c, importc: "XkbChangeNames".}proc XkbFreeNames*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeNames".}proc XkbGetState*(dpy: PDisplay, deviceSpec: int16, rtrnState: PXkbStatePtr): Status{.libx11c, importc: "XkbGetState".}proc XkbSetMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): bool{.libx11c, importc: "XkbSetMap".}proc XkbChangeMap*(dpy: PDisplay, desc: PXkbDescPtr, changes: PXkbMapChangesPtr): bool{.libx11c, importc: "XkbChangeMap".}proc XkbSetDetectableAutoRepeat*(dpy: PDisplay, detectable: bool,supported: ptr bool): bool{.libx11c, importc: "XkbSetDetectableAutoRepeat".}proc XkbGetDetectableAutoRepeat*(dpy: PDisplay, supported: ptr bool): bool{.libx11c, importc: "XkbGetDetectableAutoRepeat".}proc XkbSetAutoResetControls*(dpy: PDisplay, changes: int16,auto_ctrls, auto_values: PWord): bool{.libx11c, importc: "XkbSetAutoResetControls".}proc XkbGetAutoResetControls*(dpy: PDisplay, auto_ctrls, auto_ctrl_values: PWord): bool{.libx11c, importc: "XkbGetAutoResetControls".}proc XkbSetPerClientControls*(dpy: PDisplay, change: int16, values: PWord): bool{.libx11c, importc: "XkbSetPerClientControls".}proc XkbGetPerClientControls*(dpy: PDisplay, ctrls: PWord): bool{.libx11c, importc: "XkbGetPerClientControls".}proc XkbCopyKeyType*(`from`, into: PXkbKeyTypePtr): Status{.libx11c, importc: "XkbCopyKeyType".}proc XkbCopyKeyTypes*(`from`, into: PXkbKeyTypePtr, num_types: int16): Status{.libx11c, importc: "XkbCopyKeyTypes".}proc XkbResizeKeyType*(xkb: PXkbDescPtr, type_ndx, map_count: int16,want_preserve: bool, new_num_lvls: int16): Status{.libx11c, importc: "XkbResizeKeyType".}proc XkbResizeKeySyms*(desc: PXkbDescPtr, forKey, symsNeeded: int16): PKeySym{.libx11c, importc: "XkbResizeKeySyms".}proc XkbResizeKeyActions*(desc: PXkbDescPtr, forKey, actsNeeded: int16): PXkbAction{.libx11c, importc: "XkbResizeKeyActions".}proc XkbChangeTypesOfKey*(xkb: PXkbDescPtr, key, num_groups: int16,groups: int16, newTypes: ptr int16,pChanges: PXkbMapChangesPtr): Status{.libx11c, importc: "XkbChangeTypesOfKey".}proc XkbListComponents*(dpy: PDisplay, deviceSpec: int16,ptrns: PXkbComponentNamesPtr, max_inout: ptr int16): PXkbComponentListPtr{.libx11c, importc: "XkbListComponents".}proc XkbFreeComponentList*(list: PXkbComponentListPtr){.libx11c,importc: "XkbFreeComponentList".}proc XkbGetKeyboard*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.libx11c, importc: "XkbGetKeyboard".}proc XkbGetKeyboardByName*(dpy: PDisplay, deviceSpec: int16,names: PXkbComponentNamesPtr, want, need: int16,load: bool): PXkbDescPtr{.libx11c,importc: "XkbGetKeyboardByName".}proc XkbKeyTypesForCoreSymbols*(xkb: PXkbDescPtr,map_width: int16, # keyboard devicecore_syms: PKeySym, # always mapWidth symbolsprotected: int16, # explicit key typestypes_inout: ptr int16, # always four type indicesxkb_syms_rtrn: PKeySym): int16{.libx11c, importc: "XkbKeyTypesForCoreSymbols".}# must have enough spaceproc XkbApplyCompatMapToKey*(xkb: PXkbDescPtr,key: KeyCode, # key to be updatedchanges: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyCompatMapToKey".}# resulting changes to mapproc XkbUpdateMapFromCore*(xkb: PXkbDescPtr,first_key: KeyCode, # first changed keynum_keys,map_width: int16,core_keysyms: PKeySym, # symbols `from` core keymapchanges: PXkbChangesPtr): bool{.libx11c, importc: "XkbUpdateMapFromCore".}proc XkbAddDeviceLedInfo*(devi: PXkbDeviceInfoPtr, ledClass, ledId: int16): PXkbDeviceLedInfoPtr{.libx11c, importc: "XkbAddDeviceLedInfo".}proc XkbResizeDeviceButtonActions*(devi: PXkbDeviceInfoPtr, newTotal: int16): Status{.libx11c, importc: "XkbResizeDeviceButtonActions".}proc XkbAllocDeviceInfo*(deviceSpec, nButtons, szLeds: int16): PXkbDeviceInfoPtr{.libx11c, importc: "XkbAllocDeviceInfo".}proc XkbFreeDeviceInfo*(devi: PXkbDeviceInfoPtr, which: int16, freeDevI: bool){.libx11c, importc: "XkbFreeDeviceInfo".}proc XkbNoteDeviceChanges*(old: PXkbDeviceChangesPtr,new: PXkbExtensionDeviceNotifyEvent, wanted: int16){.libx11c, importc: "XkbNoteDeviceChanges".}proc XkbGetDeviceInfo*(dpy: PDisplay, which, deviceSpec, ledClass, ledID: int16): PXkbDeviceInfoPtr{.libx11c, importc: "XkbGetDeviceInfo".}proc XkbGetDeviceInfoChanges*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,changes: PXkbDeviceChangesPtr): Status{.libx11c, importc: "XkbGetDeviceInfoChanges".}proc XkbGetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,all: bool, first, nBtns: int16): Status{.libx11c, importc: "XkbGetDeviceButtonActions".}proc XkbGetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,ledClass, ledId, which: int16): Status{.libx11c, importc: "XkbGetDeviceLedInfo".}proc XkbSetDeviceInfo*(dpy: PDisplay, which: int16, devi: PXkbDeviceInfoPtr): bool{.libx11c, importc: "XkbSetDeviceInfo".}proc XkbChangeDeviceInfo*(dpy: PDisplay, desc: PXkbDeviceInfoPtr,changes: PXkbDeviceChangesPtr): bool{.libx11c, importc: "XkbChangeDeviceInfo".}proc XkbSetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,ledClass, ledID, which: int16): bool{.libx11c, importc: "XkbSetDeviceLedInfo".}proc XkbSetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,first, nBtns: int16): bool{.libx11c, importc: "XkbSetDeviceButtonActions".}proc XkbToControl*(c: int8): int8{.libx11c,importc: "XkbToControl".}proc XkbSetDebuggingFlags*(dpy: PDisplay, mask, flags: int16, msg: cstring,ctrls_mask, ctrls, rtrn_flags, rtrn_ctrls: int16): bool{.libx11c, importc: "XkbSetDebuggingFlags".}proc XkbApplyVirtualModChanges*(xkb: PXkbDescPtr, changed: int16,changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyVirtualModChanges".}# implementationproc XkbNoteIndicatorMapChanges(o, n: PXkbIndicatorChangesPtr, w: int16) =# XkbNoteIndicatorMapChanges(o,n,w) ((o)->map_changes|=((n)->map_changes&(w)))o.map_changes = o.map_changes or (n.map_changes and w)proc XkbNoteIndicatorStateChanges(o, n: PXkbIndicatorChangesPtr, w: int16) =# XkbNoteIndicatorStateChanges(o,n,w) ((o)->state_changes|=((n)->state_changes&(w)))o.state_changes = o.state_changes or (n.state_changes and (w))proc XkbGetIndicatorMapChanges(d: PDisplay, x: PXkbDescPtr,c: PXkbIndicatorChangesPtr): Status =# XkbGetIndicatorMapChanges(d,x,c) (XkbGetIndicatorMap((d),(c)->map_changes,x)result = XkbGetIndicatorMap(d, c.map_changes, x)proc XkbChangeIndicatorMaps(d: PDisplay, x: PXkbDescPtr,c: PXkbIndicatorChangesPtr): bool =# XkbChangeIndicatorMaps(d,x,c) (XkbSetIndicatorMap((d),(c)->map_changes,x))result = XkbSetIndicatorMap(d, c.map_changes, x)proc XkbGetControlsChanges(d: PDisplay, x: PXkbDescPtr,c: PXkbControlsChangesPtr): Status =# XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)result = XkbGetControls(d, c.changed_ctrls, x)proc XkbChangeControls(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool =# XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)result = XkbSetControls(d, c.changed_ctrls, x)
from xlib import DisplaytypeXkbRF_VarDefsRec* {.bycopy.} = objectmodel*: cstringlayout*: cstringvariant*: cstringoptions*: cstringsz_extra*: cushortnum_extra*: cushortextra_names*: cstringextra_values*: cstringArrayXkbRF_VarDefsPtr* = ptr XkbRF_VarDefsRecXkbRF_VarDescRec* {.bycopy.} = objectname*: cstringdesc*: cstringXkbRF_VarDescPtr* = ptr XkbRF_VarDescRecXkbRF_DescribeVarsRec* {.bycopy.} = objectsz_desc*: cintnum_desc*: cintdesc*: XkbRF_VarDescPtrXkbRF_DescribeVarsPtr* = ptr XkbRF_DescribeVarsRecXkbRF_RuleRec* {.bycopy.} = objectnumber*: cintlayout_num*: cintvariant_num*: cintmodel*: cstringlayout*: cstringvariant*: cstringoption*: cstringkeycodes*: cstringsymbols*: cstringtypes*: cstringcompat*: cstringgeometry*: cstringkeymap*: cstringflags*: cuintXkbRF_RulePtr* = ptr XkbRF_RuleRecXkbRF_GroupRec* {.bycopy.} = objectnumber*: cintname*: cstringwords*: cstringXkbRF_GroupPtr* = ptr XkbRF_GroupRecconstXkbRF_PendingMatch* = 2XkbRF_Option* = 4XkbRF_Append* = 8XkbRF_Normal* = 16XkbRF_Invalid* = 32XKB_RF_NAMES_PROP_ATOM* = "_XKB_RULES_NAMES"XKB_RF_NAMES_PROP_MAXLEN* = 1024typeXkbRF_RulesRec* {.bycopy.} = objectmodels*: XkbRF_DescribeVarsReclayouts*: XkbRF_DescribeVarsRecvariants*: XkbRF_DescribeVarsRecoptions*: XkbRF_DescribeVarsRecsz_extra*: cushortnum_extra*: cushortextra_names*: cstringArrayextra*: XkbRF_DescribeVarsPtrsz_rules*: cushortnum_rules*: cushortrules*: XkbRF_RulePtrsz_groups*: cushortnum_groups*: cushortgroups*: XkbRF_GroupPtrXkbRF_RulesPtr* = ptr XkbRF_RulesRecproc XkbRF_GetNamesProp*( a1: ptr Display, a2: cstringArray, a3: XkbRF_VarDefsPtr): bool {.importc, cdecl.}proc XkbRF_SetNamesProp*( a1: ptr Display, a2: cstring, a3: XkbRF_VarDefsPtr): bool {.importc, cdecl.}proc XkbRF_AddRule*(a1: XkbRF_RulesPtr): XkbRF_RulePtr {.importc, cdecl.}proc XkbRF_AddGroup*(rules: XkbRF_RulesPtr): XkbRF_GroupPtr {.importc, cdecl.}proc XkbRF_LoadRules*( a1: ptr FILE, a2: XkbRF_RulesPtr): bool {.importc, cdecl.}proc XkbRF_LoadRulesByName*(a1: cstring; a2: cstring; a3: XkbRF_RulesPtr): bool {.importc, cdecl.}proc XkbRF_AddVarDesc*(a1: XkbRF_DescribeVarsPtr): XkbRF_VarDescPtr {.importc, cdecl.}proc XkbRF_AddVarDescCopy*( a1: XkbRF_DescribeVarsPtr, a2: XkbRF_VarDescPtr): XkbRF_VarDescPtr {.importc, cdecl.}proc XkbRF_AddVarToDescribe*( a1: XkbRF_RulesPtr, a2: cstring): XkbRF_DescribeVarsPtr {.importc, cdecl.}proc XkbRF_LoadDescriptions*(a1: ptr FILE;a2: XkbRF_RulesPtr): bool {.importc, cdecl.}proc XkbRF_LoadDescriptionsByName*(a1: cstring; a2: cstring; a3: XkbRF_RulesPtr): bool {.importc, cdecl.}proc XkbRF_Load*(a1: cstring; a2: cstring; a3: bool;a4: bool): XkbRF_RulesPtr {.importc, cdecl.}proc XkbRF_Create*(a1: cint; a2: cint): XkbRF_RulesPtr {.importc, cdecl.}proc XkbRF_Free*( a1: XkbRF_RulesPtr, a2: bool) {.importc, cdecl.}
{.experimental: "codeReordering".}import xcb#, bitopstypexkb_mod_index_t* = uint32xkb_mod_mask_t* = uint32xkb_led_mask_t* = uint32xkb_keycode_t* = uint32xkb_layout_index_t* = uint32xkb_level_index_t* = uint32xkb_keysym_t* = uint32xkb_layout_mask_t* = uint32constXKB_MAX_GROUPS* = 4#Don't allow more modifiers than we can hold in xkb_mod_mask_t.XKB_MAX_MODS* = sizeof(uint32) * 8# Don't allow more leds than we can hold in xkb_led_mask_t.XKB_MAX_LEDS* = sizeof(uint32) * 8MOD_REAL_MASK_ALL* = uint32 0x000000fftypexkb_explicit_components* = enumEXPLICIT_INTERP = (1 shl 0)xkb_range_exceed_type* = enumRANGE_WRAP = 0mod_type* = enumMOD_REAL = (1 shl 0),MOD_VIRT = (1 shl 1),MOD_BOTH = (MOD_REAL.ord or MOD_VIRT.ord)xkb_x11_setup_xkb_extension_flags* = enum XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGSxkb_keymap_format* = enum# The current/classic XKB text format, as generated by xkbcomp -xkb.XKB_KEYMAP_FORMAT_TEXT_V1 = 1xkb_action_type* = enumACTION_TYPE_NONE = 0,ACTION_TYPE_MOD_SET,ACTION_TYPE_MOD_LATCH,ACTION_TYPE_MOD_LOCK,ACTION_TYPE_GROUP_SET,ACTION_TYPE_GROUP_LATCH,ACTION_TYPE_GROUP_LOCK,ACTION_TYPE_PTR_MOVE,ACTION_TYPE_PTR_BUTTON,ACTION_TYPE_PTR_LOCK,ACTION_TYPE_PTR_DEFAULT,ACTION_TYPE_TERMINATE,ACTION_TYPE_SWITCH_VT,ACTION_TYPE_CTRL_SET,ACTION_TYPE_CTRL_LOCK,ACTION_TYPE_PRIVATE,ACTION_TYPE_NUM_ENTRIESxkb_action_controls* = enumCONTROL_REPEAT = (1 shl 0),CONTROL_SLOW = (1 shl 1),CONTROL_DEBOUNCE = (1 shl 2),CONTROL_STICKY = (1 shl 3),CONTROL_MOUSEKEYS = (1 shl 4),CONTROL_MOUSEKEYS_ACCEL = (1 shl 5),CONTROL_AX = (1 shl 6),CONTROL_AX_TIMEOUT = (1 shl 7),CONTROL_AX_FEEDBACK = (1 shl 8),CONTROL_BELL = (1 shl 9),CONTROL_IGNORE_GROUP_LOCK = (1 shl 10),CONTROL_ALL = CONTROL_REPEAT.ord orCONTROL_SLOW.ord orCONTROL_DEBOUNCE.ord orCONTROL_STICKY.ord orCONTROL_MOUSEKEYS.ord orCONTROL_MOUSEKEYS_ACCEL.ord orCONTROL_AX.ord orCONTROL_AX_TIMEOUT.ord orCONTROL_AX_FEEDBACK.ord orCONTROL_BELL.ord orCONTROL_IGNORE_GROUP_LOCK.ordxkb_rule_names* {.bycopy.} = objectstr0*: cstringstr1*: cstringstr2*: cstringstr3*: cstringstr4*: cstringAtomTable* {.bycopy.} = objectxkb_atom_t* = uint32DArr*[T] {.bycopy.} = objectitem*: ptr Tsize*: cuintalloc*: cuintxkb_keymap_compile_flags* = enum# Do not apply any flags.XKB_KEYMAP_COMPILE_NO_FLAGS = 0xkb_context_flags* = enumXKB_CONTEXT_NO_FLAGS = 0, # Do not apply any context flags.XKB_CONTEXT_NO_DEFAULT_INCLUDES = (1 shl 0), # Create this context with an empty include path.# Don't take RMLVO names from the environment. @since 0.3.0XKB_CONTEXT_NO_ENVIRONMENT_NAMES = (1 shl 1)# Modifier and layout types for state objects. This enum is bitmaskable,# e.g. (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED) is valid to# exclude locked modifiers.# In XKB, the DEPRESSED components are also known as 'base'.xkb_state_component* = enum# Depressed modifiers, i.e. a key is physically holding them.XKB_STATE_MODS_DEPRESSED = (1 shl 0),# Latched modifiers, i.e. will be unset after the next non-modifier key press.XKB_STATE_MODS_LATCHED = (1 shl 1),# Locked modifiers, i.e. will be unset after the key provoking the lock has been pressed again.XKB_STATE_MODS_LOCKED = (1 shl 2),# Effective modifiers, i.e. currently active and affect key# processing (derived from the other state components).# Use this unless you explicitly care how the state came about.XKB_STATE_MODS_EFFECTIVE = (1 shl 3),# Depressed layout, i.e. a key is physically holding it.XKB_STATE_LAYOUT_DEPRESSED = (1 shl 4),# Latched layout, i.e. will be unset after the next non-modifier key press.XKB_STATE_LAYOUT_LATCHED = (1 shl 5),# Locked layout, i.e. will be unset after the key provoking the lock has been pressed again.XKB_STATE_LAYOUT_LOCKED = (1 shl 6),# Effective layout, i.e. currently active and affects key processing# (derived from the other state components).# Use this unless you explicitly care how the state came about.XKB_STATE_LAYOUT_EFFECTIVE = (1 shl 7),# LEDs (derived from the other state components).XKB_STATE_LEDS = (1 shl 8)xkb_log_level* = enumXKB_LOG_LEVEL_CRITICAL = 10, # Log critical internal errors only.XKB_LOG_LEVEL_ERROR = 20, # Log all errors.XKB_LOG_LEVEL_WARNING = 30, # Log warnings and errors.XKB_LOG_LEVEL_INFO = 40, # Log information, warnings, and errors.XKB_LOG_LEVEL_DEBUG = 50 # Log everything.xkb_group* {.bycopy.} = objectout_of_range_group_number*: xkb_layout_index_tnum_groups*: xkb_layout_index_tgroups*: ptr xkb_groupxkb_key* {.bycopy.} = objectkeycode*: xkb_keycode_tname*: xkb_atom_texplicit*: xkb_explicit_componentsmodmap*: xkb_mod_mask_tvmodmap*: xkb_mod_mask_trepeats*: boolout_of_range_group_action*: xkb_range_exceed_typeout_of_range_group_number*: xkb_layout_index_tnum_groups*: xkb_layout_index_tgroups*: ptr xkb_groupxkb_context* {.bycopy.} = objectrefcnt*: intlog_verbosity*: intlogLevel*: xkb_log_leveluserData*: pointerx11_atom_cache*: pointer # Used and allocated by xkbcommon-x11, free()d with the context.text_next*: csize_tuse_environment_names*: uint # 1text_buffer*: cstring #$[2048, char]names_dflt*: xkb_rule_namesincludes*: DArr[ptr char]failedIncludes*: DArr[ptr char]atom_table*: ptr AtomTable## Buffer for the *Text() functions.# ATTR_PRINTF(3, 0) void (*log_fn)(struct xkb_context *ctx,# enum xkb_log_level level,# const char *fmt, va_list args);xkb_key_alias* {.bycopy.} = objectreal: xkb_atom_talias: xkb_atom_txkb_action_flags* {.bycopy.} = enumACTION_LOCK_CLEAR = (1 shl 0)ACTION_LATCH_TO_LOCK = (1 shl 1),ACTION_LOCK_NO_LOCK = (1 shl 2),ACTION_LOCK_NO_UNLOCK = (1 shl 3),ACTION_MODS_LOOKUP_MODMAP = (1 shl 4),ACTION_ABSOLUTE_SWITCH = (1 shl 5),ACTION_ABSOLUTE_X = (1 shl 6),ACTION_ABSOLUTE_Y = (1 shl 7),ACTION_ACCEL = (1 shl 8),ACTION_SAME_SCREEN = (1 shl 9)xkb_compose_state_flags* = enumXKB_COMPOSE_STATE_NO_FLAGS = 0xkb_mods* {.bycopy.} = object# original real+virtual mods in definitionmodMask*: xkb_mod_mask_tactType*: xkb_action_typeflags*: xkb_action_flags#mods: xkb_modsxkb_key_type_entry* {.bycopy.} = objectlevel*: xkb_level_index_tmods*: xkb_modspreserve*: xkb_modsnum_entries*: cuintentries*: ptr xkb_key_type_entryxkb_key_type* {.bycopy.} = objectname*: xkb_atom_tmods*: xkb_modsnum_levels*: xkb_level_index_tnum_level_names*: cuintlevel_names*: ptr xkb_atom_tnum_entries*: cuintentries*: ptr xkb_key_type_entryxkb_match_operation* = enumMATCH_NONEMATCH_ANY_OR_NONEMATCH_ANYMATCH_ALLMATCH_EXACTLYxkb_key_direction* = enum XKB_KEY_UP XKB_KEY_DOWNxkb_compose_compile_flags* = enumXKB_COMPOSE_COMPILE_NO_FLAGS = 0xkb_mod_action* {.bycopy.} = objectactType*: xkb_action_typeflags*: xkb_action_flagsmods*: xkb_modsxkb_group_action* {.bycopy.} = objectactType*: xkb_action_typeflags8: xkb_action_flagsgroup*: int32xkb_controls_action* {.bycopy.} = objectactType*: xkb_action_typeflags*: xkb_action_flagsctrls*: xkb_action_controlsxkb_pointer_default_action* {.bycopy.} = objectactType*: xkb_action_typeflags*: xkb_action_flagsvalue*: int8xkb_switch_screen_action* {.bycopy.} = objectactType*: xkb_action_typeflags*: xkb_action_flagsscreen*: int8xkb_pointer_action* {.bycopy.} = objectactType: xkb_action_typeflags: xkb_action_flagsx: int16y: int16xkb_pointer_button_action* {.bycopy.} = objectactType*: xkb_action_typeflags*: xkb_action_flagscount*: uint8button*: uint8xkb_private_action* {.bycopy.} = objectactType: xkb_action_typedata: array[7,uint8]xkb_action* {.bycopy, union.} = objectactType: xkb_action_typemods: xkb_mod_actiongroup: xkb_group_actionctrls: xkb_controls_actiondflt: xkb_pointer_default_actionscreen: xkb_switch_screen_actionptrAction: xkb_pointer_actionbtn: xkb_pointer_button_actionpriv: xkb_private_actionxkb_sym_interpret* {.bycopy.} = objectsym*: xkb_keysym_tmatch*: xkb_match_operationmods*: xkb_mod_mask_tvirtual_mod*: xkb_mod_index_taction*: xkb_action # union:level_one_only*: boolrepeat*: boolxkb_mod* {.bycopy.} = objectname*: xkb_atom_tmodType*: mod_typemapping*: xkb_mod_mask_txkb_mod_set* {.bycopy.} = objectmods: array[XKB_MAX_MODS, xkb_mod]num_mods: cuintxkb_led* {.bycopy.} = objectname*: xkb_atom_twhich_groups*: xkb_state_componentgroups*: xkb_layout_mask_twhich_mods*: xkb_state_componentmods*: xkb_modsctrls*: xkb_action_controlsxkb_keymap* {.bycopy.} = objectctx*: ptr xkb_contextrefcnt*: cintflags*: xkb_keymap_compile_flagsformat*: xkb_keymap_formatenabled_ctrls*: xkb_action_controlsmin_key_code*: xkb_keycode_tmax_key_code*: xkb_keycode_tkeys*: ptr xkb_key# aliases in no particular ordernum_key_aliases: cuintkey_aliases: ptr xkb_key_aliastypes: ptr xkb_key_typenum_types: cuintnum_sym_interprets: cuintsym_interprets: ptr xkb_sym_interpretmods: xkb_mod_set# Number of groups in the key with the most groups.num_groups: xkb_layout_index_t# Not all groups must have names.num_group_names: xkb_layout_index_tgroup_names: ptr xkb_atom_tleds: array[XKB_MAX_LEDS, xkb_led]num_leds*: cuintkeycodes_section_name: ptr charsymbols_section_name: ptr chartypes_section_name: ptr charcompat_section_name: ptr charxkb_filter* {.bycopy.} = objectaction*: xkb_action # union in Ckey*: ptr xkb_key # declared const struct xkb_key * key in Cpriv*: uint32#[bool (*func)(struct xkb_state *state,struct xkb_filter *filter,const struct xkb_key *key,enum xkb_key_direction direction);]#fnptr: proc( state: ptr xkb_state, filter: ptr xkb_filter, key: ptr xkb_key, direction: xkb_key_direction): ptr boolrefcnt*: cintstate_components* {.bycopy.} = object# These may be negative, because of -1 group actions. */base_group*: int32 # depressedlatched_group*: int32locked_group*: int32group*: xkb_layout_index_t # effectivebase_mods*: xkb_mod_mask_t # depressedlatched_mods*: xkb_mod_mask_tlocked_mods*: xkb_mod_mask_tmods*: xkb_mod_mask_t # effectiveleds*: xkb_led_mask_txkb_state* {.bycopy.} = object# Before updating the state, we keep a copy of just this struct. This# allows us to report which components of the state have changed.components*: state_components# At each event, we accumulate all the needed modifications to the base# modifiers, and apply them at the end. These keep track of this state.set_mods*: xkb_mod_mask_tclear_mods*: xkb_mod_mask_t# We mustn't clear a base modifier if there's another depressed key# which affects it, e.g. given this sequence# < Left Shift down, Right Shift down, Left Shift Up ># the modifier should still be set. This keeps the count.mod_key_count*: array[XKB_MAX_MODS, int16]refcnt*: cintfilters*: DArr[xkb_filter]keymap*: ptr xkb_keymap# Opaque Compose table object.# The compose table holds the definitions of the Compose sequences, as# gathered from Compose files. It is immutable.xkb_compose_table* {.bycopy.} = objectxkb_compose_state* {.bycopy.} = objectrefcnt: cintflags: xkb_compose_state_flagstable: ptr xkb_compose_table# Offsets into xkb_compose_table::nodes.# They maintain the current and previous position in the trie; see# xkb_compose_state_feed().# This is also sufficient for inferring the current status; see# xkb_compose_state_get_status().prev_context: uint16context: uint16proc xkb_x11_setup_xkb_extension*( connection: ptr xcb_connection_t, major_xkb_version: uint16, minor_xkb_version: uint16, flags: xkb_x11_setup_xkb_extension_flags, major_xkb_version_out: ptr uint16, minor_xkb_version_out: ptr uint16, base_event_out: ptr uint8, base_error_out: ptr uint8): int {.importc, cdecl.}proc atom_table_free*(table: ptr AtomTable): void {.importc, cdecl.}proc atom_intern*( table: ptr AtomTable, str: ptr cstring, len: csize_t, add: bool): xkb_atom_t {.importc, cdecl.}proc atom_text*( table: ptr AtomTable, atom: xkb_atom_t): ptr cstring {.importc, cdecl.}proc xkb_context_new*(flags: xkb_context_flags): ptr xkb_context {.importc, cdecl.}proc xkb_keymap_unref*(keymap: ptr xkb_keymap): void {.importc, cdecl.}proc xkb_x11_get_core_keyboard_device_id*(connection: ptr xcb_connection_t): int32 {.importc, cdecl.}proc xkb_x11_keymap_new_from_device*( context: ptr xkb_context, connection: ptr xcb_connection_t, device_id: int32, flags: xkb_keymap_compile_flags): ptr xkb_keymap {.importc, cdecl.}proc xkb_x11_state_new_from_device*( keymap: ptr xkb_keymap, connection: ptr xcb_connection_t, device_id: int32): ptr xkb_state {.importc, cdecl.}#[ Release a reference on a keybaord state object, and possibly free it.@param state The state. If it is NULL, this function does nothing.@memberof xkb_state]#proc xkb_state_unref*( state: ptr xkb_state ): void {.importc, cdecl.}proc xkb_compose_state_unref*( state: ptr xkb_compose_state ): void {.importc, cdecl.}proc xkb_compose_table_unref*( table: ptr xkb_compose_table ): void {.importc, cdecl.}proc xkb_compose_table_new_from_locale*( ctx: ptr xkb_context, locale: cstring, flags: xkb_compose_compile_flags): ptr xkb_compose_table {.importc, cdecl.}proc xkb_compose_state_new*( table: ptr xkb_compose_table, flags: xkb_compose_state_flags): ptr xkb_compose_state {.importc, cdecl.}proc xkb_state_key_get_one_sym*( state: ptr xkb_state, kc: xkb_keycode_t): xkb_keysym_t {.importc, cdecl.}proc xkb_keymap_layout_get_name*( keymap: ptr xkb_keymap, idx: xkb_layout_index_t): cstring {.importc, cdecl.}proc xkb_state_get_keymap*(state: ptr xkb_state): ptr xkb_keymap {.importc, cdecl.}proc xkb_state_layout_index_is_active*( state: ptr xkb_state, idx: xkb_layout_index_t, stateType: xkb_state_component): int {.importc, cdecl.}proc xkb_keymap_num_layouts*( keymap: ptr xkb_keymap ): xkb_layout_index_t {.importc, cdecl.}proc xkb_state_serialize_layout*( state: ptr xkb_state, stateType: xkb_state_component): xkb_layout_index_t {.importc, cdecl.}
importx, xlibinclude "x11pragma.nim"proc XkbcharToInt*(v: int8): int16proc XkbIntTo2chars*(i: int16, h, L: var int8)proc Xkb2charsToInt*(h, L: int8): int16## Common data structures and access macros#typePWord* = ptr array[0..64_000, int16]xkb_keysym_t* = uint32PByte* = ptr bytePXkbStatePtr* = ptr XkbStateRecXkbStateRec*{.final.} = objectgroup*: int8locked_group*: int8base_group*: int16latched_group*: int16mods*: int8base_mods*: int8latched_mods*: int8locked_mods*: int8compat_state*: int8grab_mods*: int8compat_grab_mods*: int8lookup_mods*: int8compat_lookup_mods*: int8ptr_buttons*: int16{.deprecated: [TXkbStateRec: XkbStateRec].}proc XkbModLocks*(s: PXkbStatePtr): int8proc XkbStateMods*(s: PXkbStatePtr): int16proc XkbGroupLock*(s: PXkbStatePtr): int8proc XkbStateGroup*(s: PXkbStatePtr): int16proc XkbStateFieldFromRec*(s: PXkbStatePtr): intproc XkbGrabStateFromRec*(s: PXkbStatePtr): inttypePXkbModsPtr* = ptr XkbModsRecXkbModsRec*{.final.} = objectmask*: int8 # effective modsreal_mods*: int8vmods*: int16{.deprecated: [TXkbModsRec: XkbModsRec].}typePXkbKTMapEntryPtr* = ptr XkbKTMapEntryRecXkbKTMapEntryRec*{.final.} = objectactive*: boollevel*: int8mods*: XkbModsRec{.deprecated: [TXkbKTMapEntryRec: XkbKTMapEntryRec].}typePXkbKeyTypePtr* = ptr XkbKeyTypeRecXkbKeyTypeRec*{.final.} = objectmods*: XkbModsRecnum_levels*: int8map_count*: int8map*: PXkbKTMapEntryPtrpreserve*: PXkbModsPtrname*: Atomlevel_names*: Atom{.deprecated: [TXkbKeyTypeRec: XkbKeyTypeRec].}proc XkbNumGroups*(g: int16): int16proc XkbOutOfRangeGroupInfo*(g: int16): int16proc XkbOutOfRangeGroupAction*(g: int16): int16proc XkbOutOfRangeGroupNumber*(g: int16): int16proc XkbSetGroupInfo*(g, w, n: int16): int16proc XkbSetNumGroups*(g, n: int16): int16## Structures and access macros used primarily by the server#typePXkbBehavior* = ptr XkbBehaviorXkbBehavior*{.final.} = objecttheType*: int8data*: int8{.deprecated: [TXkbBehavior: XkbBehavior].}typePXkbModAction* = ptr XkbModActionXkbModAction*{.final.} = objecttheType*: int8flags*: int8mask*: int8real_mods*: int8vmods1*: int8vmods2*: int8{.deprecated: [TXkbModAction: XkbModAction].}proc XkbModActionVMods*(a: PXkbModAction): int16proc XkbSetModActionVMods*(a: PXkbModAction, v: int8)typePXkbGroupAction* = ptr XkbGroupActionXkbGroupAction*{.final.} = objecttheType*: int8flags*: int8group_XXX*: int8{.deprecated: [TXkbGroupAction: XkbGroupAction].}proc XkbSAGroup*(a: PXkbGroupAction): int8proc XkbSASetGroupProc*(a: PXkbGroupAction, g: int8)typePXkbISOAction* = ptr XkbISOActionXkbISOAction*{.final.} = objecttheType*: int8flags*: int8mask*: int8real_mods*: int8group_XXX*: int8affect*: int8vmods1*: int8vmods2*: int8{.deprecated: [TXkbISOAction: XkbISOAction].}typePXkbPtrAction* = ptr XkbPtrActionXkbPtrAction*{.final.} = objecttheType*: int8flags*: int8high_XXX*: int8low_XXX*: int8high_YYY*: int8low_YYY*: int8{.deprecated: [TXkbPtrAction: XkbPtrAction].}proc XkbPtrActionX*(a: PXkbPtrAction): int16proc XkbPtrActionY*(a: PXkbPtrAction): int16proc XkbSetPtrActionX*(a: PXkbPtrAction, x: int8)proc XkbSetPtrActionY*(a: PXkbPtrAction, y: int8)typePXkbPtrBtnAction* = ptr XkbPtrBtnActionXkbPtrBtnAction*{.final.} = objecttheType*: int8flags*: int8count*: int8button*: int8{.deprecated: [TXkbPtrBtnAction: XkbPtrBtnAction].}typePXkbPtrDfltAction* = ptr XkbPtrDfltActionXkbPtrDfltAction*{.final.} = objecttheType*: int8flags*: int8affect*: int8valueXXX*: int8{.deprecated: [TXkbPtrDfltAction: XkbPtrDfltAction].}proc XkbSAPtrDfltValue*(a: PXkbPtrDfltAction): int8proc XkbSASetPtrDfltValue*(a: PXkbPtrDfltAction, c: pointer)typePXkbSwitchScreenAction* = ptr XkbSwitchScreenActionXkbSwitchScreenAction*{.final.} = objecttheType*: int8flags*: int8screenXXX*: int8{.deprecated: [TXkbSwitchScreenAction: XkbSwitchScreenAction].}proc XkbSAScreen*(a: PXkbSwitchScreenAction): int8proc XkbSASetScreen*(a: PXkbSwitchScreenAction, s: pointer)typePXkbCtrlsAction* = ptr XkbCtrlsActionXkbCtrlsAction*{.final.} = objecttheType*: int8flags*: int8ctrls3*: int8ctrls2*: int8ctrls1*: int8ctrls0*: int8{.deprecated: [TXkbCtrlsAction: XkbCtrlsAction].}proc XkbActionSetCtrls*(a: PXkbCtrlsAction, c: int8)proc XkbActionCtrls*(a: PXkbCtrlsAction): int16typePXkbMessageAction* = ptr XkbMessageActionXkbMessageAction*{.final.} = objecttheType*: int8flags*: int8message*: array[0..5, char]{.deprecated: [TXkbMessageAction: XkbMessageAction].}typePXkbRedirectKeyAction* = ptr XkbRedirectKeyActionXkbRedirectKeyAction*{.final.} = objecttheType*: int8new_key*: int8mods_mask*: int8mods*: int8vmods_mask0*: int8vmods_mask1*: int8vmods0*: int8vmods1*: int8{.deprecated: [TXkbRedirectKeyAction: XkbRedirectKeyAction].}proc XkbSARedirectVMods*(a: PXkbRedirectKeyAction): int16proc XkbSARedirectSetVMods*(a: PXkbRedirectKeyAction, m: int8)proc XkbSARedirectVModsMask*(a: PXkbRedirectKeyAction): int16proc XkbSARedirectSetVModsMask*(a: PXkbRedirectKeyAction, m: int8)typePXkbDeviceBtnAction* = ptr XkbDeviceBtnActionXkbDeviceBtnAction*{.final.} = objecttheType*: int8flags*: int8count*: int8button*: int8device*: int8{.deprecated: [TXkbDeviceBtnAction: XkbDeviceBtnAction].}typePXkbDeviceValuatorAction* = ptr XkbDeviceValuatorActionXkbDeviceValuatorAction*{.final.} = object ## Macros to classify key actions#theType*: int8device*: int8v1_what*: int8v1_ndx*: int8v1_value*: int8v2_what*: int8v2_ndx*: int8v2_value*: int8{.deprecated: [TXkbDeviceValuatorAction: XkbDeviceValuatorAction].}constXkbAnyActionDataSize* = 7typePXkbAnyAction* = ptr XkbAnyActionXkbAnyAction*{.final.} = objecttheType*: int8data*: array[0..XkbAnyActionDataSize - 1, int8]{.deprecated: [TXkbAnyAction: XkbAnyAction].}proc XkbIsModAction*(a: PXkbAnyAction): boolproc XkbIsGroupAction*(a: PXkbAnyAction): boolproc XkbIsPtrAction*(a: PXkbAnyAction): booltypePXkbAction* = ptr XkbActionXkbAction*{.final.} = object ## XKB request codes, used in:# - xkbReqType field of all requests# - requestMinor field of some events#any*: XkbAnyActionmods*: XkbModActiongroup*: XkbGroupActioniso*: XkbISOActionthePtr*: XkbPtrActionbtn*: XkbPtrBtnActiondflt*: XkbPtrDfltActionscreen*: XkbSwitchScreenActionctrls*: XkbCtrlsActionmsg*: XkbMessageActionredirect*: XkbRedirectKeyActiondevbtn*: XkbDeviceBtnActiondevval*: XkbDeviceValuatorActiontheType*: int8{.deprecated: [TXkbAction: XkbAction].}constX_kbUseExtension* = 0X_kbSelectEvents* = 1X_kbBell* = 3X_kbGetState* = 4X_kbLatchLockState* = 5X_kbGetControls* = 6X_kbSetControls* = 7X_kbGetMap* = 8X_kbSetMap* = 9X_kbGetCompatMap* = 10X_kbSetCompatMap* = 11X_kbGetIndicatorState* = 12X_kbGetIndicatorMap* = 13X_kbSetIndicatorMap* = 14X_kbGetNamedIndicator* = 15X_kbSetNamedIndicator* = 16X_kbGetNames* = 17X_kbSetNames* = 18X_kbGetGeometry* = 19X_kbSetGeometry* = 20X_kbPerClientFlags* = 21X_kbListComponents* = 22X_kbGetKbdByName* = 23X_kbGetDeviceInfo* = 24X_kbSetDeviceInfo* = 25X_kbSetDebuggingFlags* = 101 ## In the X sense, XKB reports only one event.# The type field of all XKB events is XkbEventCode#constXkbEventCode* = 0XkbNumberEvents* = XkbEventCode + 1 ## XKB has a minor event code so it can use one X event code for# multiple purposes.# - reported in the xkbType field of all XKB events.# - XkbSelectEventDetails: Indicates the event for which event details# are being changed#constXkbNewKeyboardNotify* = 0XkbMapNotify* = 1XkbStateNotify* = 2XkbControlsNotify* = 3XkbIndicatorStateNotify* = 4XkbIndicatorMapNotify* = 5XkbNamesNotify* = 6XkbCompatMapNotify* = 7XkbBellNotify* = 8XkbActionMessage* = 9XkbAccessXNotify* = 10XkbExtensionDeviceNotify* = 11 ## Event Mask:# - XkbSelectEvents: Specifies event interest.#constXkbNewKeyboardNotifyMask* = int(1) shl 0XkbMapNotifyMask* = int(1) shl 1XkbStateNotifyMask* = int(1) shl 2XkbControlsNotifyMask* = int(1) shl 3XkbIndicatorStateNotifyMask* = int(1) shl 4XkbIndicatorMapNotifyMask* = int(1) shl 5XkbNamesNotifyMask* = int(1) shl 6XkbCompatMapNotifyMask* = int(1) shl 7XkbBellNotifyMask* = int(1) shl 8XkbActionMessageMask* = int(1) shl 9XkbAccessXNotifyMask* = int(1) shl 10XkbExtensionDeviceNotifyMask* = int(1) shl 11XkbAllEventsMask* = 0x00000FFF ## NewKeyboardNotify event details:#constXkbNKN_KeycodesMask* = int(1) shl 0XkbNKN_GeometryMask* = int(1) shl 1XkbNKN_DeviceIDMask* = int(1) shl 2XkbAllNewKeyboardEventsMask* = 0x00000007 ## AccessXNotify event types:# - The 'what' field of AccessXNotify events reports the# reason that the event was generated.#constXkbAXN_SKPress* = 0XkbAXN_SKAccept* = 1XkbAXN_SKReject* = 2XkbAXN_SKRelease* = 3XkbAXN_BKAccept* = 4XkbAXN_BKReject* = 5XkbAXN_AXKWarning* = 6 ## AccessXNotify details:# - Used as an event detail mask to limit the conditions under which# AccessXNotify events are reported#constXkbAXN_SKPressMask* = int(1) shl 0XkbAXN_SKAcceptMask* = int(1) shl 1XkbAXN_SKRejectMask* = int(1) shl 2XkbAXN_SKReleaseMask* = int(1) shl 3XkbAXN_BKAcceptMask* = int(1) shl 4XkbAXN_BKRejectMask* = int(1) shl 5XkbAXN_AXKWarningMask* = int(1) shl 6XkbAllAccessXEventsMask* = 0x0000000F ## State detail mask:# - The 'changed' field of StateNotify events reports which of# the keyboard state components have changed.# - Used as an event detail mask to limit the conditions under# which StateNotify events are reported.#constXkbModifierStateMask* = int(1) shl 0XkbModifierBaseMask* = int(1) shl 1XkbModifierLatchMask* = int(1) shl 2XkbModifierLockMask* = int(1) shl 3XkbGroupStateMask* = int(1) shl 4XkbGroupBaseMask* = int(1) shl 5XkbGroupLatchMask* = int(1) shl 6XkbGroupLockMask* = int(1) shl 7XkbCompatStateMask* = int(1) shl 8XkbGrabModsMask* = int(1) shl 9XkbCompatGrabModsMask* = int(1) shl 10XkbLookupModsMask* = int(1) shl 11XkbCompatLookupModsMask* = int(1) shl 12XkbPointerButtonMask* = int(1) shl 13XkbAllStateComponentsMask* = 0x00003FFF ## Controls detail masks:# The controls specified in XkbAllControlsMask:# - The 'changed' field of ControlsNotify events reports which of# the keyboard controls have changed.# - The 'changeControls' field of the SetControls request specifies# the controls for which values are to be changed.# - Used as an event detail mask to limit the conditions under# which ControlsNotify events are reported.## The controls specified in the XkbAllBooleanCtrlsMask:# - The 'enabledControls' field of ControlsNotify events reports the# current status of the boolean controls.# - The 'enabledControlsChanges' field of ControlsNotify events reports# any boolean controls that have been turned on or off.# - The 'affectEnabledControls' and 'enabledControls' fields of the# kbSetControls request change the set of enabled controls.# - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of# an XkbControlsRec specify the controls to be changed if the keyboard# times out and the values to which they should be changed.# - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags# request specifies the specify the controls to be reset when the# client exits and the values to which they should be reset.# - The 'ctrls' field of an indicator map specifies the controls# that drive the indicator.# - Specifies the boolean controls affected by the SetControls and# LockControls key actions.#constXkbRepeatKeysMask* = int(1) shl 0XkbSlowKeysMask* = int(1) shl 1XkbBounceKeysMask* = int(1) shl 2XkbStickyKeysMask* = int(1) shl 3XkbMouseKeysMask* = int(1) shl 4XkbMouseKeysAccelMask* = int(1) shl 5XkbAccessXKeysMask* = int(1) shl 6XkbAccessXTimeoutMask* = int(1) shl 7XkbAccessXFeedbackMask* = int(1) shl 8XkbAudibleBellMask* = int(1) shl 9XkbOverlay1Mask* = int(1) shl 10XkbOverlay2Mask* = int(1) shl 11XkbIgnoreGroupLockMask* = int(1) shl 12XkbGroupsWrapMask* = int(1) shl 27XkbInternalModsMask* = int(1) shl 28XkbIgnoreLockModsMask* = int(1) shl 29XkbPerKeyRepeatMask* = int(1) shl 30XkbControlsEnabledMask* = int(1) shl 31XkbAccessXOptionsMask* = XkbStickyKeysMask or XkbAccessXFeedbackMaskXkbAllBooleanCtrlsMask* = 0x00001FFFXkbAllControlsMask* = 0xF8001FFF ## Compatibility Map Compontents:# - Specifies the components to be allocated in XkbAllocCompatMap.#constXkbSymInterpMask* = 1 shl 0XkbGroupCompatMask* = 1 shl 1XkbAllCompatMask* = 0x00000003 ## Assorted constants and limits.#constXkbAllIndicatorsMask* = 0xFFFFFFFF ## Map components masks:# Those in AllMapComponentsMask:# - Specifies the individual fields to be loaded or changed for the# GetMap and SetMap requests.# Those in ClientInfoMask:# - Specifies the components to be allocated by XkbAllocClientMap.# Those in ServerInfoMask:# - Specifies the components to be allocated by XkbAllocServerMap.#constXkbKeyTypesMask* = 1 shl 0XkbKeySymsMask* = 1 shl 1XkbModifierMapMask* = 1 shl 2XkbExplicitComponentsMask* = 1 shl 3XkbKeyActionsMask* = 1 shl 4XkbKeyBehaviorsMask* = 1 shl 5XkbVirtualModsMask* = 1 shl 6XkbVirtualModMapMask* = 1 shl 7XkbAllClientInfoMask* = XkbKeyTypesMask or XkbKeySymsMask orXkbModifierMapMaskXkbAllServerInfoMask* = XkbExplicitComponentsMask or XkbKeyActionsMask orXkbKeyBehaviorsMask or XkbVirtualModsMask or XkbVirtualModMapMaskXkbAllMapComponentsMask* = XkbAllClientInfoMask or XkbAllServerInfoMask ## Names component mask:# - Specifies the names to be loaded or changed for the GetNames and# SetNames requests.# - Specifies the names that have changed in a NamesNotify event.# - Specifies the names components to be allocated by XkbAllocNames.constXkbKeycodesNameMask* = 1 shl 0XkbGeometryNameMask* = 1 shl 1XkbSymbolsNameMask* = 1 shl 2XkbPhysSymbolsNameMask* = 1 shl 3XkbTypesNameMask* = 1 shl 4XkbCompatNameMask* = 1 shl 5XkbKeyTypeNamesMask* = 1 shl 6XkbKTLevelNamesMask* = 1 shl 7XkbIndicatorNamesMask* = 1 shl 8XkbKeyNamesMask* = 1 shl 9XkbKeyAliasesMask* = 1 shl 10XkbVirtualModNamesMask* = 1 shl 11XkbGroupNamesMask* = 1 shl 12XkbRGNamesMask* = 1 shl 13XkbComponentNamesMask* = 0x0000003FXkbAllNamesMask* = 0x00003FFF ## Miscellaneous event details:# - event detail masks for assorted events that don't reall# have any details.constXkbAllStateEventsMask* = XkbAllStateComponentsMaskXkbAllMapEventsMask* = XkbAllMapComponentsMaskXkbAllControlEventsMask* = XkbAllControlsMaskXkbAllIndicatorEventsMask* = XkbAllIndicatorsMaskXkbAllNameEventsMask* = XkbAllNamesMaskXkbAllCompatMapEventsMask* = XkbAllCompatMaskXkbAllBellEventsMask* = int(1) shl 0XkbAllActionMessagesMask* = int(1) shl 0 ## XKB reports one error: BadKeyboard# A further reason for the error is encoded into to most significant# byte of the resourceID for the error:# XkbErr_BadDevice - the device in question was not found# XkbErr_BadClass - the device was found but it doesn't belong to# the appropriate class.# XkbErr_BadId - the device was found and belongs to the right# class, but not feedback with a matching id was# found.# The low byte of the resourceID for this error contains the device# id, class specifier or feedback id that failed.#constXkbKeyboard* = 0XkbNumberErrors* = 1XkbErr_BadDevice* = 0x000000FFXkbErr_BadClass* = 0x000000FEXkbErr_BadId* = 0x000000FD ## Keyboard Components Mask:# - Specifies the components that follow a GetKeyboardByNameReply#constXkbClientMapMask* = int(1) shl 0XkbServerMapMask* = int(1) shl 1XkbCompatMapMask* = int(1) shl 2XkbIndicatorMapMask* = int(1) shl 3XkbNamesMask* = int(1) shl 4XkbGeometryMask* = int(1) shl 5XkbControlsMask* = int(1) shl 6XkbAllComponentsMask* = 0x0000007F ## AccessX Options Mask# - The 'accessXOptions' field of an XkbControlsRec specifies the# AccessX options that are currently in effect.# - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'# fields of an XkbControlsRec specify the Access X options to be# changed if the keyboard times out and the values to which they# should be changed.#constXkbAX_SKPressFBMask* = int(1) shl 0XkbAX_SKAcceptFBMask* = int(1) shl 1XkbAX_FeatureFBMask* = int(1) shl 2XkbAX_SlowWarnFBMask* = int(1) shl 3XkbAX_IndicatorFBMask* = int(1) shl 4XkbAX_StickyKeysFBMask* = int(1) shl 5XkbAX_TwoKeysMask* = int(1) shl 6XkbAX_LatchToLockMask* = int(1) shl 7XkbAX_SKReleaseFBMask* = int(1) shl 8XkbAX_SKRejectFBMask* = int(1) shl 9XkbAX_BKRejectFBMask* = int(1) shl 10XkbAX_DumbBellFBMask* = int(1) shl 11XkbAX_FBOptionsMask* = 0x00000F3FXkbAX_SKOptionsMask* = 0x000000C0XkbAX_AllOptionsMask* = 0x00000FFF ## XkbUseCoreKbd is used to specify the core keyboard without having# to look up its X input extension identifier.# XkbUseCorePtr is used to specify the core pointer without having# to look up its X input extension identifier.# XkbDfltXIClass is used to specify "don't care" any place that the# XKB protocol is looking for an X Input Extension# device class.# XkbDfltXIId is used to specify "don't care" any place that the# XKB protocol is looking for an X Input Extension# feedback identifier.# XkbAllXIClasses is used to get information about all device indicators,# whether they're part of the indicator feedback class# or the keyboard feedback class.# XkbAllXIIds is used to get information about all device indicator# feedbacks without having to list them.# XkbXINone is used to indicate that no class or id has been specified.# XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs# XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells# XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device# XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class# XkbExplicitXIId(c) True if 'i' explicitly specifies a device id# XkbSingleXIClass(c) True if 'c' specifies exactly one device class,# including the default.# XkbSingleXIId(i) True if 'i' specifies exactly one device# identifier, including the default.#constXkbUseCoreKbd* = 0x00000100XkbUseCorePtr* = 0x00000200XkbDfltXIClass* = 0x00000300XkbDfltXIId* = 0x00000400XkbAllXIClasses* = 0x00000500XkbAllXIIds* = 0x00000600XkbXINone* = 0x0000FF00proc XkbLegalXILedClass*(c: int): boolproc XkbLegalXIBellClass*(c: int): boolproc XkbExplicitXIDevice*(c: int): boolproc XkbExplicitXIClass*(c: int): boolproc XkbExplicitXIId*(c: int): boolproc XkbSingleXIClass*(c: int): boolproc XkbSingleXIId*(c: int): boolconstXkbNoModifier* = 0x000000FFXkbNoShiftLevel* = 0x000000FFXkbNoShape* = 0x000000FFXkbNoIndicator* = 0x000000FFXkbNoModifierMask* = 0XkbAllModifiersMask* = 0x000000FFXkbAllVirtualModsMask* = 0x0000FFFFXkbNumKbdGroups* = 4XkbMaxKbdGroup* = XkbNumKbdGroups - 1XkbMaxMouseKeysBtn* = 4 ## Group Index and Mask:# - Indices into the kt_index array of a key type.# - Mask specifies types to be changed for XkbChangeTypesOfKey#constXkbGroup1Index* = 0XkbGroup2Index* = 1XkbGroup3Index* = 2XkbGroup4Index* = 3XkbAnyGroup* = 254XkbAllGroups* = 255XkbGroup1Mask* = 1 shl 0XkbGroup2Mask* = 1 shl 1XkbGroup3Mask* = 1 shl 2XkbGroup4Mask* = 1 shl 3XkbAnyGroupMask* = 1 shl 7XkbAllGroupsMask* = 0x0000000F ## BuildCoreState: Given a keyboard group and a modifier state,# construct the value to be reported an event.# GroupForCoreState: Given the state reported in an event,# determine the keyboard group.# IsLegalGroup: Returns TRUE if 'g' is a valid group index.#proc XkbBuildCoreState*(m, g: int): intproc XkbGroupForCoreState*(s: int): intproc XkbIsLegalGroup*(g: int): bool## GroupsWrap values:# - The 'groupsWrap' field of an XkbControlsRec specifies the# treatment of out of range groups.# - Bits 6 and 7 of the group info field of a key symbol map# specify the interpretation of out of range groups for the# corresponding key.#constXkbWrapIntoRange* = 0x00000000XkbClampIntoRange* = 0x00000040XkbRedirectIntoRange* = 0x00000080 ## Action flags: Reported in the 'flags' field of most key actions.# Interpretation depends on the type of the action; not all actions# accept all flags.## Option Used for Actions# ------ ----------------# ClearLocks SetMods, LatchMods, SetGroup, LatchGroup# LatchToLock SetMods, LatchMods, SetGroup, LatchGroup# LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn# LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn# UseModMapMods SetMods, LatchMods, LockMods, ISOLock# GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock# UseDfltButton PtrBtn, LockPtrBtn# NoAcceleration MovePtr# MoveAbsoluteX MovePtr# MoveAbsoluteY MovePtr# ISODfltIsGroup ISOLock# ISONoAffectMods ISOLock# ISONoAffectGroup ISOLock# ISONoAffectPtr ISOLock# ISONoAffectCtrls ISOLock# MessageOnPress ActionMessage# MessageOnRelease ActionMessage# MessageGenKeyEvent ActionMessage# AffectDfltBtn SetPtrDflt# DfltBtnAbsolute SetPtrDflt# SwitchApplication SwitchScreen# SwitchAbsolute SwitchScreen#constXkbSA_ClearLocks* = int(1) shl 0XkbSA_LatchToLock* = int(1) shl 1XkbSA_LockNoLock* = int(1) shl 0XkbSA_LockNoUnlock* = int(1) shl 1XkbSA_UseModMapMods* = int(1) shl 2XkbSA_GroupAbsolute* = int(1) shl 2XkbSA_UseDfltButton* = 0XkbSA_NoAcceleration* = int(1) shl 0XkbSA_MoveAbsoluteX* = int(1) shl 1XkbSA_MoveAbsoluteY* = int(1) shl 2XkbSA_ISODfltIsGroup* = int(1) shl 7XkbSA_ISONoAffectMods* = int(1) shl 6XkbSA_ISONoAffectGroup* = int(1) shl 5XkbSA_ISONoAffectPtr* = int(1) shl 4XkbSA_ISONoAffectCtrls* = int(1) shl 3XkbSA_ISOAffectMask* = 0x00000078XkbSA_MessageOnPress* = int(1) shl 0XkbSA_MessageOnRelease* = int(1) shl 1XkbSA_MessageGenKeyEvent* = int(1) shl 2XkbSA_AffectDfltBtn* = 1XkbSA_DfltBtnAbsolute* = int(1) shl 2XkbSA_SwitchApplication* = int(1) shl 0XkbSA_SwitchAbsolute* = int(1) shl 2 ## The following values apply to the SA_DeviceValuator# action only. Valuator operations specify the action# to be taken. Values specified in the action are# multiplied by 2^scale before they are applied.#constXkbSA_IgnoreVal* = 0x00000000XkbSA_SetValMin* = 0x00000010XkbSA_SetValCenter* = 0x00000020XkbSA_SetValMax* = 0x00000030XkbSA_SetValRelative* = 0x00000040XkbSA_SetValAbsolute* = 0x00000050XkbSA_ValOpMask* = 0x00000070XkbSA_ValScaleMask* = 0x00000007proc XkbSA_ValOp*(a: int): intproc XkbSA_ValScale*(a: int): int## Action types: specifies the type of a key action. Reported in the# type field of all key actions.#constXkbSA_NoAction* = 0x00000000XkbSA_SetMods* = 0x00000001XkbSA_LatchMods* = 0x00000002XkbSA_LockMods* = 0x00000003XkbSA_SetGroup* = 0x00000004XkbSA_LatchGroup* = 0x00000005XkbSA_LockGroup* = 0x00000006XkbSA_MovePtr* = 0x00000007XkbSA_PtrBtn* = 0x00000008XkbSA_LockPtrBtn* = 0x00000009XkbSA_SetPtrDflt* = 0x0000000AXkbSA_ISOLock* = 0x0000000BXkbSA_Terminate* = 0x0000000CXkbSA_SwitchScreen* = 0x0000000DXkbSA_SetControls* = 0x0000000EXkbSA_LockControls* = 0x0000000FXkbSA_ActionMessage* = 0x00000010XkbSA_RedirectKey* = 0x00000011XkbSA_DeviceBtn* = 0x00000012XkbSA_LockDeviceBtn* = 0x00000013XkbSA_DeviceValuator* = 0x00000014XkbSA_LastAction* = XkbSA_DeviceValuatorXkbSA_NumActions* = XkbSA_LastAction + 1constXkbSA_XFree86Private* = 0x00000086## Specifies the key actions that clear latched groups or modifiers.#const ##define XkbSA_BreakLatch \# ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\# (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\# (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\# (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))#XkbSA_BreakLatch* = (1 shl XkbSA_PtrBtn) or (1 shl XkbSA_LockPtrBtn) or(1 shl XkbSA_Terminate) or (1 shl XkbSA_SwitchScreen) or(1 shl XkbSA_SetControls) or (1 shl XkbSA_LockControls) or(1 shl XkbSA_ActionMessage) or (1 shl XkbSA_RedirectKey) or(1 shl XkbSA_DeviceBtn) or (1 shl XkbSA_LockDeviceBtn) ## Key Behavior Qualifier:# KB_Permanent indicates that the behavior describes an unalterable# characteristic of the keyboard, not an XKB software-simulation of# the listed behavior.# Key Behavior Types:# Specifies the behavior of the underlying key.#constXkbKB_Permanent* = 0x00000080XkbKB_OpMask* = 0x0000007FXkbKB_Default* = 0x00000000XkbKB_Lock* = 0x00000001XkbKB_RadioGroup* = 0x00000002XkbKB_Overlay1* = 0x00000003XkbKB_Overlay2* = 0x00000004XkbKB_RGAllowNone* = 0x00000080 ## Various macros which describe the range of legal keycodes.#constXkbMinLegalKeyCode* = 8XkbMaxLegalKeyCode* = 255XkbMaxKeyCount* = XkbMaxLegalKeyCode - XkbMinLegalKeyCode + 1XkbPerKeyBitArraySize* = (XkbMaxLegalKeyCode + 1) div 8proc XkbIsLegalKeycode*(k: int): booltypePXkbControlsPtr* = ptr XkbControlsRecXkbControlsRec*{.final.} = objectmk_dflt_btn*: int8num_groups*: int8groups_wrap*: int8internal*: XkbModsRecignore_lock*: XkbModsRecenabled_ctrls*: int16repeat_delay*: int16repeat_interval*: int16slow_keys_delay*: int16debounce_delay*: int16mk_delay*: int16mk_interval*: int16mk_time_to_max*: int16mk_max_speed*: int16mk_curve*: int16ax_options*: int16ax_timeout*: int16axt_opts_mask*: int16axt_opts_values*: int16axt_ctrls_mask*: int16axt_ctrls_values*: int16per_key_repeat*: array[0..XkbPerKeyBitArraySize - 1, int8]{.deprecated: [TXkbControlsRec: XkbControlsRec].}proc XkbAX_AnyFeedback*(c: PXkbControlsPtr): int16proc XkbAX_NeedOption*(c: PXkbControlsPtr, w: int16): int16proc XkbAX_NeedFeedback*(c: PXkbControlsPtr, w: int16): bool## Assorted constants and limits.#constXkbNumModifiers* = 8XkbNumVirtualMods* = 16XkbNumIndicators* = 32XkbMaxRadioGroups* = 32XkbAllRadioGroupsMask* = 0xFFFFFFFFXkbMaxShiftLevel* = 63XkbMaxSymsPerKey* = XkbMaxShiftLevel * XkbNumKbdGroupsXkbRGMaxMembers* = 12XkbActionMessageLength* = 6XkbKeyNameLength* = 4XkbMaxRedirectCount* = 8XkbGeomPtsPerMM* = 10XkbGeomMaxColors* = 32XkbGeomMaxLabelColors* = 3XkbGeomMaxPriority* = 255typePXkbServerMapPtr* = ptr XkbServerMapRecXkbServerMapRec*{.final.} = objectnum_acts*: int16size_acts*: int16acts*: ptr array[0..0xfff, XkbAction]behaviors*: PXkbBehaviorkey_acts*: PWordexplicit*: PBytevmods*: array[0..XkbNumVirtualMods - 1, int8]vmodmap*: PWord{.deprecated: [TXkbServerMapRec: XkbServerMapRec].}proc XkbSMKeyActionsPtr*(m: PXkbServerMapPtr, k: int16): PXkbAction## Structures and access macros used primarily by clients#typePXkbSymMapPtr* = ptr XkbSymMapRecXkbSymMapRec*{.final.} = objectkt_index*: array[0..XkbNumKbdGroups - 1, int8]group_info*: int8width*: int8offset*: int8{.deprecated: [TXkbSymMapRec: XkbSymMapRec].}typePXkbClientMapPtr* = ptr XkbClientMapRecXkbClientMapRec*{.final.} = objectsize_types*: int8num_types*: int8types*: ptr array[0..0xffff, XkbKeyTypeRec]size_syms*: int16num_syms*: int16syms*: ptr array[0..0xffff, KeySym]key_sym_map*: ptr array[0..0xffff, XkbSymMapRec]modmap*: PByte{.deprecated: [TXkbClientMapRec: XkbClientMapRec].}proc XkbCMKeyGroupInfo*(m: PXkbClientMapPtr, k: int16): int8proc XkbCMKeyNumGroups*(m: PXkbClientMapPtr, k: int16): int8proc XkbCMKeyGroupWidth*(m: PXkbClientMapPtr, k: int16, g: int8): int8proc XkbCMKeyGroupsWidth*(m: PXkbClientMapPtr, k: int16): int8proc XkbCMKeyTypeIndex*(m: PXkbClientMapPtr, k: int16, g: int8): int8proc XkbCMKeyType*(m: PXkbClientMapPtr, k: int16, g: int8): PXkbKeyTypePtrproc XkbCMKeyNumSyms*(m: PXkbClientMapPtr, k: int16): int16proc XkbCMKeySymsOffset*(m: PXkbClientMapPtr, k: int16): int8## Compatibility structures and access macros#typePXkbSymInterpretPtr* = ptr XkbSymInterpretRecXkbSymInterpretRec*{.final.} = objectsym*: KeySymflags*: int8match*: int8mods*: int8virtual_mod*: int8act*: XkbAnyAction{.deprecated: [TXkbSymInterpretRec: XkbSymInterpretRec].}typePXkbCompatMapPtr* = ptr XkbCompatMapRecXkbCompatMapRec*{.final.} = objectsym_interpret*: PXkbSymInterpretPtrgroups*: array[0..XkbNumKbdGroups - 1, XkbModsRec]num_si*: int16size_si*: int16{.deprecated: [TXkbCompatMapRec: XkbCompatMapRec].}typePXkbIndicatorMapPtr* = ptr XkbIndicatorMapRecXkbIndicatorMapRec*{.final.} = objectflags*: int8which_groups*: int8groups*: int8which_mods*: int8mods*: XkbModsRecctrls*: int16{.deprecated: [TXkbIndicatorMapRec: XkbIndicatorMapRec].}proc XkbIM_IsAuto*(i: PXkbIndicatorMapPtr): boolproc XkbIM_InUse*(i: PXkbIndicatorMapPtr): booltypePXkbIndicatorPtr* = ptr XkbIndicatorRecXkbIndicatorRec*{.final.} = objectphys_indicators*: int32maps*: array[0..XkbNumIndicators - 1, XkbIndicatorMapRec]{.deprecated: [TXkbIndicatorRec: XkbIndicatorRec].}typePXkbKeyNamePtr* = ptr XkbKeyNameRecXkbKeyNameRec*{.final.} = objectname*: array[0..XkbKeyNameLength - 1, char]{.deprecated: [TXkbKeyNameRec: XkbKeyNameRec].}typePXkbKeyAliasPtr* = ptr XkbKeyAliasRecXkbKeyAliasRec*{.final.} = object ## Names for everything#real*: array[0..XkbKeyNameLength - 1, char]alias*: array[0..XkbKeyNameLength - 1, char]{.deprecated: [TXkbKeyAliasRec: XkbKeyAliasRec].}typePXkbNamesPtr* = ptr XkbNamesRecXkbNamesRec*{.final.} = object ## Key Type index and mask for the four standard key types.keycodes*: Atomgeometry*: Atomsymbols*: Atomtypes*: Atomcompat*: Atomvmods*: array[0..XkbNumVirtualMods - 1, Atom]indicators*: array[0..XkbNumIndicators - 1, Atom]groups*: array[0..XkbNumKbdGroups - 1, Atom]keys*: PXkbKeyNamePtrkey_aliases*: PXkbKeyAliasPtrradio_groups*: PAtomphys_symbols*: Atomnum_keys*: int8num_key_aliases*: int8num_rg*: int16{.deprecated: [TXkbNamesRec: XkbNamesRec].}constXkbOneLevelIndex* = 0XkbTwoLevelIndex* = 1XkbAlphabeticIndex* = 2XkbKeypadIndex* = 3XkbLastRequiredType* = XkbKeypadIndexXkbNumRequiredTypes* = XkbLastRequiredType + 1XkbMaxKeyTypes* = 255XkbOneLevelMask* = 1 shl 0XkbTwoLevelMask* = 1 shl 1XkbAlphabeticMask* = 1 shl 2XkbKeypadMask* = 1 shl 3XkbAllRequiredTypes* = 0x0000000Fproc XkbShiftLevel*(n: int8): int8proc XkbShiftLevelMask*(n: int8): int8## Extension name and version information#constXkbName* = "XKEYBOARD"XkbMajorVersion* = 1XkbMinorVersion* = 0 ## Explicit map components:# - Used in the 'explicit' field of an XkbServerMap. Specifies# the keyboard components that should _not_ be updated automatically# in response to core protocol keyboard mapping requests.#constXkbExplicitKeyTypesMask* = 0x0000000FXkbExplicitKeyType1Mask* = 1 shl 0XkbExplicitKeyType2Mask* = 1 shl 1XkbExplicitKeyType3Mask* = 1 shl 2XkbExplicitKeyType4Mask* = 1 shl 3XkbExplicitInterpretMask* = 1 shl 4XkbExplicitAutoRepeatMask* = 1 shl 5XkbExplicitBehaviorMask* = 1 shl 6XkbExplicitVModMapMask* = 1 shl 7XkbAllExplicitMask* = 0x000000FF ## Symbol interpretations flags:# - Used in the flags field of a symbol interpretation#constXkbSI_AutoRepeat* = 1 shl 0XkbSI_LockingKey* = 1 shl 1 ## Symbol interpretations match specification:# - Used in the match field of a symbol interpretation to specify# the conditions under which an interpretation is used.#constXkbSI_LevelOneOnly* = 0x00000080XkbSI_OpMask* = 0x0000007FXkbSI_NoneOf* = 0XkbSI_AnyOfOrNone* = 1XkbSI_AnyOf* = 2XkbSI_AllOf* = 3XkbSI_Exactly* = 4 ## Indicator map flags:# - Used in the flags field of an indicator map to indicate the# conditions under which and indicator can be changed and the# effects of changing the indicator.#constXkbIM_NoExplicit* = int(1) shl 7XkbIM_NoAutomatic* = int(1) shl 6XkbIM_LEDDrivesKB* = int(1) shl 5 ## Indicator map component specifications:# - Used by the 'which_groups' and 'which_mods' fields of an indicator# map to specify which keyboard components should be used to drive# the indicator.#constXkbIM_UseBase* = int(1) shl 0XkbIM_UseLatched* = int(1) shl 1XkbIM_UseLocked* = int(1) shl 2XkbIM_UseEffective* = int(1) shl 3XkbIM_UseCompat* = int(1) shl 4XkbIM_UseNone* = 0XkbIM_UseAnyGroup* = XkbIM_UseBase or XkbIM_UseLatched or XkbIM_UseLocked orXkbIM_UseEffectiveXkbIM_UseAnyMods* = XkbIM_UseAnyGroup or XkbIM_UseCompat ## GetByName components:# - Specifies desired or necessary components to GetKbdByName request.# - Reports the components that were found in a GetKbdByNameReply#constXkbGBN_TypesMask* = int(1) shl 0XkbGBN_CompatMapMask* = int(1) shl 1XkbGBN_ClientSymbolsMask* = int(1) shl 2XkbGBN_ServerSymbolsMask* = int(1) shl 3XkbGBN_SymbolsMask* = XkbGBN_ClientSymbolsMask or XkbGBN_ServerSymbolsMaskXkbGBN_IndicatorMapMask* = int(1) shl 4XkbGBN_KeyNamesMask* = int(1) shl 5XkbGBN_GeometryMask* = int(1) shl 6XkbGBN_OtherNamesMask* = int(1) shl 7XkbGBN_AllComponentsMask* = 0x000000FF ## ListComponents flags#constXkbLC_Hidden* = int(1) shl 0XkbLC_Default* = int(1) shl 1XkbLC_Partial* = int(1) shl 2XkbLC_AlphanumericKeys* = int(1) shl 8XkbLC_ModifierKeys* = int(1) shl 9XkbLC_KeypadKeys* = int(1) shl 10XkbLC_FunctionKeys* = int(1) shl 11XkbLC_AlternateGroup* = int(1) shl 12 ## X Input Extension Interactions# - Specifies the possible interactions between XKB and the X input# extension# - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)# XKB information about an extension device.# - Reports the list of supported optional features in the reply to# XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.# XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify# events to indicate an attempt to use an unsupported feature.#constXkbXI_KeyboardsMask* = int(1) shl 0XkbXI_ButtonActionsMask* = int(1) shl 1XkbXI_IndicatorNamesMask* = int(1) shl 2XkbXI_IndicatorMapsMask* = int(1) shl 3XkbXI_IndicatorStateMask* = int(1) shl 4XkbXI_UnsupportedFeatureMask* = int(1) shl 15XkbXI_AllFeaturesMask* = 0x0000001FXkbXI_AllDeviceFeaturesMask* = 0x0000001EXkbXI_IndicatorsMask* = 0x0000001CXkbAllExtensionDeviceEventsMask* = 0x0000801F ## Per-Client Flags:# - Specifies flags to be changed by the PerClientFlags request.#constXkbPCF_DetectableAutoRepeatMask* = int(1) shl 0XkbPCF_GrabsUseXKBStateMask* = int(1) shl 1XkbPCF_AutoResetControlsMask* = int(1) shl 2XkbPCF_LookupStateWhenGrabbed* = int(1) shl 3XkbPCF_SendEventUsesXKBState* = int(1) shl 4XkbPCF_AllFlagsMask* = 0x0000001F ## Debugging flags and controls#constXkbDF_DisableLocks* = 1 shl 0typePXkbPropertyPtr* = ptr XkbPropertyRecXkbPropertyRec*{.final.} = objectname*: cstringvalue*: cstring{.deprecated: [TXkbPropertyRec: XkbPropertyRec].}typePXkbColorPtr* = ptr XkbColorRecXkbColorRec*{.final.} = objectpixel*: int16spec*: cstring{.deprecated: [TXkbColorRec: XkbColorRec].}typePXkbPointPtr* = ptr XkbPointRecXkbPointRec*{.final.} = objectx*: int16y*: int16{.deprecated: [TXkbPointRec: XkbPointRec].}typePXkbBoundsPtr* = ptr XkbBoundsRecXkbBoundsRec*{.final.} = objectx1*: int16y1*: int16x2*: int16y2*: int16{.deprecated: [TXkbBoundsRec: XkbBoundsRec].}proc XkbBoundsWidth*(b: PXkbBoundsPtr): int16proc XkbBoundsHeight*(b: PXkbBoundsPtr): int16typePXkbOutlinePtr* = ptr XkbOutlineRecXkbOutlineRec*{.final.} = objectnum_points*: int16sz_points*: int16corner_radius*: int16points*: PXkbPointPtr{.deprecated: [TXkbOutlineRec: XkbOutlineRec].}typePXkbShapePtr* = ptr XkbShapeRecXkbShapeRec*{.final.} = objectname*: Atomnum_outlines*: int16sz_outlines*: int16outlines*: ptr array[0..0xffff, XkbOutlineRec]approx*: ptr array[0..0xffff, XkbOutlineRec]primary*: ptr array[0..0xffff, XkbOutlineRec]bounds*: XkbBoundsRec{.deprecated: [TXkbShapeRec: XkbShapeRec].}proc XkbOutlineIndex*(s: PXkbShapePtr, o: PXkbOutlinePtr): int32typePXkbShapeDoodadPtr* = ptr XkbShapeDoodadRecXkbShapeDoodadRec*{.final.} = objectname*: AtomtheType*: int8priority*: int8top*: int16left*: int16angle*: int16color_ndx*: int16shape_ndx*: int16{.deprecated: [TXkbShapeDoodadRec: XkbShapeDoodadRec].}typePXkbTextDoodadPtr* = ptr XkbTextDoodadRecXkbTextDoodadRec*{.final.} = objectname*: AtomtheType*: int8priority*: int8top*: int16left*: int16angle*: int16width*: int16height*: int16color_ndx*: int16text*: cstringfont*: cstring{.deprecated: [TXkbTextDoodadRec: XkbTextDoodadRec].}typePXkbIndicatorDoodadPtr* = ptr XkbIndicatorDoodadRecXkbIndicatorDoodadRec*{.final.} = objectname*: AtomtheType*: int8priority*: int8top*: int16left*: int16angle*: int16shape_ndx*: int16on_color_ndx*: int16off_color_ndx*: int16{.deprecated: [TXkbIndicatorDoodadRec: XkbIndicatorDoodadRec].}typePXkbLogoDoodadPtr* = ptr XkbLogoDoodadRecXkbLogoDoodadRec*{.final.} = objectname*: AtomtheType*: int8priority*: int8top*: int16left*: int16angle*: int16color_ndx*: int16shape_ndx*: int16logo_name*: cstring{.deprecated: [TXkbLogoDoodadRec: XkbLogoDoodadRec].}typePXkbAnyDoodadPtr* = ptr XkbAnyDoodadRecXkbAnyDoodadRec*{.final.} = objectname*: AtomtheType*: int8priority*: int8top*: int16left*: int16angle*: int16{.deprecated: [TXkbAnyDoodadRec: XkbAnyDoodadRec].}typePXkbDoodadPtr* = ptr XkbDoodadRecXkbDoodadRec*{.final.} = objectany*: XkbAnyDoodadRecshape*: XkbShapeDoodadRectext*: XkbTextDoodadRecindicator*: XkbIndicatorDoodadReclogo*: XkbLogoDoodadRec{.deprecated: [TXkbDoodadRec: XkbDoodadRec].}constXkbUnknownDoodad* = 0XkbOutlineDoodad* = 1XkbSolidDoodad* = 2XkbTextDoodad* = 3XkbIndicatorDoodad* = 4XkbLogoDoodad* = 5typePXkbKeyPtr* = ptr XkbKeyRecXkbKeyRec*{.final.} = objectname*: XkbKeyNameRecgap*: int16shape_ndx*: int8color_ndx*: int8{.deprecated: [TXkbKeyRec: XkbKeyRec].}typePXkbRowPtr* = ptr XkbRowRecXkbRowRec*{.final.} = objecttop*: int16left*: int16num_keys*: int16sz_keys*: int16vertical*: int16Keys*: PXkbKeyPtrbounds*: XkbBoundsRec{.deprecated: [TXkbRowRec: XkbRowRec].}typePXkbOverlayPtr* = ptr XkbOverlayRec #forward for XkbSectionRec use.#Do not add more "type"PXkbSectionPtr* = ptr XkbSectionRecXkbSectionRec*{.final.} = object #Do not add more "type"name*: Atompriority*: int8top*: int16left*: int16width*: int16height*: int16angle*: int16num_rows*: int16num_doodads*: int16num_overlays*: int16rows*: PXkbRowPtrdoodads*: PXkbDoodadPtrbounds*: XkbBoundsRecoverlays*: PXkbOverlayPtrPXkbOverlayKeyPtr* = ptr XkbOverlayKeyRecXkbOverlayKeyRec*{.final.} = object #Do not add more "type"over*: XkbKeyNameRecunder*: XkbKeyNameRecPXkbOverlayRowPtr* = ptr XkbOverlayRowRecXkbOverlayRowRec*{.final.} = object #Do not add more "type"row_under*: int16num_keys*: int16sz_keys*: int16keys*: PXkbOverlayKeyPtrXkbOverlayRec*{.final.} = objectname*: Atomsection_under*: PXkbSectionPtrnum_rows*: int16sz_rows*: int16rows*: PXkbOverlayRowPtrbounds*: PXkbBoundsPtr{.deprecated: [TXkbSectionRec: XkbSectionRec].}{.deprecated: [TXkbOverlayKeyRec: XkbOverlayKeyRec].}{.deprecated: [TXkbOverlayRowRec: XkbOverlayRowRec].}{.deprecated: [TXkbOverlayRec: XkbOverlayRec].}typePXkbGeometryRec* = ptr XkbGeometryRecPXkbGeometryPtr* = PXkbGeometryRecXkbGeometryRec*{.final.} = objectname*: Atomwidth_mm*: int16height_mm*: int16label_font*: cstringlabel_color*: PXkbColorPtrbase_color*: PXkbColorPtrsz_properties*: int16sz_colors*: int16sz_shapes*: int16sz_sections*: int16sz_doodads*: int16sz_key_aliases*: int16num_properties*: int16num_colors*: int16num_shapes*: int16num_sections*: int16num_doodads*: int16num_key_aliases*: int16properties*: ptr array[0..0xffff, XkbPropertyRec]colors*: ptr array[0..0xffff, XkbColorRec]shapes*: ptr array[0..0xffff, XkbShapeRec]sections*: ptr array[0..0xffff, XkbSectionRec]key_aliases*: ptr array[0..0xffff, XkbKeyAliasRec]{.deprecated: [TXkbGeometryRec: XkbGeometryRec].}constXkbGeomPropertiesMask* = 1 shl 0XkbGeomColorsMask* = 1 shl 1XkbGeomShapesMask* = 1 shl 2XkbGeomSectionsMask* = 1 shl 3XkbGeomDoodadsMask* = 1 shl 4XkbGeomKeyAliasesMask* = 1 shl 5XkbGeomAllMask* = 0x0000003FtypePXkbGeometrySizesPtr* = ptr XkbGeometrySizesRecXkbGeometrySizesRec*{.final.} = object ## Tie it all together into one big keyboard description#which*: int16num_properties*: int16num_colors*: int16num_shapes*: int16num_sections*: int16num_doodads*: int16num_key_aliases*: int16{.deprecated: [TXkbGeometrySizesRec: XkbGeometrySizesRec].}typePXkbDescPtr* = ptr XkbDescRecXkbDescRec*{.final.} = objectdpy*: PDisplayflags*: int16device_spec*: int16min_key_code*: KeyCodemax_key_code*: KeyCodectrls*: PXkbControlsPtrserver*: PXkbServerMapPtrmap*: PXkbClientMapPtrindicators*: PXkbIndicatorPtrnames*: PXkbNamesPtrcompat*: PXkbCompatMapPtrgeom*: PXkbGeometryPtr{.deprecated: [TXkbDescRec: XkbDescRec].}proc XkbKeyKeyTypeIndex*(d: PXkbDescPtr, k: int16, g: int8): int8proc XkbKeyKeyType*(d: PXkbDescPtr, k: int16, g: int8): PXkbKeyTypePtrproc XkbKeyGroupWidth*(d: PXkbDescPtr, k: int16, g: int8): int8proc XkbKeyGroupsWidth*(d: PXkbDescPtr, k: int16): int8proc XkbKeyGroupInfo*(d: PXkbDescPtr, k: int16): int8proc XkbKeyNumGroups*(d: PXkbDescPtr, k: int16): int8proc XkbKeyNumSyms*(d: PXkbDescPtr, k: int16): int16proc XkbKeySym*(d: PXkbDescPtr, k: int16, n: int16): KeySymproc XkbKeySymEntry*(d: PXkbDescPtr, k: int16, sl: int16, g: int8): KeySymproc XkbKeyAction*(d: PXkbDescPtr, k: int16, n: int16): PXkbActionproc XkbKeyActionEntry*(d: PXkbDescPtr, k: int16, sl: int16, g: int8): int8proc XkbKeyHasActions*(d: PXkbDescPtr, k: int16): boolproc XkbKeyNumActions*(d: PXkbDescPtr, k: int16): int16proc XkbKeyActionsPtr*(d: PXkbDescPtr, k: int16): PXkbActionproc XkbKeycodeInRange*(d: PXkbDescPtr, k: int16): boolproc XkbNumKeys*(d: PXkbDescPtr): int8## The following structures can be used to track changes# to a keyboard device#typePXkbMapChangesPtr* = ptr XkbMapChangesRecXkbMapChangesRec*{.final.} = objectchanged*: int16min_key_code*: KeyCodemax_key_code*: KeyCodefirst_type*: int8num_types*: int8first_key_sym*: KeyCodenum_key_syms*: int8first_key_act*: KeyCodenum_key_acts*: int8first_key_behavior*: KeyCodenum_key_behaviors*: int8first_key_explicit*: KeyCodenum_key_explicit*: int8first_modmap_key*: KeyCodenum_modmap_keys*: int8first_vmodmap_key*: KeyCodenum_vmodmap_keys*: int8pad*: int8vmods*: int16{.deprecated: [TXkbMapChangesRec: XkbMapChangesRec].}typePXkbControlsChangesPtr* = ptr XkbControlsChangesRecXkbControlsChangesRec*{.final.} = objectchanged_ctrls*: int16enabled_ctrls_changes*: int16num_groups_changed*: bool{.deprecated: [TXkbControlsChangesRec: XkbControlsChangesRec].}typePXkbIndicatorChangesPtr* = ptr XkbIndicatorChangesRecXkbIndicatorChangesRec*{.final.} = objectstate_changes*: int16map_changes*: int16{.deprecated: [TXkbIndicatorChangesRec: XkbIndicatorChangesRec].}typePXkbNameChangesPtr* = ptr XkbNameChangesRecXkbNameChangesRec*{.final.} = objectchanged*: int16first_type*: int8num_types*: int8first_lvl*: int8num_lvls*: int8num_aliases*: int8num_rg*: int8first_key*: int8num_keys*: int8changed_vmods*: int16changed_indicators*: int32changed_groups*: int8{.deprecated: [TXkbNameChangesRec: XkbNameChangesRec].}typePXkbCompatChangesPtr* = ptr XkbCompatChangesRecXkbCompatChangesRec*{.final.} = objectchanged_groups*: int8first_si*: int16num_si*: int16{.deprecated: [TXkbCompatChangesRec: XkbCompatChangesRec].}typePXkbChangesPtr* = ptr XkbChangesRecXkbChangesRec*{.final.} = object ## These data structures are used to construct a keymap from# a set of components or to list components in the server# database.#device_spec*: int16state_changes*: int16map*: XkbMapChangesRecctrls*: XkbControlsChangesRecindicators*: XkbIndicatorChangesRecnames*: XkbNameChangesReccompat*: XkbCompatChangesRec{.deprecated: [TXkbChangesRec: XkbChangesRec].}typePXkbComponentNamesPtr* = ptr XkbComponentNamesRecXkbComponentNamesRec*{.final.} = objectkeymap*: ptr int16keycodes*: ptr int16types*: ptr int16compat*: ptr int16symbols*: ptr int16geometry*: ptr int16{.deprecated: [TXkbComponentNamesRec: XkbComponentNamesRec].}typePXkbComponentNamePtr* = ptr XkbComponentNameRecXkbComponentNameRec*{.final.} = objectflags*: int16name*: cstring{.deprecated: [TXkbComponentNameRec: XkbComponentNameRec].}typePXkbComponentListPtr* = ptr XkbComponentListRecXkbComponentListRec*{.final.} = object ## The following data structures describe and track changes to a# non-keyboard extension device#num_keymaps*: int16num_keycodes*: int16num_types*: int16num_compat*: int16num_symbols*: int16num_geometry*: int16keymaps*: PXkbComponentNamePtrkeycodes*: PXkbComponentNamePtrtypes*: PXkbComponentNamePtrcompat*: PXkbComponentNamePtrsymbols*: PXkbComponentNamePtrgeometry*: PXkbComponentNamePtr{.deprecated: [TXkbComponentListRec: XkbComponentListRec].}typePXkbDeviceLedInfoPtr* = ptr XkbDeviceLedInfoRecXkbDeviceLedInfoRec*{.final.} = objectled_class*: int16led_id*: int16phys_indicators*: int16maps_present*: int16names_present*: int16state*: int16names*: array[0..XkbNumIndicators - 1, Atom]maps*: array[0..XkbNumIndicators - 1, XkbIndicatorMapRec]{.deprecated: [TXkbDeviceLedInfoRec: XkbDeviceLedInfoRec].}typePXkbDeviceInfoPtr* = ptr XkbDeviceInfoRecXkbDeviceInfoRec*{.final.} = objectname*: cstringtheType*: Atomdevice_spec*: int16has_own_state*: boolsupported*: int16unsupported*: int16num_btns*: int16btn_acts*: PXkbActionsz_leds*: int16num_leds*: int16dflt_kbd_fb*: int16dflt_led_fb*: int16leds*: PXkbDeviceLedInfoPtr{.deprecated: [TXkbDeviceInfoRec: XkbDeviceInfoRec].}proc XkbXI_DevHasBtnActs*(d: PXkbDeviceInfoPtr): boolproc XkbXI_LegalDevBtn*(d: PXkbDeviceInfoPtr, b: int16): boolproc XkbXI_DevHasLeds*(d: PXkbDeviceInfoPtr): booltypePXkbDeviceLedChangesPtr* = ptr XkbDeviceLedChangesRecXkbDeviceLedChangesRec*{.final.} = objectled_class*: int16led_id*: int16defined*: int16 #names or maps changednext*: PXkbDeviceLedChangesPtrtypePXkbDeviceChangesPtr* = ptr XkbDeviceChangesRecXkbDeviceChangesRec*{.final.} = objectchanged*: int16first_btn*: int16num_btns*: int16leds*: XkbDeviceLedChangesRec{.deprecated: [TXkbDeviceChangesRec: XkbDeviceChangesRec].}proc XkbShapeDoodadColor*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtrproc XkbShapeDoodadShape*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbShapePtrproc XkbSetShapeDoodadColor*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr,c: PXkbColorPtr)proc XkbSetShapeDoodadShape*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr,s: PXkbShapePtr)proc XkbTextDoodadColor*(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtrproc XkbSetTextDoodadColor*(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr,c: PXkbColorPtr)proc XkbIndicatorDoodadShape*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtrproc XkbIndicatorDoodadOnColor*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtrproc XkbIndicatorDoodadOffColor*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtrproc XkbSetIndicatorDoodadOnColor*(g: PXkbGeometryPtr,d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr)proc XkbSetIndicatorDoodadOffColor*(g: PXkbGeometryPtr,d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr)proc XkbSetIndicatorDoodadShape*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr,s: PXkbShapeDoodadPtr)proc XkbLogoDoodadColor*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtrproc XkbLogoDoodadShape*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbShapeDoodadPtrproc XkbSetLogoDoodadColor*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr,c: PXkbColorPtr)proc XkbSetLogoDoodadShape*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr,s: PXkbShapeDoodadPtr)proc XkbKeyShape*(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtrproc XkbKeyColor*(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbColorPtrproc XkbSetKeyShape*(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr)proc XkbSetKeyColor*(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr)proc XkbGeomColorIndex*(g: PXkbGeometryPtr, c: PXkbColorPtr): int32proc XkbAddGeomProperty*(geom: PXkbGeometryPtr, name: cstring, value: cstring): PXkbPropertyPtr{.libx11c, importc: "XkbAddGeomProperty".}proc XkbAddGeomKeyAlias*(geom: PXkbGeometryPtr, alias: cstring, float: cstring): PXkbKeyAliasPtr{.libx11c, importc: "XkbAddGeomKeyAlias".}proc XkbAddGeomColor*(geom: PXkbGeometryPtr, spec: cstring, pixel: int16): PXkbColorPtr{.libx11c, importc: "XkbAddGeomColor".}proc XkbAddGeomOutline*(shape: PXkbShapePtr, sz_points: int16): PXkbOutlinePtr{.libx11c, importc: "XkbAddGeomOutline".}proc XkbAddGeomShape*(geom: PXkbGeometryPtr, name: Atom, sz_outlines: int16): PXkbShapePtr{.libx11c, importc: "XkbAddGeomShape".}proc XkbAddGeomKey*(row: PXkbRowPtr): PXkbKeyPtr{.libx11c,importc: "XkbAddGeomKey".}proc XkbAddGeomRow*(section: PXkbSectionPtr, sz_keys: int16): PXkbRowPtr{.libx11c, importc: "XkbAddGeomRow".}proc XkbAddGeomSection*(geom: PXkbGeometryPtr, name: Atom, sz_rows: int16,sz_doodads: int16, sz_overlays: int16): PXkbSectionPtr{.libx11c, importc: "XkbAddGeomSection".}proc XkbAddGeomOverlay*(section: PXkbSectionPtr, name: Atom, sz_rows: int16): PXkbOverlayPtr{.libx11c, importc: "XkbAddGeomOverlay".}proc XkbAddGeomOverlayRow*(overlay: PXkbOverlayPtr, row_under: int16,sz_keys: int16): PXkbOverlayRowPtr{.libx11c, importc: "XkbAddGeomOverlayRow".}proc XkbAddGeomOverlayKey*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr,over: cstring, under: cstring): PXkbOverlayKeyPtr{.libx11c, importc: "XkbAddGeomOverlayKey".}proc XkbAddGeomDoodad*(geom: PXkbGeometryPtr, section: PXkbSectionPtr,name: Atom): PXkbDoodadPtr{.libx11c,importc: "XkbAddGeomDoodad".}proc XkbFreeGeomKeyAliases*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomKeyAliases".}proc XkbFreeGeomColors*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomColors".}proc XkbFreeGeomDoodads*(doodads: PXkbDoodadPtr, nDoodads: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomDoodads".}proc XkbFreeGeomProperties*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomProperties".}proc XkbFreeGeomOverlayKeys*(row: PXkbOverlayRowPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomOverlayKeys".}proc XkbFreeGeomOverlayRows*(overlay: PXkbOverlayPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayRows".}proc XkbFreeGeomOverlays*(section: PXkbSectionPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomOverlays".}proc XkbFreeGeomKeys*(row: PXkbRowPtr, first: int16, count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomKeys".}proc XkbFreeGeomRows*(section: PXkbSectionPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomRows".}proc XkbFreeGeomSections*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomSections".}proc XkbFreeGeomPoints*(outline: PXkbOutlinePtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomPoints".}proc XkbFreeGeomOutlines*(shape: PXkbShapePtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomOutlines".}proc XkbFreeGeomShapes*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomShapes".}proc XkbFreeGeometry*(geom: PXkbGeometryPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeGeometry".}proc XkbAllocGeomProps*(geom: PXkbGeometryPtr, nProps: int16): Status{.libx11c, importc: "XkbAllocGeomProps".}proc XkbAllocGeomKeyAliases*(geom: PXkbGeometryPtr, nAliases: int16): Status{.libx11c, importc: "XkbAllocGeomKeyAliases".}proc XkbAllocGeomColors*(geom: PXkbGeometryPtr, nColors: int16): Status{.libx11c, importc: "XkbAllocGeomColors".}proc XkbAllocGeomShapes*(geom: PXkbGeometryPtr, nShapes: int16): Status{.libx11c, importc: "XkbAllocGeomShapes".}proc XkbAllocGeomSections*(geom: PXkbGeometryPtr, nSections: int16): Status{.libx11c, importc: "XkbAllocGeomSections".}proc XkbAllocGeomOverlays*(section: PXkbSectionPtr, num_needed: int16): Status{.libx11c, importc: "XkbAllocGeomOverlays".}proc XkbAllocGeomOverlayRows*(overlay: PXkbOverlayPtr, num_needed: int16): Status{.libx11c, importc: "XkbAllocGeomOverlayRows".}proc XkbAllocGeomOverlayKeys*(row: PXkbOverlayRowPtr, num_needed: int16): Status{.libx11c, importc: "XkbAllocGeomOverlayKeys".}proc XkbAllocGeomDoodads*(geom: PXkbGeometryPtr, nDoodads: int16): Status{.libx11c, importc: "XkbAllocGeomDoodads".}proc XkbAllocGeomSectionDoodads*(section: PXkbSectionPtr, nDoodads: int16): Status{.libx11c, importc: "XkbAllocGeomSectionDoodads".}proc XkbAllocGeomOutlines*(shape: PXkbShapePtr, nOL: int16): Status{.libx11c, importc: "XkbAllocGeomOutlines".}proc XkbAllocGeomRows*(section: PXkbSectionPtr, nRows: int16): Status{.libx11c, importc: "XkbAllocGeomRows".}proc XkbAllocGeomPoints*(ol: PXkbOutlinePtr, nPts: int16): Status{.libx11c, importc: "XkbAllocGeomPoints".}proc XkbAllocGeomKeys*(row: PXkbRowPtr, nKeys: int16): Status{.libx11c, importc: "XkbAllocGeomKeys".}proc XkbAllocGeometry*(xkb: PXkbDescPtr, sizes: PXkbGeometrySizesPtr): Status{.libx11c, importc: "XkbAllocGeometry".}proc XkbSetGeometryProc*(dpy: PDisplay, deviceSpec: int16, geom: PXkbGeometryPtr): Status{.libx11c, importc: "XkbSetGeometry".}proc XkbComputeShapeTop*(shape: PXkbShapePtr, bounds: PXkbBoundsPtr): bool{.libx11c, importc: "XkbComputeShapeTop".}proc XkbComputeShapeBounds*(shape: PXkbShapePtr): bool{.libx11c,importc: "XkbComputeShapeBounds".}proc XkbComputeRowBounds*(geom: PXkbGeometryPtr, section: PXkbSectionPtr,row: PXkbRowPtr): bool{.libx11c,importc: "XkbComputeRowBounds".}proc XkbComputeSectionBounds*(geom: PXkbGeometryPtr, section: PXkbSectionPtr): bool{.libx11c, importc: "XkbComputeSectionBounds".}proc XkbFindOverlayForKey*(geom: PXkbGeometryPtr, wanted: PXkbSectionPtr,under: cstring): cstring{.libx11c,importc: "XkbFindOverlayForKey".}proc XkbGetGeometryProc*(dpy: PDisplay, xkb: PXkbDescPtr): Status{.libx11c, importc: "XkbGetGeometry".}proc XkbGetNamedGeometry*(dpy: PDisplay, xkb: PXkbDescPtr, name: Atom): Status{.libx11c, importc: "XkbGetNamedGeometry".}when defined(XKB_IN_SERVER):proc SrvXkbAddGeomKeyAlias*(geom: PXkbGeometryPtr, alias: cstring,float: cstring): PXkbKeyAliasPtr{.libx11c, importc: "XkbAddGeomKeyAlias".}proc SrvXkbAddGeomColor*(geom: PXkbGeometryPtr, spec: cstring, pixel: int16): PXkbColorPtr{.libx11c, importc: "XkbAddGeomColor".}proc SrvXkbAddGeomDoodad*(geom: PXkbGeometryPtr, section: PXkbSectionPtr,name: Atom): PXkbDoodadPtr{.libx11c,importc: "XkbAddGeomDoodad".}proc SrvXkbAddGeomKey*(geom: PXkbGeometryPtr, alias: cstring, float: cstring): PXkbKeyAliasPtr{.libx11c, importc: "XkbAddGeomKeyAlias".}proc SrvXkbAddGeomOutline*(shape: PXkbShapePtr, sz_points: int16): PXkbOutlinePtr{.libx11c, importc: "XkbAddGeomOutline".}proc SrvXkbAddGeomOverlay*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr,over: cstring, under: cstring): PXkbOverlayKeyPtr{.libx11c, importc: "XkbAddGeomOverlayKey".}proc SrvXkbAddGeomOverlayRow*(overlay: PXkbOverlayPtr, row_under: int16,sz_keys: int16): PXkbOverlayRowPtr{.libx11c, importc: "XkbAddGeomOverlayRow".}proc SrvXkbAddGeomOverlayKey*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr,over: cstring, under: cstring): PXkbOverlayKeyPtr{.libx11c, importc: "XkbAddGeomOverlayKey".}proc SrvXkbAddGeomProperty*(geom: PXkbGeometryPtr, name: cstring,value: cstring): PXkbPropertyPtr{.libx11c, importc: "XkbAddGeomProperty".}proc SrvXkbAddGeomRow*(section: PXkbSectionPtr, sz_keys: int16): PXkbRowPtr{.libx11c, importc: "XkbAddGeomRow".}proc SrvXkbAddGeomSection*(geom: PXkbGeometryPtr, name: Atom, sz_rows: int16,sz_doodads: int16, sz_overlays: int16): PXkbSectionPtr{.libx11c, importc: "XkbAddGeomSection".}proc SrvXkbAddGeomShape*(geom: PXkbGeometryPtr, name: Atom,sz_outlines: int16): PXkbShapePtr{.libx11c, importc: "XkbAddGeomShape".}proc SrvXkbAllocGeomKeyAliases*(geom: PXkbGeometryPtr, nAliases: int16): Status{.libx11c, importc: "XkbAllocGeomKeyAliases".}proc SrvXkbAllocGeomColors*(geom: PXkbGeometryPtr, nColors: int16): Status{.libx11c, importc: "XkbAllocGeomColors".}proc SrvXkbAllocGeomDoodads*(geom: PXkbGeometryPtr, nDoodads: int16): Status{.libx11c, importc: "XkbAllocGeomDoodads".}proc SrvXkbAllocGeomKeys*(row: PXkbRowPtr, nKeys: int16): Status{.libx11c, importc: "XkbAllocGeomKeys".}proc SrvXkbAllocGeomOutlines*(shape: PXkbShapePtr, nOL: int16): Status{.libx11c, importc: "XkbAllocGeomOutlines".}proc SrvXkbAllocGeomPoints*(ol: PXkbOutlinePtr, nPts: int16): Status{.libx11c, importc: "XkbAllocGeomPoints".}proc SrvXkbAllocGeomProps*(geom: PXkbGeometryPtr, nProps: int16): Status{.libx11c, importc: "XkbAllocGeomProps".}proc SrvXkbAllocGeomRows*(section: PXkbSectionPtr, nRows: int16): Status{.libx11c, importc: "XkbAllocGeomRows".}proc SrvXkbAllocGeomSectionDoodads*(section: PXkbSectionPtr, nDoodads: int16): Status{.libx11c, importc: "XkbAllocGeomSectionDoodads".}proc SrvXkbAllocGeomSections*(geom: PXkbGeometryPtr, nSections: int16): Status{.libx11c, importc: "XkbAllocGeomSections".}proc SrvXkbAllocGeomOverlays*(section: PXkbSectionPtr, num_needed: int16): Status{.libx11c, importc: "XkbAllocGeomOverlays".}proc SrvXkbAllocGeomOverlayRows*(overlay: PXkbOverlayPtr, num_needed: int16): Status{.libx11c, importc: "XkbAllocGeomOverlayRows".}proc SrvXkbAllocGeomOverlayKeys*(row: PXkbOverlayRowPtr, num_needed: int16): Status{.libx11c, importc: "XkbAllocGeomOverlayKeys".}proc SrvXkbAllocGeomShapes*(geom: PXkbGeometryPtr, nShapes: int16): Status{.libx11c, importc: "XkbAllocGeomShapes".}proc SrvXkbAllocGeometry*(xkb: PXkbDescPtr, sizes: PXkbGeometrySizesPtr): Status{.libx11c, importc: "XkbAllocGeometry".}proc SrvXkbFreeGeomKeyAliases*(geom: PXkbGeometryPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomKeyAliases".}proc SrvXkbFreeGeomColors*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomColors".}proc SrvXkbFreeGeomDoodads*(doodads: PXkbDoodadPtr, nDoodads: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomDoodads".}proc SrvXkbFreeGeomProperties*(geom: PXkbGeometryPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomProperties".}proc SrvXkbFreeGeomOverlayKeys*(row: PXkbOverlayRowPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayKeys".}proc SrvXkbFreeGeomOverlayRows*(overlay: PXkbOverlayPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayRows".}proc SrvXkbFreeGeomOverlays*(section: PXkbSectionPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlays".}proc SrvXkbFreeGeomKeys*(row: PXkbRowPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomKeys".}proc SrvXkbFreeGeomRows*(section: PXkbSectionPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomRows".}proc SrvXkbFreeGeomSections*(geom: PXkbGeometryPtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomSections".}proc SrvXkbFreeGeomPoints*(outline: PXkbOutlinePtr, first: int16,count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomPoints".}proc SrvXkbFreeGeomOutlines*(shape: PXkbShapePtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomOutlines".}proc SrvXkbFreeGeomShapes*(geom: PXkbGeometryPtr, first: int16, count: int16,freeAll: bool){.libx11c,importc: "XkbFreeGeomShapes".}proc SrvXkbFreeGeometry*(geom: PXkbGeometryPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeGeometry".}# implementationimport #************************************ xkb ************************************xiproc XkbLegalXILedClass(c: int): bool =##define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||((c)==LedFeedbackClass)||# ((c)==XkbDfltXIClass)||((c)==XkbAllXIClasses))result = (c == KbdFeedbackClass) or (c == LedFeedbackClass) or(c == XkbDfltXIClass) or (c == XkbAllXIClasses)proc XkbLegalXIBellClass(c: int): bool =##define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||((c)==BellFeedbackClass)||# ((c)==XkbDfltXIClass)||((c)==XkbAllXIClasses))result = (c == KbdFeedbackClass) or (c == BellFeedbackClass) or(c == XkbDfltXIClass) or (c == XkbAllXIClasses)proc XkbExplicitXIDevice(c: int): bool =##define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)result = (c and (not 0x000000FF)) == 0proc XkbExplicitXIClass(c: int): bool =##define XkbExplicitXIClass(c) (((c)&(~0xff))==0)result = (c and (not 0x000000FF)) == 0proc XkbExplicitXIId(c: int): bool =##define XkbExplicitXIId(c) (((c)&(~0xff))==0)result = (c and (not 0x000000FF)) == 0proc XkbSingleXIClass(c: int): bool =##define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))result = ((c and (not 0x000000FF)) == 0) or (c == XkbDfltXIClass)proc XkbSingleXIId(c: int): bool =##define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))result = ((c and (not 0x000000FF)) == 0) or (c == XkbDfltXIId)proc XkbBuildCoreState(m, g: int): int =##define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))result = ((g and 0x00000003) shl 13) or (m and 0x000000FF)proc XkbGroupForCoreState(s: int): int =##define XkbGroupForCoreState(s) (((s)>>13)&0x3)result = (s shr 13) and 0x00000003proc XkbIsLegalGroup(g: int): bool =##define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))result = (g >= 0) and (g < XkbNumKbdGroups)proc XkbSA_ValOp(a: int): int =##define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)result = a and XkbSA_ValOpMaskproc XkbSA_ValScale(a: int): int =##define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)result = a and XkbSA_ValScaleMaskproc XkbIsModAction(a: PXkbAnyAction): bool =##define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))result = ((a.theType) >= XkbSA_SetMods) and ((a.theType) <= XkbSA_LockMods)proc XkbIsGroupAction(a: PXkbAnyAction): bool =##define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))result = ((a.theType) >= XkbSA_SetGroup) or ((a.theType) <= XkbSA_LockGroup)proc XkbIsPtrAction(a: PXkbAnyAction): bool =##define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))result = ((a.theType) >= XkbSA_MovePtr) and((a.theType) <= XkbSA_SetPtrDflt)proc XkbIsLegalKeycode(k: int): bool =##define XkbIsLegalKeycode(k) (((k)>=XkbMinLegalKeyCode)&&((k)<=XkbMaxLegalKeyCode))result = (k >= XkbMinLegalKeyCode) and (k <= XkbMaxLegalKeyCode)proc XkbShiftLevel(n: int8): int8 =##define XkbShiftLevel(n) ((n)-1)result = n - 1'i8proc XkbShiftLevelMask(n: int8): int8 =##define XkbShiftLevelMask(n) (1<<((n)-1))result = 1'i8 shl (n - 1'i8)proc XkbcharToInt(v: int8): int16 =##define XkbcharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))if ((v and 0x80'i8) != 0'i8): result = v or (not 0xFF'i16)else: result = int16(v and 0x7F'i8)proc XkbIntTo2chars(i: int16, h, L: var int8) =##define XkbIntTo2chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))h = int8((i shr 8'i16) and 0x00FF'i16)L = int8(i and 0xFF'i16)proc Xkb2charsToInt(h, L: int8): int16 =when defined(cpu64):##define Xkb2charsToInt(h,l) ((h)&0x80?(int)(((h)<<8)|(l)|(~0xffff)): (int)(((h)<<8)|(l)&0x7fff))if (h and 0x80'i8) != 0'i8:result = int16(((h) shl 8) or (L) or not 0x0000FFFF)else:result = int16(((h) shl 8) or (L) and 0x00007FFF)else:##define Xkb2charsToInt(h,l) ((short)(((h)<<8)|(l)))result = int16((h) shl 8 or (L))proc XkbModLocks(s: PXkbStatePtr): int8 =##define XkbModLocks(s) ((s)->locked_mods)result = s.locked_modsproc XkbStateMods(s: PXkbStatePtr): int16 =##define XkbStateMods(s) ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))result = s.base_mods or s.latched_mods or XkbModLocks(s)proc XkbGroupLock(s: PXkbStatePtr): int8 =##define XkbGroupLock(s) ((s)->locked_group)result = s.locked_groupproc XkbStateGroup(s: PXkbStatePtr): int16 =##define XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))result = s.base_group + (s.latched_group) + XkbGroupLock(s)proc XkbStateFieldFromRec(s: PXkbStatePtr): int =##define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)result = XkbBuildCoreState(s.lookup_mods, s.group)proc XkbGrabStateFromRec(s: PXkbStatePtr): int =##define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group)result = XkbBuildCoreState(s.grab_mods, s.group)proc XkbNumGroups(g: int16): int16 =##define XkbNumGroups(g) ((g)&0x0f)result = g and 0x0000000F'i16proc XkbOutOfRangeGroupInfo(g: int16): int16 =##define XkbOutOfRangeGroupInfo(g) ((g)&0xf0)result = g and 0x000000F0'i16proc XkbOutOfRangeGroupAction(g: int16): int16 =##define XkbOutOfRangeGroupAction(g) ((g)&0xc0)result = g and 0x000000C0'i16proc XkbOutOfRangeGroupNumber(g: int16): int16 =##define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4)result = (g and 0x00000030'i16) shr 4'i16proc XkbSetGroupInfo(g, w, n: int16): int16 =##define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))result = (w and 0x000000C0'i16) or((n and 3'i16) shl 4'i16) or (g and 0x0000000F'i16)proc XkbSetNumGroups(g, n: int16): int16 =##define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f))result = (g and 0x000000F0'i16) or (n and 0x0000000F'i16)proc XkbModActionVMods(a: PXkbModAction): int16 =##define XkbModActionVMods(a) ((short)(((a)->vmods1<<8)|((a)->vmods2)))result = int16(((a.vmods1) shl 8) or (a.vmods2))proc XkbSetModActionVMods(a: PXkbModAction, v: int8) =##define XkbSetModActionVMods(a,v) (((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))a.vmods1 = int8(((v) shr 8) and 0x000000FF)a.vmods2 = int8((v) and 0x000000FF)proc XkbSAGroup(a: PXkbGroupAction): int8 =##define XkbSAGroup(a) (XkbcharToInt((a)->group_XXX))result = int8(XkbcharToInt(a.group_XXX))proc XkbSASetGroupProc(a: PXkbGroupAction, g: int8) =##define XkbSASetGroup(a,g) ((a)->group_XXX=(g))a.group_XXX = gproc XkbPtrActionX(a: PXkbPtrAction): int16 =##define XkbPtrActionX(a) (Xkb2charsToInt((a)->high_XXX,(a)->low_XXX))result = int16(Xkb2charsToInt(a.high_XXX, a.low_XXX))proc XkbPtrActionY(a: PXkbPtrAction): int16 =##define XkbPtrActionY(a) (Xkb2charsToInt((a)->high_YYY,(a)->low_YYY))result = int16(Xkb2charsToInt(a.high_YYY, a.low_YYY))proc XkbSetPtrActionX(a: PXkbPtrAction, x: int8) =##define XkbSetPtrActionX(a,x) (XkbIntTo2chars(x,(a)->high_XXX,(a)->low_XXX))XkbIntTo2chars(x, a.high_XXX, a.low_XXX)proc XkbSetPtrActionY(a: PXkbPtrAction, y: int8) =##define XkbSetPtrActionY(a,y) (XkbIntTo2chars(y,(a)->high_YYY,(a)->low_YYY))XkbIntTo2chars(y, a.high_YYY, a.low_YYY)proc XkbSAPtrDfltValue(a: PXkbPtrDfltAction): int8 =##define XkbSAPtrDfltValue(a) (XkbcharToInt((a)->valueXXX))result = int8(XkbcharToInt(a.valueXXX))proc XkbSASetPtrDfltValue(a: PXkbPtrDfltAction, c: pointer) =##define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff))a.valueXXX = int8(cast[int](c))proc XkbSAScreen(a: PXkbSwitchScreenAction): int8 =##define XkbSAScreen(a) (XkbcharToInt((a)->screenXXX))result = int8(XkbcharToInt(a.screenXXX))proc XkbSASetScreen(a: PXkbSwitchScreenAction, s: pointer) =##define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff))a.screenXXX = int8(cast[int](s))proc XkbActionSetCtrls(a: PXkbCtrlsAction, c: int8) =##define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),((a)->ctrls2=(((c)>>16)&0xff)),# ((a)->ctrls1=(((c)>>8)&0xff)),((a)->ctrls0=((c)&0xff)))a.ctrls3 = int8(((c) shr 24) and 0x000000FF)a.ctrls2 = int8(((c) shr 16) and 0x000000FF)a.ctrls1 = int8(((c) shr 8) and 0x000000FF)a.ctrls0 = int8((c) and 0x000000FF)proc XkbActionCtrls(a: PXkbCtrlsAction): int16 =##define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|(((unsigned int)(a)->ctrls2)<<16)|# (((unsigned int)(a)->ctrls1)<<8)|((unsigned int)((a)->ctrls0)))result = int16(((a.ctrls3) shl 24) or ((a.ctrls2) shl 16) or((a.ctrls1) shl 8) or (a.ctrls0))proc XkbSARedirectVMods(a: PXkbRedirectKeyAction): int16 =##define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|((unsigned int)(a)->vmods0))result = int16(((a.vmods1) shl 8) or (a.vmods0))proc XkbSARedirectSetVMods(a: PXkbRedirectKeyAction, m: int8) =##define XkbSARedirectSetVMods(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),((a)->vmods_mask0=((m)&0xff)))a.vmods_mask1 = int8(((m) shr 8) and 0x000000FF)a.vmods_mask0 = int8((m) or 0x000000FF)proc XkbSARedirectVModsMask(a: PXkbRedirectKeyAction): int16 =##define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|# ((unsigned int)(a)->vmods_mask0))result = int16(((a.vmods_mask1) shl 8) or (a.vmods_mask0))proc XkbSARedirectSetVModsMask(a: PXkbRedirectKeyAction, m: int8) =##define XkbSARedirectSetVModsMask(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),((a)->vmods_mask0=((m)&0xff)))a.vmods_mask1 = int8((m) shr 8 and 0x000000FF)a.vmods_mask0 = int8((m) and 0x000000FF)proc XkbAX_AnyFeedback(c: PXkbControlsPtr): int16 =##define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)result = int16((c.enabled_ctrls) and XkbAccessXFeedbackMask)proc XkbAX_NeedOption(c: PXkbControlsPtr, w: int16): int16 =##define XkbAX_NeedOption(c,w) ((c)->ax_options&(w))result = int16((c.ax_options) and (w))proc XkbAX_NeedFeedback(c: PXkbControlsPtr, w: int16): bool =##define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))result = (XkbAX_AnyFeedback(c) > 0'i16) and (XkbAX_NeedOption(c, w) > 0'i16)proc XkbSMKeyActionsPtr(m: PXkbServerMapPtr, k: int16): PXkbAction =##define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])result = addr(m.acts[(m.key_acts[(k)])])proc XkbCMKeyGroupInfo(m: PXkbClientMapPtr, k: int16): int8 =##define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info)result = m.key_sym_map[(k)].group_infoproc XkbCMKeyNumGroups(m: PXkbClientMapPtr, k: int16): int8 =##define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info))result = int8(XkbNumGroups(m.key_sym_map[(k)].group_info))proc XkbCMKeyGroupWidth(m: PXkbClientMapPtr, k: int16, g: int8): int8 =##define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)result = XkbCMKeyType(m, k, g).num_levelsproc XkbCMKeyGroupsWidth(m: PXkbClientMapPtr, k: int16): int8 =##define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)result = m.key_sym_map[(k)].widthproc XkbCMKeyTypeIndex(m: PXkbClientMapPtr, k: int16, g: int8): int8 =##define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])result = m.key_sym_map[(k)].kt_index[(g) and 0x00000003]proc XkbCMKeyType(m: PXkbClientMapPtr, k: int16, g: int8): PXkbKeyTypePtr =##define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])result = addr(m.types[(XkbCMKeyTypeIndex(m, k, g))])proc XkbCMKeyNumSyms(m: PXkbClientMapPtr, k: int16): int16 =##define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))result = int16((XkbCMKeyGroupsWidth(m, k)) or (XkbCMKeyNumGroups(m, k)))proc XkbCMKeySymsOffset(m: PXkbClientMapPtr, k: int16): int8 =##define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)result = m.key_sym_map[(k)].offsetproc XkbCMKeySymsPtr*(m: PXkbClientMapPtr, k: int16): PKeySym =##define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)])result = addr(m.syms[(XkbCMKeySymsOffset(m, k))])proc XkbIM_IsAuto(i: PXkbIndicatorMapPtr): bool =##define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&(((i)->which_groups&&(i)->groups)||# ((i)->which_mods&&(i)->mods.mask)|| ((i)->ctrls)))result = (((i.flags) and XkbIM_NoAutomatic) == 0) and(((i.which_groups > 0'i8) and (i.groups > 0'i8)) or((i.which_mods > 0'i8) and (i.mods.mask > 0'i8)) or (i.ctrls > 0'i8))proc XkbIM_InUse(i: PXkbIndicatorMapPtr): bool =##define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||((i)->which_mods)||((i)->ctrls))result = (i.flags > 0'i8) or (i.which_groups > 0'i8) or (i.which_mods > 0'i8) or(i.ctrls > 0'i8)proc XkbKeyKeyTypeIndex(d: PXkbDescPtr, k: int16, g: int8): int8 =##define XkbKeyKeyTypeIndex(d,k,g) (XkbCMKeyTypeIndex((d)->map,k,g))result = XkbCMKeyTypeIndex(d.map, k, g)proc XkbKeyKeyType(d: PXkbDescPtr, k: int16, g: int8): PXkbKeyTypePtr =##define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g))result = XkbCMKeyType(d.map, k, g)proc XkbKeyGroupWidth(d: PXkbDescPtr, k: int16, g: int8): int8 =##define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g))result = XkbCMKeyGroupWidth(d.map, k, g)proc XkbKeyGroupsWidth(d: PXkbDescPtr, k: int16): int8 =##define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k))result = XkbCMKeyGroupsWidth(d.map, k)proc XkbKeyGroupInfo(d: PXkbDescPtr, k: int16): int8 =##define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k)))result = XkbCMKeyGroupInfo(d.map, k)proc XkbKeyNumGroups(d: PXkbDescPtr, k: int16): int8 =##define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k)))result = XkbCMKeyNumGroups(d.map, k)proc XkbKeyNumSyms(d: PXkbDescPtr, k: int16): int16 =##define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k)))result = XkbCMKeyNumSyms(d.map, k)proc XkbKeySymsPtr*(d: PXkbDescPtr, k: int16): PKeySym =##define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k)))result = XkbCMKeySymsPtr(d.map, k)proc XkbKeySym(d: PXkbDescPtr, k: int16, n: int16): KeySym =##define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n])result = cast[ptr array[0..0xffff, KeySym]](XkbKeySymsPtr(d, k))[(n)] # XXX: this seems strange!proc XkbKeySymEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): KeySym =##define XkbKeySymEntry(d,k,sl,g) (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))result = XkbKeySym(d, k, int16((XkbKeyGroupsWidth(d, k)) * (g) + (sl)))proc XkbKeyAction(d: PXkbDescPtr, k: int16, n: int16): PXkbAction =##define XkbKeyAction(d,k,n) (XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)#if (XkbKeyHasActions(d, k)):# result = XkbKeyActionsPtr(d, k)[(n)] #Buggy !!!assert(false)result = nilproc XkbKeyActionEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): int8 =##define XkbKeyActionEntry(d,k,sl,g) (XkbKeyHasActions(d,k) ?# XkbKeyAction(d, k, ((XkbKeyGroupsWidth(d, k) * (g))+(sl))):NULL)if XkbKeyHasActions(d, k):result = XkbKeyGroupsWidth(d, k) *% g +% int8(sl)else:result = 0'i8proc XkbKeyHasActions(d: PXkbDescPtr, k: int16): bool =##define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0)result = d.server.key_acts[(k)] != 0'i16proc XkbKeyNumActions(d: PXkbDescPtr, k: int16): int16 =##define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)if (XkbKeyHasActions(d, k)): result = XkbKeyNumSyms(d, k)else: result = 1'i16proc XkbKeyActionsPtr(d: PXkbDescPtr, k: int16): PXkbAction =##define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k))result = XkbSMKeyActionsPtr(d.server, k)proc XkbKeycodeInRange(d: PXkbDescPtr, k: int16): bool =##define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&& ((k)<=(d)->max_key_code))result = (char(int8(k)) >= d.min_key_code) and (char(int8(k)) <= d.max_key_code)proc XkbNumKeys(d: PXkbDescPtr): int8 =##define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1)result = int8(ord(d.max_key_code) - ord(d.min_key_code) + 1)proc XkbXI_DevHasBtnActs(d: PXkbDeviceInfoPtr): bool =##define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL))result = (d.num_btns > 0'i16) and (not (d.btn_acts == nil))proc XkbXI_LegalDevBtn(d: PXkbDeviceInfoPtr, b: int16): bool =##define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))result = XkbXI_DevHasBtnActs(d) and (b <% d.num_btns)proc XkbXI_DevHasLeds(d: PXkbDeviceInfoPtr): bool =##define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL))result = (d.num_leds > 0'i16) and (not (d.leds == nil))proc XkbBoundsWidth(b: PXkbBoundsPtr): int16 =##define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))result = (b.x2) - b.x1proc XkbBoundsHeight(b: PXkbBoundsPtr): int16 =##define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))result = (b.y2) - b.y1proc XkbOutlineIndex(s: PXkbShapePtr, o: PXkbOutlinePtr): int32 =##define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))result = int32((cast[ByteAddress](o) - cast[ByteAddress](addr(s.outlines[0]))) div sizeof(PXkbOutlinePtr))proc XkbShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtr =##define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])result = addr((g.colors[(d.color_ndx)]))proc XkbShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbShapePtr =##define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])result = addr(g.shapes[(d.shape_ndx)])proc XkbSetShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr,c: PXkbColorPtr) =##define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])d.color_ndx = int16((cast[ByteAddress](c) - cast[ByteAddress](addr(g.colors[0]))) div sizeof(XkbColorRec))proc XkbSetShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr,s: PXkbShapePtr) =##define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])d.shape_ndx = int16((cast[ByteAddress](s) - cast[ByteAddress](addr(g.shapes[0]))) div sizeof(XkbShapeRec))proc XkbTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtr =##define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])result = addr(g.colors[(d.color_ndx)])proc XkbSetTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr,c: PXkbColorPtr) =##define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])d.color_ndx = int16((cast[ByteAddress](c) - cast[ByteAddress](addr(g.colors[0]))) div sizeof(XkbColorRec))proc XkbIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtr =##define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])result = cast[PXkbShapeDoodadPtr](addr(g.shapes[(d.shape_ndx)]))proc XkbIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr =##define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])result = addr(g.colors[(d.on_color_ndx)])proc XkbIndicatorDoodadOffColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr =##define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])result = addr(g.colors[(d.off_color_ndx)])proc XkbSetIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr,c: PXkbColorPtr) =##define XkbSetIndicatorDoodadOnColor(g,d,c) ((d)->on_color_ndx= (c)-&(g)->colors[0])d.on_color_ndx = int16((cast[ByteAddress](c) - cast[ByteAddress](addr(g.colors[0]))) div sizeof(XkbColorRec))proc XkbSetIndicatorDoodadOffColor(g: PXkbGeometryPtr,d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr) =##define XkbSetIndicatorDoodadOffColor(g,d,c) ((d)->off_color_ndx= (c)-&(g)->colors[0])d.off_color_ndx = int16((cast[ByteAddress](c) - cast[ByteAddress](addr(g.colors[0]))) div sizeof(XkbColorRec))proc XkbSetIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr,s: PXkbShapeDoodadPtr) =##define XkbSetIndicatorDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])d.shape_ndx = int16((cast[ByteAddress](s) - (cast[ByteAddress](addr(g.shapes[0])))) div sizeof(XkbShapeRec))proc XkbLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtr =##define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])result = addr(g.colors[(d.color_ndx)])proc XkbLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbShapeDoodadPtr =##define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])result = cast[PXkbShapeDoodadPtr](addr(g.shapes[(d.shape_ndx)]))proc XkbSetLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr,c: PXkbColorPtr) =##define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])d.color_ndx = int16((cast[ByteAddress](c) - cast[ByteAddress](addr(g.colors[0]))) div sizeof(XkbColorRec))proc XkbSetLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr,s: PXkbShapeDoodadPtr) =##define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])d.shape_ndx = int16((cast[ByteAddress](s) - cast[ByteAddress](addr(g.shapes[0]))) div sizeof(XkbShapeRec))proc XkbKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtr =##define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])result = cast[PXkbShapeDoodadPtr](addr(g.shapes[(k.shape_ndx)]))proc XkbKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbColorPtr =##define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])result = addr(g.colors[(k.color_ndx)])proc XkbSetKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr) =##define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])k.shape_ndx = int8((cast[ByteAddress](s) - cast[ByteAddress](addr(g.shapes[0]))) div sizeof(XkbShapeRec))proc XkbSetKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr) =##define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])k.color_ndx = int8((cast[ByteAddress](c) - cast[ByteAddress](addr(g.colors[0]))) div sizeof(XkbColorRec))proc XkbGeomColorIndex(g: PXkbGeometryPtr, c: PXkbColorPtr): int32 =##define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))result = int16((cast[ByteAddress](c) - (cast[ByteAddress](addr(g.colors[0])))) div sizeof(XkbColorRec))proc xkb_keysym_get_name*( keysym: xkb_keysym_t, buffer: cstring, size: csize_t): int {.importc, cdecl.}
# *****************************************# Generated from <X11/extensions/XInput2.h># *****************************************import x, xlib, xi2# <X11/extensions/xfixes.h>type PointerBarrier* = XIDtypePXIAddMasterInfo* = ptr XIAddMasterInfoXIAddMasterInfo* {.final.} = object`type`*: cintname*: cstringsend_core*: XBoolenable*: XBoolPXIRemoveMasterInfo* = ptr XIRemoveMasterInfoXIRemoveMasterInfo* {.final.} = object`type`*: cintdeviceid*: cintreturn_mode*: cint ## AttachToMaster, Floatingreturn_pointer*: cintreturn_keyboard*: cintPXIAttachSlaveInfo* = ptr XIAttachSlaveInfoXIAttachSlaveInfo* {.final.} = object`type`*: cintdeviceid*: cintnew_master*: cintPXIDetachSlaveInfo* = ptr XIDetachSlaveInfoXIDetachSlaveInfo* {.final.} = object`type`*: cintdeviceid*: cintPXIAnyHierarchyChangeInfo* = ptr XIAnyHierarchyChangeInfoXIAnyHierarchyChangeInfo* {.final, union.} = object`type`*: cint ## must be first elementadd*: XIAddMasterInforemove*: XIRemoveMasterInfoattach*: XIAttachSlaveInfodetach*: XIDetachSlaveInfoPXIModifierState* = ptr XIModifierStateXIModifierState* {.final.} = objectbase*: cintlatched*: cintlocked*: cinteffective*: cintPXIGroupState* = ptr XIGroupStateXIGroupState* = XIModifierStatePXIButtonState* = ptr XIButtonStateXIButtonState* {.final.} = objectmask_len*: cintmask*: ptr charPXIValuatorState* = ptr XIValuatorStateXIValuatorState* {.final.} = objectmask_len*: cintmask*: ptr charvalues*: ptr cdoublePXIEventMask* = ptr XIEventMaskXIEventMask* {.final.} = objectdeviceid*: cintmask_len*: cintmask*: ptr charPXIAnyClassInfo* = ptr XIAnyClassInfoXIAnyClassInfo* {.final.} = object`type`*: cintsourceid*: cintPXIButtonClassInfo* = ptr XIButtonClassInfoXIButtonClassInfo* {.final.} = object`type`*: cintsourceid*: cintnum_buttons*: cintlabels*: PAtomstate*: XIButtonStatePXIKeyClassInfo* = ptr XIKeyClassInfoXIKeyClassInfo* {.final.} = object`type`*: cintsourceid*: cintnum_keycodes*: cintkeycodes*: ptr cintPXIValuatorClassInfo* = ptr XIValuatorClassInfoXIValuatorClassInfo* {.final.} = object`type`*: cintsourceid*: cintnumber*: cintlabel*: Atommin*: cdoublemax*: cdoublevalue*: cdoubleresolution*: cintmode*: cint## new in XI 2.1typePXIScrollClassInfo* = ptr XIScrollClassInfoXIScrollClassInfo* {.final.} = object`type`*: cintsourceid*: cintnumber*: cintscroll_type*: cintincrement*: cdoubleflags*: cintPXITouchClassInfo* = ptr XITouchClassInfoXITouchClassInfo* {.final.} = object`type`*: cintsourceid*: cintmode*: cintnum_touches*: cintPXIDeviceInfo* = ptr XIDeviceInfoXIDeviceInfo* {.final.} = objectdeviceid*: cintname*: cstringuse*: cintattachment*: cintenabled*: XBoolnum_classes*: cintclasses*: ptr ptr XIAnyClassInfoPXIGrabModifiers* = ptr XIGrabModifiersXIGrabModifiers* {.final.} = objectmodifiers*: cintstatus*: cintBarrierEventID* = cuint# ------------------------------------------------------------PXIBarrierReleasePointerInfo* = ptr XIBarrierReleasePointerInfoXIBarrierReleasePointerInfo* {.final.} = objectdeviceid*: cintbarrier*: PointerBarriereventid*: BarrierEventID#### Generic XI2 event. All XI2 events have the same header.##typePXIEvent* = ptr XIEventXIEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cinttime*: TimePXIHierarchyInfo* = ptr XIHierarchyInfoXIHierarchyInfo* {.final.} = objectdeviceid*: cintattachment*: cintuse*: cintenabled*: XBoolflags*: cint#### Notifies the client that the device hierarchy has been changed. The client## is expected to re-query the server for the device hierarchy.##typePXIHierarchyEvent* = ptr XIHierarchyEventXIHierarchyEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cint ## XI_HierarchyChangedtime*: Timeflags*: cintnum_info*: cintinfo*: ptr XIHierarchyInfo#### Notifies the client that the classes have been changed. This happens when## the slave device that sends through the master changes.##typePXIDeviceChangedEvent* = ptr XIDeviceChangedEventXIDeviceChangedEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cint ## XI_DeviceChangedtime*: Timedeviceid*: cint ## id of the device that changedsourceid*: cint ## Source for the new classes.reason*: cint ## Reason for the changenum_classes*: cintclasses*: ptr ptr XIAnyClassInfo ## same as in XIDeviceInfoPXIDeviceEvent* = ptr XIDeviceEventXIDeviceEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cinttime*: Timedeviceid*: cintsourceid*: cintdetail*: cintroot*: Windowevent*: Windowchild*: Windowroot_x*: cdoubleroot_y*: cdoubleevent_x*: cdoubleevent_y*: cdoubleflags*: cintbuttons*: XIButtonStatevaluators*: XIValuatorStatemods*: XIModifierStategroup*: XIGroupStatePXIRawEvent* = ptr XIRawEventXIRawEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cint ## XI_RawKeyPress, XI_RawKeyRelease, etc.time*: Timedeviceid*: cintsourceid*: cint ## Bug: Always 0. https://bugs.freedesktop.org//show_bug.cgi?id=34240detail*: cintflags*: cintvaluators*: XIValuatorStateraw_values*: ptr cdoublePXIEnterEvent* = ptr XIEnterEventXIEnterEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cinttime*: Timedeviceid*: cintsourceid*: cintdetail*: cintroot*: Windowevent*: Windowchild*: Windowroot_x*: cdoubleroot_y*: cdoubleevent_x*: cdoubleevent_y*: cdoublemode*: cintfocus*: XBoolsame_screen*: XBoolbuttons*: XIButtonStatemods*: XIModifierStategroup*: XIGroupStatePXILeaveEvent* = PXIEnterEventPXIFocusInEvent* = PXIEnterEventPXIFocusOutEvent* = PXIEnterEvent# ----------------------------------XILeaveEvent* = XIEnterEventXIFocusInEvent* = XIEnterEventXIFocusOutEvent* = XIEnterEventPXIPropertyEvent* = ptr XIPropertyEventXIPropertyEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cint ## XI_PropertyEventtime*: Timedeviceid*: cint ## id of the device that changedproperty*: Atomwhat*: cintPXITouchOwnershipEvent* = ptr XITouchOwnershipEventXITouchOwnershipEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cinttime*: Timedeviceid*: cintsourceid*: cinttouchid*: cuintroot*: Windowevent*: Windowchild*: Windowflags*: cintPXIBarrierEvent* = ptr XIBarrierEventXIBarrierEvent* {.final.} = object`type`*: cint ## GenericEventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromextension*: cint ## XI extension offsetevtype*: cinttime*: Timedeviceid*: cintsourceid*: cintevent*: Windowroot*: Windowroot_x*: cdoubleroot_y*: cdoubledx*: cdoubledy*: cdoubledtime*: cintflags*: cintbarrier*: PointerBarriereventid*: BarrierEventID#### XI2 Procs, uses same shared object as XI##{.push cdecl, importc, dynlib: libXi.}proc XIQueryPointer*(display: PDisplay; deviceid: cint; win: Window;root: PWindow; child: PWindow; root_x: ptr cdouble;root_y: ptr cdouble; win_x: ptr cdouble; win_y: ptr cdouble;buttons: PXIButtonState; mods: PXIModifierState;group: PXIGroupState): XBoolproc XIWarpPointer*(display: PDisplay; deviceid: cint; src_win: Window;dst_win: Window; src_x: cdouble; src_y: cdouble; src_width: cuint;src_height: cuint; dst_x: cdouble; dst_y: cdouble): XBoolproc XIDefineCursor*(display: PDisplay; deviceid: cint; win: Window; cursor: Cursor): Statusproc XIUndefineCursor*(display: PDisplay; deviceid: cint; win: Window): Statusproc XIChangeHierarchy*(display: PDisplay; changes: PXIAnyHierarchyChangeInfo;num_changes: cint): Statusproc XISetClientPointer*(dpy: PDisplay; win: Window; deviceid: cint): Statusproc XIGetClientPointer*(dpy: PDisplay; win: Window; deviceid: ptr cint): XBoolproc XISelectEvents*(dpy: PDisplay; win: Window; masks: PXIEventMask;num_masks: cint): cintproc XIGetSelectedEvents*(dpy: PDisplay; win: Window; num_masks_return: ptr cint): PXIEventMaskproc XIQueryVersion*(dpy: PDisplay; major_version_inout: ptr cint;minor_version_inout: ptr cint): Statusproc XIQueryDevice*(dpy: PDisplay; deviceid: cint; ndevices_return: ptr cint): PXIDeviceInfoproc XISetFocus*(dpy: PDisplay; deviceid: cint; focus: Window; time: Time): Statusproc XIGetFocus*(dpy: PDisplay; deviceid: cint; focus_return: PWindow): Statusproc XIGrabDevice*(dpy: PDisplay; deviceid: cint; grab_window: Window; time: Time;cursor: Cursor; grab_mode: cint; paired_device_mode: cint;owner_events: XBool; mask: PXIEventMask): Statusproc XIUngrabDevice*(dpy: PDisplay; deviceid: cint; time: Time): Statusproc XIAllowEvents*(display: PDisplay; deviceid: cint; event_mode: cint; time: Time): Statusproc XIAllowTouchEvents*(display: PDisplay; deviceid: cint; touchid: cuint;grab_window: Window; event_mode: cint): Statusproc XIGrabButton*(display: PDisplay; deviceid: cint; button: cint;grab_window: Window; cursor: Cursor; grab_mode: cint;paired_device_mode: cint; owner_events: cint;mask: PXIEventMask; num_modifiers: cint;modifiers_inout: PXIGrabModifiers): cintproc XIGrabKeycode*(display: PDisplay; deviceid: cint; keycode: cint;grab_window: Window; grab_mode: cint; paired_device_mode: cint;owner_events: cint; mask: PXIEventMask; num_modifiers: cint;modifiers_inout: PXIGrabModifiers): cintproc XIGrabEnter*(display: PDisplay; deviceid: cint; grab_window: Window;cursor: Cursor; grab_mode: cint; paired_device_mode: cint;owner_events: cint; mask: PXIEventMask; num_modifiers: cint;modifiers_inout: PXIGrabModifiers): cintproc XIGrabFocusIn*(display: PDisplay; deviceid: cint; grab_window: Window;grab_mode: cint; paired_device_mode: cint; owner_events: cint;mask: PXIEventMask; num_modifiers: cint;modifiers_inout: PXIGrabModifiers): cintproc XIGrabTouchBegin*(display: PDisplay; deviceid: cint; grab_window: Window;owner_events: cint; mask: PXIEventMask; num_modifiers: cint;modifiers_inout: PXIGrabModifiers): cintproc XIUngrabButton*(display: PDisplay; deviceid: cint; button: cint;grab_window: Window; num_modifiers: cint;modifiers: PXIGrabModifiers): Statusproc XIUngrabKeycode*(display: PDisplay; deviceid: cint; keycode: cint;grab_window: Window; num_modifiers: cint;modifiers: PXIGrabModifiers): Statusproc XIUngrabEnter*(display: PDisplay; deviceid: cint; grab_window: Window;num_modifiers: cint; modifiers: PXIGrabModifiers): Statusproc XIUngrabFocusIn*(display: PDisplay; deviceid: cint; grab_window: Window;num_modifiers: cint; modifiers: PXIGrabModifiers): Statusproc XIUngrabTouchBegin*(display: PDisplay; deviceid: cint; grab_window: Window;num_modifiers: cint; modifiers: PXIGrabModifiers): Statusproc XIListProperties*(display: PDisplay; deviceid: cint;num_props_return: ptr cint): PAtomproc XIChangeProperty*(display: PDisplay; deviceid: cint; property: Atom;`type`: Atom; format: cint; mode: cint; data: ptr char;num_items: cint)proc XIDeleteProperty*(display: PDisplay; deviceid: cint; property: Atom)proc XIGetProperty*(display: PDisplay; deviceid: cint; property: Atom; offset: clong;length: clong; delete_property: XBool; `type`: Atom;type_return: PAtom; format_return: ptr cint;num_items_return: ptr culong; bytes_after_return: ptr culong;data: ptr ptr char): Statusproc XIBarrierReleasePointers*(display: PDisplay;barriers: PXIBarrierReleasePointerInfo;num_barriers: cint)proc XIBarrierReleasePointer*(display: PDisplay; deviceid: cint;barrier: PointerBarrier; eventid: BarrierEventID)proc XIFreeDeviceInfo*(info: PXIDeviceInfo){.pop.}
import x, xlib, xiconst xNeedWidePrototypes {.booldefine.} = defined(posix)constdeviceKeyPress* = 0deviceKeyRelease* = 1deviceButtonPress* = 0deviceButtonRelease* = 1deviceMotionNotify* = 0deviceFocusIn* = 0deviceFocusOut* = 1proximityIn* = 0proximityOut* = 1deviceStateNotify* = 0deviceMappingNotify* = 1changeDeviceNotify* = 2propertyNotify* = 6template FindTypeAndClass*(d, `type`, class, classid, offset: untyped) =var i: cintvar ip: PXInputClassInfo`type` = 0class = 0i = 0ip = (cast[PXDevice](d)).classeswhile i < (cast[PXDevice](d)).num_classes:if ip.input_class == classid:`type` = ip.event_type_base + offsetclass = (cast[PXDevice](d)).device_id shl 8 or `type`inc(i)inc(ip)template DeviceKeyPress*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, KeyClass, deviceKeyPress)template DeviceKeyRelease*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, KeyClass, deviceKeyRelease)template DeviceButtonPress*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, ButtonClass, deviceButtonPress)template DeviceButtonRelease*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, ButtonClass, deviceButtonRelease)template DeviceMotionNotify*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, ValuatorClass, deviceMotionNotify)template DeviceFocusIn*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, FocusClass, deviceFocusIn)template DeviceFocusOut*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, FocusClass, deviceFocusOut)template ProximityIn*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, ProximityClass, proximityIn)template ProximityOut*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, ProximityClass, proximityOut)template DeviceStateNotify*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, OtherClass, deviceStateNotify)template DeviceMappingNotify*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, OtherClass, deviceMappingNotify)template ChangeDeviceNotify*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, OtherClass, changeDeviceNotify)template DevicePropertyNotify*(d, `type`, class: untyped): untyped =FindTypeAndClass(d, `type`, class, OtherClass, propertyNotify)template DevicePointerMotionHint*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or devicePointerMotionHinttemplate DeviceButton1Motion*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButton1Motiontemplate DeviceButton2Motion*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButton2Motiontemplate DeviceButton3Motion*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButton3Motiontemplate DeviceButton4Motion*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButton4Motiontemplate DeviceButton5Motion*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButton5Motiontemplate DeviceButtonMotion*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButtonMotiontemplate DeviceOwnerGrabButton*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceOwnerGrabButtontemplate DeviceButtonPressGrab*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or deviceButtonGrabtemplate NoExtensionEvent*(d, `type`, class: untyped) =class = (cast[PXDevice](d)).device_id shl 8 or noExtensionEventtemplate DevicePresence*(dpy, `type`, class: untyped) =`type` = XiGetDevicePresenceNotifyEvent(dpy)class = (0x00010000 or devicePresence)## Errorstemplate BadDevice*(dpy, error: untyped): untyped =xibaddevice(dpy, addr(error))template BadClass*(dpy, error: untyped): untyped =xibadclass(dpy, addr(error))template BadEvent*(dpy, error: untyped): untyped =xibadevent(dpy, addr(error))template BadMode*(dpy, error: untyped): untyped =xibadmode(dpy, addr(error))template DeviceBusy*(dpy, error: untyped): untyped =xidevicebusy(dpy, addr(error))typePXDeviceKeyEvent* = ptr XDeviceKeyEventXDeviceKeyEvent* {.final.} = object## DeviceKey events. These events are sent by input devices that## support input class Keys.## The location of the X pointer is reported in the coordinate## fields of the x,y and x_root,y_root fields.`type`*: cint ## of eventserial*: culong ## # of last request processedsend_event*: XBool ## true if from SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## "event" window reported relative todeviceid*: XIDroot*: Window ## root window event occured onsubwindow*: Window ## child windowtime*: Time ## millisecondsx*: cinty*: cint ## x, y coordinates in event windowx_root*: cint ## coordinates relative to rooty_root*: cint ## coordinates relative to rootstate*: cuint ## key or button maskkeycode*: cuint ## detailsame_screen*: XBool ## same screen flagdevice_state*: cuint ## device key or button maskaxes_count*: charfirst_axis*: charaxis_data*: array[6, cint]PXDeviceKeyPressedEvent* = PXDeviceKeyEventXDeviceKeyPressedEvent* = XDeviceKeyEventPXDeviceKeyReleasedEvent* = PXDeviceKeyEventXDeviceKeyReleasedEvent* = XDeviceKeyEventPXDeviceButtonEvent* = ptr XDeviceButtonEventXDeviceButtonEvent* {.final.} = object## DeviceButton events. These events are sent by extension devices## that support input class Buttons.`type`*: cint ## of eventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## "event" window reported relative todeviceid*: XIDroot*: Window ## root window that the event occured onsubwindow*: Window ## child windowtime*: Time ## millisecondsx*: cinty*: cint ## x, y coordinates in event windowx_root*: cint ## coordinates relative to rooty_root*: cint ## coordinates relative to rootstate*: cuint ## key or button maskbutton*: cuint ## detailsame_screen*: XBool ## same screen flagdevice_state*: cuint ## device key or button maskaxes_count*: charfirst_axis*: charaxis_data*: array[6, cint]PXDeviceButtonPressedEvent* = PXDeviceButtonEventXDeviceButtonPressedEvent* = XDeviceButtonEventPXDeviceButtonReleasedEvent* = PXDeviceButtonEventXDeviceButtonReleasedEvent* = XDeviceButtonEventPXDeviceMotionEvent* = ptr XDeviceMotionEventXDeviceMotionEvent* {.final.} = object## DeviceMotionNotify event. These events are sent by extension devices## that support input class Valuators.`type`*: cint ## of eventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## "event" window reported relative todeviceid*: XIDroot*: Window ## root window that the event occured onsubwindow*: Window ## child windowtime*: Time ## millisecondsx*: cinty*: cint ## x, y coordinates in event windowx_root*: cint ## coordinates relative to rooty_root*: cint ## coordinates relative to rootstate*: cuint ## key or button maskis_hint*: char ## detailsame_screen*: XBool ## same screen flagdevice_state*: cuint ## device key or button maskaxes_count*: charfirst_axis*: charaxis_data*: array[6, cint]PXDeviceFocusChangeEvent* = ptr XDeviceFocusChangeEventXDeviceFocusChangeEvent* {.final.} = object## DeviceFocusChange events. These events are sent when the focus## of an extension device that can be focused is changed.`type`*: cint ## of eventserial*: culong ## # of last request processed by serversend_event*: XBool ## true if from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## "event" window reported relative todeviceid*: XIDmode*: cint ## NotifyNormal, NotifyGrab, NotifyUngrabdetail*: cint #### NotifyAncestor, NotifyVirtual, NotifyInferior,## NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer,## NotifyPointerRoot, NotifyDetailNone##time*: TimePXDeviceFocusInEvent* = PXDeviceFocusChangeEventXDeviceFocusInEvent* = XDeviceFocusChangeEventPXDeviceFocusOutEvent* = PXDeviceFocusChangeEventXDeviceFocusOutEvent* = XDeviceFocusChangeEventPXProximityNotifyEvent* = ptr XProximityNotifyEventXProximityNotifyEvent* {.final.} = object## ProximityNotify events. These events are sent by those absolute## positioning devices that are capable of generating proximity information.`type`*: cint ## ProximityIn or ProximityOutserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Windowdeviceid*: XIDroot*: Windowsubwindow*: Windowtime*: Timex*: cinty*: cintx_root*: cinty_root*: cintstate*: cuintsame_screen*: XBooldevice_state*: cuint ## device key or button maskaxes_count*: charfirst_axis*: charaxis_data*: array[6, cint]PXProximityInEvent* = PXProximityNotifyEventXProximityInEvent* = XProximityNotifyEventPXProximityOutEvent* = PXProximityNotifyEventXProximityOutEvent* = XProximityNotifyEventPXInputClass* = ptr XInputClassXInputClass* {.final.} = objectclass*: charlength*: charPXDeviceStateNotifyEvent* = ptr XDeviceStateNotifyEventXDeviceStateNotifyEvent* {.final.} = object## DeviceStateNotify events are generated on EnterWindow and FocusIn## for those clients who have selected DeviceState.`type`*: cintserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Windowdeviceid*: XIDtime*: Timenum_classes*: cintdata*: array[64, char]PXValuatorStatus* = ptr XValuatorStatusXValuatorStatus* {.final.} = objectclass*: charlength*: charnum_valuators*: charmode*: charvaluators*: array[6, cint]PXKeyStatus* = ptr XKeyStatusXKeyStatus* {.final.} = objectclass*: charlength*: charnum_keys*: cshortkeys*: array[32, char]PXButtonStatus* = ptr XButtonStatusXButtonStatus* {.final.} = objectclass*: charlength*: charnum_buttons*: cshortbuttons*: array[32, char]PXDeviceMappingEvent* = ptr XDeviceMappingEventXDeviceMappingEvent* {.final.} = object## DeviceMappingNotify event. This event is sent when the key mapping,## modifier mapping, or button mapping of an extension device is changed.`type`*: cintserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## unuseddeviceid*: XIDtime*: Timerequest*: cint ## one of MappingModifier, MappingKeyboard,## MappingPointerfirst_keycode*: cint ## first keycodecount*: cint ## defines range of change w. first_keycodePXChangeDeviceNotifyEvent* = ptr XChangeDeviceNotifyEventXChangeDeviceNotifyEvent* {.final.} = object## ChangeDeviceNotify event. This event is sent when an## XChangeKeyboard or XChangePointer request is made.`type`*: cintserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## unuseddeviceid*: XIDtime*: Timerequest*: cint ## NewPointer or NewKeyboardPXDevicePresenceNotifyEvent* = ptr XDevicePresenceNotifyEventXDevicePresenceNotifyEvent* {.final.} = object## DevicePresenceNotify event. This event is sent when the list of## input devices changes, in which case devchange will be false, and## no information about the change will be contained in the event;## the client should use XListInputDevices() to learn what has changed.#### If devchange is true, an attribute that the server believes is## important has changed on a device, and the client should use## XGetDeviceControl to examine the device. If control is non-zero,## then that control has changed meaningfully.`type`*: cintserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## unusedtime*: Timedevchange*: XBooldeviceid*: XIDcontrol*: XIDPXDevicePropertyNotifyEvent* = ptr XDevicePropertyNotifyEventXDevicePropertyNotifyEvent* {.final.} = object`type`*: cintserial*: culong ## # of last request processed by serversend_event*: XBool ## true if this came from a SendEvent requestdisplay*: PDisplay ## Display the event was read fromwindow*: Window ## unusedtime*: Timedeviceid*: XID ## id of the device that changedatom*: Atom ## the property that changedstate*: cint ## PropertyNewValue or PropertyDeletedPXFeedbackState* = ptr XFeedbackStateXFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDPXKbdFeedbackState* = ptr XKbdFeedbackStateXKbdFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDclick*: cintpercent*: cintpitch*: cintduration*: cintled_mask*: cintglobal_auto_repeat*: cintauto_repeats*: array[32, char]PXPtrFeedbackState* = ptr XPtrFeedbackStateXPtrFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDaccelNum*: cintaccelDenom*: cintthreshold*: cintPXIntegerFeedbackState* = ptr XIntegerFeedbackStateXIntegerFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDresolution*: cintminVal*: cintmaxVal*: cintPXStringFeedbackState* = ptr XStringFeedbackStateXStringFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDmax_symbols*: cintnum_syms_supported*: cintsyms_supported*: PKeySymPXBellFeedbackState* = ptr XBellFeedbackStateXBellFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDpercent*: cintpitch*: cintduration*: cintPXLedFeedbackState* = ptr XLedFeedbackStateXLedFeedbackState* {.final.} = objectclass*: XIDlength*: cintid*: XIDled_values*: cintled_mask*: cintPXFeedbackControl* = ptr XFeedbackControlXFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDPXPtrFeedbackControl* = ptr XPtrFeedbackControlXPtrFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDaccelNum*: cintaccelDenom*: cintthreshold*: cintPXKbdFeedbackControl* = ptr XKbdFeedbackControlXKbdFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDclick*: cintpercent*: cintpitch*: cintduration*: cintled_mask*: cintled_value*: cintkey*: cintauto_repeat_mode*: cintPXStringFeedbackControl* = ptr XStringFeedbackControlXStringFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDnum_keysyms*: cintsyms_to_display*: PKeySymPXIntegerFeedbackControl* = ptr XIntegerFeedbackControlXIntegerFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDint_to_display*: cintPXBellFeedbackControl* = ptr XBellFeedbackControlXBellFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDpercent*: cintpitch*: cintduration*: cintPXLedFeedbackControl* = ptr XLedFeedbackControlXLedFeedbackControl* {.final.} = objectclass*: XIDlength*: cintid*: XIDled_mask*: cintled_values*: cintPXDeviceControl* = ptr XDeviceControlXDeviceControl* {.final.} = objectcontrol*: XIDlength*: cintPXDeviceResolutionControl* = ptr XDeviceResolutionControlXDeviceResolutionControl* {.final.} = objectcontrol*: XIDlength*: cintfirst_valuator*: cintnum_valuators*: cintresolutions*: ptr cintPXDeviceResolutionState* = ptr XDeviceResolutionStateXDeviceResolutionState* {.final.} = objectcontrol*: XIDlength*: cintnum_valuators*: cintresolutions*: ptr cintmin_resolutions*: ptr cintmax_resolutions*: ptr cintPXDeviceAbsCalibControl* = ptr XDeviceAbsCalibControlXDeviceAbsCalibControl* {.final.} = objectcontrol*: XIDlength*: cintmin_x*: cintmax_x*: cintmin_y*: cintmax_y*: cintflip_x*: cintflip_y*: cintrotation*: cintbutton_threshold*: cintPXDeviceAbsCalibState* = PXDeviceAbsCalibControlXDeviceAbsCalibState* = XDeviceAbsCalibControlPXDeviceAbsAreaControl* = ptr XDeviceAbsAreaControlXDeviceAbsAreaControl* {.final.} = objectcontrol*: XIDlength*: cintoffset_x*: cintoffset_y*: cintwidth*: cintheight*: cintscreen*: cintfollowing*: XIDPXDeviceAbsAreaState* = PXDeviceAbsAreaControlXDeviceAbsAreaState* = XDeviceAbsAreaControlPXDeviceCoreControl* = ptr XDeviceCoreControlXDeviceCoreControl* {.final.} = objectcontrol*: XIDlength*: cintstatus*: cintPXDeviceCoreState* = ptr XDeviceCoreStateXDeviceCoreState* {.final.} = objectcontrol*: XIDlength*: cintstatus*: cintiscore*: cintPXDeviceEnableControl* = ptr XDeviceEnableControlXDeviceEnableControl* {.final.} = objectcontrol*: XIDlength*: cintenable*: cintPXDeviceEnableState* = PXDeviceEnableControlXDeviceEnableState* = XDeviceEnableControlPXAnyClassInfo* = ptr XAnyClassInfoXAnyClassInfo* {.final.} = objectclass*: XIDlength*: cintPXDeviceInfo* = ptr XDeviceInfoXDeviceInfo* {.final.} = objectid*: XID`type`*: Atomname*: cstringnum_classes*: cintuse*: cintinputclassinfo*: PXAnyClassInfoPXKeyInfo* = ptr XKeyInfoXKeyInfo* {.final.} = objectclass*: XIDlength*: cintmin_keycode*: cushortmax_keycode*: cushortnum_keys*: cushortPXButtonInfo* = ptr XButtonInfoXButtonInfo* {.final.} = objectclass*: XIDlength*: cintnum_buttons*: cshortPXAxisInfo* = ptr XAxisInfoXAxisInfo* {.final.} = objectresolution*: cintmin_value*: cintmax_value*: cintPXValuatorInfo* = ptr XValuatorInfoXValuatorInfo* {.final.} = objectclass*: XIDlength*: cintnum_axes*: charmode*: charmotion_buffer*: culongaxes*: PXAxisInfoPXInputClassInfo* = ptr XInputClassInfoXInputClassInfo* {.final.} = objectinput_class*: charevent_type_base*: charPXDevice* = ptr XDeviceXDevice* {.final.} = objectdevice_id*: XIDnum_classes*: cintclasses*: PXInputClassInfoPXEventList* = ptr XEventListXEventList* {.final.} = objectevent_type*: XEventClassdevice*: XIDPXDeviceTimeCoord* = ptr XDeviceTimeCoordXDeviceTimeCoord* {.final.} = objecttime*: Timedata*: ptr cintPXDeviceState* = ptr XDeviceStateXDeviceState* {.final.} = objectdevice_id*: XIDnum_classes*: cintdata*: PXInputClassPXValuatorState* = ptr XValuatorStateXValuatorState* {.final.} = objectclass*: charlength*: charnum_valuators*: charmode*: charvaluators*: ptr cintPXKeyState* = ptr XKeyStateXKeyState* {.final.} = objectclass*: charlength*: charnum_keys*: cshortkeys*: array[32, char]PXButtonState* = ptr XButtonStateXButtonState* {.final.} = objectclass*: charlength*: charnum_buttons*: cshortbuttons*: array[32, char]{.deprecated: [TXDeviceKeyEvent: XDeviceKeyEvent].}{.deprecated: [TXDeviceKeyPressedEvent: XDeviceKeyPressedEvent].}{.deprecated: [TXDeviceKeyReleasedEvent: XDeviceKeyReleasedEvent].}{.deprecated: [TXDeviceButtonEvent: XDeviceButtonEvent].}{.deprecated: [TXDeviceButtonPressedEvent: XDeviceButtonPressedEvent].}{.deprecated: [TXDeviceButtonReleasedEvent: XDeviceButtonReleasedEvent].}{.deprecated: [TXDeviceMotionEvent: XDeviceMotionEvent].}{.deprecated: [TXDeviceFocusChangeEvent: XDeviceFocusChangeEvent].}{.deprecated: [TXDeviceFocusInEvent: XDeviceFocusInEvent].}{.deprecated: [TXDeviceFocusOutEvent: XDeviceFocusOutEvent].}{.deprecated: [TXProximityNotifyEvent: XProximityNotifyEvent].}{.deprecated: [TXProximityInEvent: XProximityInEvent].}{.deprecated: [TXProximityOutEvent: XProximityOutEvent].}{.deprecated: [TXInputClass: XInputClass].}{.deprecated: [TXDeviceStateNotifyEvent: XDeviceStateNotifyEvent].}{.deprecated: [TXValuatorStatus: XValuatorStatus].}{.deprecated: [TXKeyStatus: XKeyStatus].}{.deprecated: [TXButtonStatus: XButtonStatus].}{.deprecated: [TXDeviceMappingEvent: XDeviceMappingEvent].}{.deprecated: [TXChangeDeviceNotifyEvent: XChangeDeviceNotifyEvent].}{.deprecated: [TXDevicePresenceNotifyEvent: XDevicePresenceNotifyEvent].}{.deprecated: [TXDevicePropertyNotifyEvent: XDevicePropertyNotifyEvent].}{.deprecated: [TXFeedbackState: XFeedbackState].}{.deprecated: [TXKbdFeedbackState: XKbdFeedbackState].}{.deprecated: [TXPtrFeedbackState: XPtrFeedbackState].}{.deprecated: [TXIntegerFeedbackState: XIntegerFeedbackState].}{.deprecated: [TXStringFeedbackState: XStringFeedbackState].}{.deprecated: [TXBellFeedbackState: XBellFeedbackState].}{.deprecated: [TXLedFeedbackState: XLedFeedbackState].}{.deprecated: [TXFeedbackControl: XFeedbackControl].}{.deprecated: [TXPtrFeedbackControl: XPtrFeedbackControl].}{.deprecated: [TXKbdFeedbackControl: XKbdFeedbackControl].}{.deprecated: [TXStringFeedbackControl: XStringFeedbackControl].}{.deprecated: [TXIntegerFeedbackControl: XIntegerFeedbackControl].}{.deprecated: [TXBellFeedbackControl: XBellFeedbackControl].}{.deprecated: [TXLedFeedbackControl: XLedFeedbackControl].}{.deprecated: [TXDeviceControl: XDeviceControl].}{.deprecated: [TXDeviceResolutionControl: XDeviceResolutionControl].}{.deprecated: [TXDeviceResolutionState: XDeviceResolutionState].}{.deprecated: [TXDeviceAbsCalibControl: XDeviceAbsCalibControl].}{.deprecated: [TXDeviceAbsCalibState: XDeviceAbsCalibState].}{.deprecated: [TXDeviceAbsAreaControl: XDeviceAbsAreaControl].}{.deprecated: [TXDeviceAbsAreaState: XDeviceAbsAreaState].}{.deprecated: [TXDeviceCoreControl: XDeviceCoreControl].}{.deprecated: [TXDeviceCoreState: XDeviceCoreState].}{.deprecated: [TXDeviceEnableControl: XDeviceEnableControl].}{.deprecated: [TXDeviceEnableState: XDeviceEnableState].}{.deprecated: [TXAnyClassInfo: XAnyClassInfo].}{.deprecated: [TXDeviceInfo: XDeviceInfo].}{.deprecated: [TXKeyInfo: XKeyInfo].}{.deprecated: [TXButtonInfo: XButtonInfo].}{.deprecated: [TXAxisInfo: XAxisInfo].}{.deprecated: [TXValuatorInfo: XValuatorInfo].}{.deprecated: [TXInputClassInfo: XInputClassInfo].}{.deprecated: [TXDevice: XDevice].}{.deprecated: [TXEventList: XEventList].}{.deprecated: [TXDeviceTimeCoord: XDeviceTimeCoord].}{.deprecated: [TXDeviceState: XDeviceState].}{.deprecated: [TXValuatorState: XValuatorState].}{.deprecated: [TXKeyState: XKeyState].}{.deprecated: [TXButtonState: XButtonState].}{.push cdecl, importc, dynlib: libXi.}proc XChangeKeyboardDevice*(a1: PDisplay, a2: PXDevice): cintproc XChangePointerDevice*(a1: PDisplay, a2: PXDevice, a3, a4: cint): cintproc XGrabDevice*(a1: PDisplay, a2: PXDevice, a3: Window, a4: XBool, a5: cint,a6: ptr UncheckedArray[XEventClass], a7, a8: cint, a9: Time): cintproc XUngrabDevice*(a1: PDisplay, a2: PXDevice, a3: Time): cintproc XGrabDeviceKey*(a1: PDisplay, a2: PXDevice, a3, a4: cuint,a5: PXDevice, a6: Window, a7: XBool, a8: cuint,a9: ptr UncheckedArray[XEventClass], a10, a11: cint): cintproc XUngrabDeviceKey*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint,a5: PXDevice, a6: Window): cintproc XGrabDeviceButton*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint,a5: PXDevice, a6: Window, a7: XBool, a8: cuint,a9: ptr UncheckedArray[XEventClass], a10: cint, a11: cint): cintproc XUngrabDeviceButton*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint,a5: PXDevice, a6: Window): cintproc XAllowDeviceEvents*(a1: PDisplay, a2: PXDevice, a3: cint, a4: Time): cintproc XGetDeviceFocus*(a1: PDisplay, a2: PXDevice, a3: PWindow, a4: ptr cint,a5: ptr Time): cintproc XSetDeviceFocus*(a1: PDisplay, a2: PXDevice, a3: Window, a4: cint, a5: Time): cintproc XGetFeedbackControl*(a1: PDisplay, a2: PXDevice, a3: ptr cint): PXFeedbackStateproc XFreeFeedbackList*(a1: PXFeedbackState)proc XChangeFeedbackControl*(a1: PDisplay, a2: PXDevice, a3: culong,a4: PXFeedbackControl): cintproc XDeviceBell*(a1: PDisplay, a2: PXDevice, a3, a4: XID, a5: cint): cintproc XGetDeviceKeyMapping*(a1: PDisplay, a2: PXDevice,a3: (when xNeedWidePrototypes: cuint else: KeyCode),a4: cint, a5: ptr cint): PKeySymproc XChangeDeviceKeyMapping*(a1: PDisplay, a2: PXDevice, a3: cint, a4: cint,a5: PKeySym, a6: cint): cintproc XGetDeviceModifierMapping*(a1: PDisplay, a2: PXDevice): PXModifierKeymapproc XSetDeviceModifierMapping*(a1: PDisplay, a2: PXDevice,a3: PXModifierKeymap): cintproc XSetDeviceButtonMapping*(a1: PDisplay, a2: PXDevice, a3: cstring, a4: cint): cintproc XGetDeviceButtonMapping*(a1: PDisplay, a2: PXDevice, a3: cstring, a4: cuint): cintproc XQueryDeviceState*(a1: PDisplay, a2: PXDevice): PXDeviceStateproc XFreeDeviceState*(a1: PXDeviceState)proc XGetExtensionVersion*(a1: PDisplay, a2: cstring): PXExtensionVersionproc XListInputDevices*(a1: PDisplay, a2: ptr cint): PXDeviceInfoproc XFreeDeviceList*(a1: PXDeviceInfo)proc XOpenDevice*(a1: PDisplay, a2: XID): PXDeviceproc XCloseDevice*(a1: PDisplay, a2: PXDevice): cintproc XSetDeviceMode*(a1: PDisplay, a2: PXDevice, a3: cint): cintproc XSetDeviceValuators*(a1: PDisplay, a2: PXDevice, a3: ptr cint, a4: cint, a5: cint): cintproc XGetDeviceControl*(a1: PDisplay, a2: PXDevice, a3: cint): PXDeviceControlproc XChangeDeviceControl*(a1: PDisplay, a2: PXDevice, a3: cint,a4: PXDeviceControl): cintproc XSelectExtensionEvent*(a1: PDisplay, a2: Window, a3: ptr UncheckedArray[XEventClass], a4: cint): cintproc XGetSelectedExtensionEvents*(a1: PDisplay, a2: Window, a3: ptr cint,a4: ptr ptr UncheckedArray[XEventClass], a5: ptr cint,a6: ptr ptr UncheckedArray[XEventClass]): cintproc XChangeDeviceDontPropagateList*(a1: PDisplay, a2: Window, a3: cint,a4: ptr UncheckedArray[XEventClass], a5: cint): cintproc XGetDeviceDontPropagateList*(a1: PDisplay, a2: Window, a3: ptr cint): ptr UncheckedArray[XEventClass]proc XSendExtensionEvent*(a1: PDisplay, a2: PXDevice, a3: Window, a4: XBool, a5: cint,a6: ptr UncheckedArray[XEventClass], a7: PXEvent): Statusproc XGetDeviceMotionEvents*(a1: PDisplay, a2: PXDevice, a3, a4: Time,a5, a6, a7: ptr cint): PXDeviceTimeCoordproc XFreeDeviceMotionEvents*(a1: PXDeviceTimeCoord)proc XFreeDeviceControl*(a1: PXDeviceControl)proc XListDeviceProperties*(a1: PDisplay, a2: PXDevice, a3: ptr cint): PAtomproc XChangeDeviceProperty*(a1: PDisplay, a2: PXDevice, a3: Atom, a4: Atom, a5: cint,a6: cint, a7: cstring, a8: cint)proc XDeleteDeviceProperty*(a1: PDisplay, a2: PXDevice, a3: Atom)proc XGetDeviceProperty*(a1: PDisplay, a2: PXDevice, a3: Atom, a4, a5: clong,a6: XBool, a7: Atom, a8: PAtom, a9: ptr cint, a10: ptr culong,a11: ptr culong, a12: ptr cstring): Status{.pop.}
# Converted from X11/Xinerama.himportxlibconstxineramaLib = "libXinerama.so"typePXineramaScreenInfo* = ptr XineramaScreenInfoXineramaScreenInfo*{.final.} = objectscreen_number*: cintx_org*: int16y_org*: int16width*: int16height*: int16{.deprecated: [TXineramaScreenInfo: XineramaScreenInfo].}proc XineramaQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): XBool{.cdecl, dynlib: xineramaLib, importc.}proc XineramaQueryVersion*(dpy: PDisplay, major: Pcint, minor: Pcint): Status{.cdecl, dynlib: xineramaLib, importc.}proc XineramaIsActive*(dpy: PDisplay): XBool{.cdecl, dynlib: xineramaLib, importc.}proc XineramaQueryScreens*(dpy: PDisplay, number: Pcint): PXineramaScreenInfo{.cdecl, dynlib: xineramaLib, importc.}
# *************************************# Generated from <X11/extensions/XI2.h># *************************************from xi import libXiexport libXiconstXInput_2_0* = 7## DO NOT ADD TO THIS LIST. These are libXi-specific defines.## See commit libXi-1.4.2-21-ge8531ddconstXI_2_Major* = 2XI_2_Minor* = 3## Property event flagsconstXIPropertyDeleted* = 0XIPropertyCreated* = 1XIPropertyModified* = 2## Property modesconstXIPropModeReplace* = 0XIPropModePrepend* = 1XIPropModeAppend* = 2## Special property type used for XIGetPropertyconstXIAnyPropertyType* = 0## Enter/Leave and Focus In/Out modesconstXINotifyNormal* = 0XINotifyGrab* = 1XINotifyUngrab* = 2XINotifyWhileGrabbed* = 3XINotifyPassiveGrab* = 4XINotifyPassiveUngrab* = 5## Enter/Leave and focus In/out detailconstXINotifyAncestor* = 0XINotifyVirtual* = 1XINotifyInferior* = 2XINotifyNonlinear* = 3XINotifyNonlinearVirtual* = 4XINotifyPointer* = 5XINotifyPointerRoot* = 6XINotifyDetailNone* = 7## Grab modesconstXIGrabModeSync* = 0XIGrabModeAsync* = 1XIGrabModeTouch* = 2## Grab reply status codesconstXIGrabSuccess* = 0XIAlreadyGrabbed* = 1XIGrabInvalidTime* = 2XIGrabNotViewable* = 3XIGrabFrozen* = 4## Grab owner events valuesconstXIOwnerEvents* = trueXINoOwnerEvents* = false## Passive grab typesconstXIGrabtypeButton* = 0XIGrabtypeKeycode* = 1XIGrabtypeEnter* = 2XIGrabtypeFocusIn* = 3XIGrabtypeTouchBegin* = 4## Passive grab modifierconstXIAnyModifier* = (1 shl 31)XIAnyButton* = 0XIAnyKeycode* = 0## XIAllowEvents event-modesconstXIAsyncDevice* = 0XISyncDevice* = 1XIReplayDevice* = 2XIAsyncPairedDevice* = 3XIAsyncPair* = 4XISyncPair* = 5XIAcceptTouch* = 6XIRejectTouch* = 7## DeviceChangedEvent change reasonsconstXISlaveSwitch* = 1XIDeviceChange* = 2## Hierarchy flagsconstXIMasterAdded* = (1 shl 0)XIMasterRemoved* = (1 shl 1)XISlaveAdded* = (1 shl 2)XISlaveRemoved* = (1 shl 3)XISlaveAttached* = (1 shl 4)XISlaveDetached* = (1 shl 5)XIDeviceEnabled* = (1 shl 6)XIDeviceDisabled* = (1 shl 7)## ChangeHierarchy constantsconstXIAddMaster* = 1XIRemoveMaster* = 2XIAttachSlave* = 3XIDetachSlave* = 4XIAttachToMaster* = 1XIFloating* = 2## Valuator modesconstXIModeRelative* = 0XIModeAbsolute* = 1## Device typesconstXIMasterPointer* = 1XIMasterKeyboard* = 2XISlavePointer* = 3XISlaveKeyboard* = 4XIFloatingSlave* = 5## Device classes: classes that are not identical to Xi 1.x classes must be## numbered starting from 8.constXIKeyClass* = 0XIButtonClass* = 1XIValuatorClass* = 2XIScrollClass* = 3XITouchClass* = 8## Scroll class typesconstXIScrollTypeVertical* = 1XIScrollTypeHorizontal* = 2## Scroll class flagsconstXIScrollFlagNoEmulation* = (1 shl 0)XIScrollFlagPreferred* = (1 shl 1)## Device event flags (common)## Device event flags (key events only)constXIKeyRepeat* = (1 shl 16)## Device event flags (pointer events only)constXIPointerEmulated* = (1 shl 16)## Device event flags (touch events only)constXITouchPendingEnd* = (1 shl 16)XITouchEmulatingPointer* = (1 shl 17)## Barrier event flagsconstXIBarrierPointerReleased* = (1 shl 0)XIBarrierDeviceIsGrabbed* = (1 shl 1)## Touch modesconstXIDirectTouch* = 1XIDependentTouch* = 2## XI2 event mask macrostype XIMask = ptr UncheckedArray[uint8]template XISetMask*(mask: pointer, event: untyped): untyped =((cast[XIMask]((mask)))[(event) shr 3] = (cast[XIMask]((mask)))[(event) shr 3] or (1 shl ((event) and 7)))template XIClearMask*(mask: pointer, event: untyped): untyped =((cast[XIMask]((mask)))[(event) shr 3] = (cast[XIMask]((mask)))[(event) shr 3] and not (1 shl ((event) and 7)))template XIMaskIsSet*(mask: pointer, event: untyped): untyped =((cast[XIMask]((mask)))[(event) shr 3].int and (1 shl ((event) and 7)))template XIMaskLen*(event: untyped): untyped =(((event) shr 3) + 1)## Fake device ID's for event selectionconstXIAllDevices* = 0XIAllMasterDevices* = 1## Event typesconstXI_DeviceChanged* = 1XI_KeyPress* = 2XI_KeyRelease* = 3XI_ButtonPress* = 4XI_ButtonRelease* = 5XI_Motion* = 6XI_Enter* = 7XI_Leave* = 8XI_FocusIn* = 9XI_FocusOut* = 10XI_HierarchyChanged* = 11XI_PropertyEvent* = 12XI_RawKeyPress* = 13XI_RawKeyRelease* = 14XI_RawButtonPress* = 15XI_RawButtonRelease* = 16XI_RawMotion* = 17XI_TouchBegin* = 18XI_TouchUpdate* = 19XI_TouchEnd* = 20XI_TouchOwnership* = 21XI_RawTouchBegin* = 22XI_RawTouchUpdate* = 23XI_RawTouchEnd* = 24XI_BarrierHit* = 25XI_BarrierLeave* = 26XI_LASTEVENT* = XI_BarrierLeave## NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value## as XI_LASTEVENT if the server is supposed to handle masks etc. for this## type of event.## Event masks.## Note: the protocol spec defines a mask to be of (1 << type). Clients are## free to create masks by bitshifting instead of using these defines.##constXI_DeviceChangedMask* = (1 shl XI_DeviceChanged)XI_KeyPressMask* = (1 shl XI_KeyPress)XI_KeyReleaseMask* = (1 shl XI_KeyRelease)XI_ButtonPressMask* = (1 shl XI_ButtonPress)XI_ButtonReleaseMask* = (1 shl XI_ButtonRelease)XI_MotionMask* = (1 shl XI_Motion)XI_EnterMask* = (1 shl XI_Enter)XI_LeaveMask* = (1 shl XI_Leave)XI_FocusInMask* = (1 shl XI_FocusIn)XI_FocusOutMask* = (1 shl XI_FocusOut)XI_HierarchyChangedMask* = (1 shl XI_HierarchyChanged)XI_PropertyEventMask* = (1 shl XI_PropertyEvent)XI_RawKeyPressMask* = (1 shl XI_RawKeyPress)XI_RawKeyReleaseMask* = (1 shl XI_RawKeyRelease)XI_RawButtonPressMask* = (1 shl XI_RawButtonPress)XI_RawButtonReleaseMask* = (1 shl XI_RawButtonRelease)XI_RawMotionMask* = (1 shl XI_RawMotion)XI_TouchBeginMask* = (1 shl XI_TouchBegin)XI_TouchEndMask* = (1 shl XI_TouchEnd)XI_TouchOwnershipChangedMask* = (1 shl XI_TouchOwnership)XI_TouchUpdateMask* = (1 shl XI_TouchUpdate)XI_RawTouchBeginMask* = (1 shl XI_RawTouchBegin)XI_RawTouchEndMask* = (1 shl XI_RawTouchEnd)XI_RawTouchUpdateMask* = (1 shl XI_RawTouchUpdate)XI_BarrierHitMask* = (1 shl XI_BarrierHit)XI_BarrierLeaveMask* = (1 shl XI_BarrierLeave)
## $Xorg: XI.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $##************************************************************##Copyright 1989, 1998 The Open Group##Permission to use, copy, modify, distribute, and sell this software and its#documentation for any purpose is hereby granted without fee, provided that#the above copyright notice appear in all copies and that both that#copyright notice and this permission notice appear in supporting#documentation.##The above copyright notice and this permission notice shall be included in#all copies or substantial portions of the Software.##THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE#OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN#AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN#CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.##Except as contained in this notice, the name of The Open Group shall not be#used in advertising or otherwise to promote the sale, use or other dealings#in this Software without prior written authorization from The Open Group.##Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.## All Rights Reserved##Permission to use, copy, modify, and distribute this software and its#documentation for any purpose and without fee is hereby granted,#provided that the above copyright notice appear in all copies and that#both that copyright notice and this permission notice appear in#supporting documentation, and that the name of Hewlett-Packard not be#used in advertising or publicity pertaining to distribution of the#software without specific, written prior permission.##HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL#HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS#SOFTWARE.##********************************************************/# $XFree86: xc/include/extensions/XI.h,v 1.5 2001/12/14 19:53:28 dawes Exp $## Definitions used by the server, library and client## Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il##Histroy:# 2004/10/15 - Fixed a bug of accessing second based records by removing "paced record" and chnaged it to# "reocrd" only.# 2004/10/07 - Removed the "uses X;" line. The unit does not need it.# 2004/10/03 - Conversion from C header to Pascal unit.#constlibXi* = "libXi.so(|.6)"constsz_xGetExtensionVersionReq* = 8sz_xGetExtensionVersionReply* = 32sz_xListInputDevicesReq* = 4sz_xListInputDevicesReply* = 32sz_xOpenDeviceReq* = 8sz_xOpenDeviceReply* = 32sz_xCloseDeviceReq* = 8sz_xSetDeviceModeReq* = 8sz_xSetDeviceModeReply* = 32sz_xSelectExtensionEventReq* = 12sz_xGetSelectedExtensionEventsReq* = 8sz_xGetSelectedExtensionEventsReply* = 32sz_xChangeDeviceDontPropagateListReq* = 12sz_xGetDeviceDontPropagateListReq* = 8sz_xGetDeviceDontPropagateListReply* = 32sz_xGetDeviceMotionEventsReq* = 16sz_xGetDeviceMotionEventsReply* = 32sz_xChangeKeyboardDeviceReq* = 8sz_xChangeKeyboardDeviceReply* = 32sz_xChangePointerDeviceReq* = 8sz_xChangePointerDeviceReply* = 32sz_xGrabDeviceReq* = 20sz_xGrabDeviceReply* = 32sz_xUngrabDeviceReq* = 12sz_xGrabDeviceKeyReq* = 20sz_xGrabDeviceKeyReply* = 32sz_xUngrabDeviceKeyReq* = 16sz_xGrabDeviceButtonReq* = 20sz_xGrabDeviceButtonReply* = 32sz_xUngrabDeviceButtonReq* = 16sz_xAllowDeviceEventsReq* = 12sz_xGetDeviceFocusReq* = 8sz_xGetDeviceFocusReply* = 32sz_xSetDeviceFocusReq* = 16sz_xGetFeedbackControlReq* = 8sz_xGetFeedbackControlReply* = 32sz_xChangeFeedbackControlReq* = 12sz_xGetDeviceKeyMappingReq* = 8sz_xGetDeviceKeyMappingReply* = 32sz_xChangeDeviceKeyMappingReq* = 8sz_xGetDeviceModifierMappingReq* = 8sz_xSetDeviceModifierMappingReq* = 8sz_xSetDeviceModifierMappingReply* = 32sz_xGetDeviceButtonMappingReq* = 8sz_xGetDeviceButtonMappingReply* = 32sz_xSetDeviceButtonMappingReq* = 8sz_xSetDeviceButtonMappingReply* = 32sz_xQueryDeviceStateReq* = 8sz_xQueryDeviceStateReply* = 32sz_xSendExtensionEventReq* = 16sz_xDeviceBellReq* = 8sz_xSetDeviceValuatorsReq* = 8sz_xSetDeviceValuatorsReply* = 32sz_xGetDeviceControlReq* = 8sz_xGetDeviceControlReply* = 32sz_xChangeDeviceControlReq* = 8sz_xChangeDeviceControlReply* = 32constINAME* = "XInputExtension"constXI_KEYBOARD* = "KEYBOARD"XI_MOUSE* = "MOUSE"XI_TABLET* = "TABLET"XI_TOUCHSCREEN* = "TOUCHSCREEN"XI_TOUCHPAD* = "TOUCHPAD"XI_BARCODE* = "BARCODE"XI_BUTTONBOX* = "BUTTONBOX"XI_KNOB_BOX* = "KNOB_BOX"XI_ONE_KNOB* = "ONE_KNOB"XI_NINE_KNOB* = "NINE_KNOB"XI_TRACKBALL* = "TRACKBALL"XI_QUADRATURE* = "QUADRATURE"XI_ID_MODULE* = "ID_MODULE"XI_SPACEBALL* = "SPACEBALL"XI_DATAGLOVE* = "DATAGLOVE"XI_EYETRACKER* = "EYETRACKER"XI_CURSORKEYS* = "CURSORKEYS"XI_FOOTMOUSE* = "FOOTMOUSE"constDont_Check* = 0XInput_Initial_Release* = 1XInput_Add_XDeviceBell* = 2XInput_Add_XSetDeviceValuators* = 3XInput_Add_XChangeDeviceControl* = 4constXI_Absent* = 0XI_Present* = 1constXI_Initial_Release_Major* = 1XI_Initial_Release_Minor* = 0constXI_Add_XDeviceBell_Major* = 1XI_Add_XDeviceBell_Minor* = 1constXI_Add_XSetDeviceValuators_Major* = 1XI_Add_XSetDeviceValuators_Minor* = 2constXI_Add_XChangeDeviceControl_Major* = 1XI_Add_XChangeDeviceControl_Minor* = 3constDEVICE_RESOLUTION* = 1constNoSuchExtension* = 1constCOUNT* = 0CREATE* = 1constNewPointer* = 0NewKeyboard* = 1constXPOINTER* = 0XKEYBOARD* = 1constUseXKeyboard* = 0x000000FFconstIsXPointer* = 0IsXKeyboard* = 1IsXExtensionDevice* = 2constAsyncThisDevice* = 0SyncThisDevice* = 1ReplayThisDevice* = 2AsyncOtherDevices* = 3AsyncAll* = 4SyncAll* = 5constFollowKeyboard* = 3RevertToFollowKeyboard* = 3constDvAccelNum* = int(1) shl 0DvAccelDenom* = int(1) shl 1DvThreshold* = int(1) shl 2constDvKeyClickPercent* = int(1) shl 0DvPercent* = int(1) shl 1DvPitch* = int(1) shl 2DvDuration* = int(1) shl 3DvLed* = int(1) shl 4DvLedMode* = int(1) shl 5DvKey* = int(1) shl 6DvAutoRepeatMode* = 1 shl 7constDvString* = int(1) shl 0constDvInteger* = int(1) shl 0constDeviceMode* = int(1) shl 0Relative* = 0Absolute* = 1 # Merged from Metrolink tree for XINPUT stuffTS_Raw* = 57TS_Scaled* = 58SendCoreEvents* = 59DontSendCoreEvents* = 60 # End of merged sectionconstProximityState* = int(1) shl 1InProximity* = int(0) shl 1OutOfProximity* = int(1) shl 1constAddToList* = 0DeleteFromList* = 1constKeyClass* = 0ButtonClass* = 1ValuatorClass* = 2FeedbackClass* = 3ProximityClass* = 4FocusClass* = 5OtherClass* = 6constKbdFeedbackClass* = 0PtrFeedbackClass* = 1StringFeedbackClass* = 2IntegerFeedbackClass* = 3LedFeedbackClass* = 4BellFeedbackClass* = 5constdevicePointerMotionHint* = 0deviceButton1Motion* = 1deviceButton2Motion* = 2deviceButton3Motion* = 3deviceButton4Motion* = 4deviceButton5Motion* = 5deviceButtonMotion* = 6deviceButtonGrab* = 7deviceOwnerGrabButton* = 8noExtensionEvent* = 9constXI_BadDevice* = 0XI_BadEvent* = 1XI_BadMode* = 2XI_DeviceBusy* = 3XI_BadClass* = 4 # Make XEventClass be a CARD32 for 64 bit servers. Don't affect client# definition of XEventClass since that would be a library interface change.# See the top of X.h for more _XSERVER64 magic.#when defined(XSERVER64):typeXEventClass* = CARD32else:typeXEventClass* = int32#******************************************************************# *# * Extension version structure.# *#typePXExtensionVersion* = ptr XExtensionVersionXExtensionVersion*{.final.} = objectpresent*: int16major_version*: int16minor_version*: int16{.deprecated: [TXExtensionVersion: XExtensionVersion].}# implementation
# Converted from X11/Xft/Xft.himportx,xlib,xrender,xutilconstxftLib = "libXft.so"# Defined in the FreeType librarytypeFT_UInt* = cuintPFT_UInt* = ptr FT_UIntFT_Face* = objectPFT_Face* = ptr FT_Face# Defined in the fontconfig librarytypeFcEndian* = enumFcEndianBig, FcEndianLittleFcResult* = enumFcResultMatch, FcResultNoMatch, FcResultTypeMismatch,FcResultNoId, FcResultOutOfMemoryPFcResult* = ptr FcResultFcBool* = cintFcCharSet* = objectPFcCharSet* = ptr FcCharSetFcPattern* = objectPFcPattern* = ptr FcPatternFcFontSet* = objectnfont*: cintsfont*: cintfonts*: ptr PFcPatternPFcFontSet* = ptr FcFontSetFcChar8* = charPFcChar8* = ptr FcChar8FcChar16* = cushortPFcChar16* = ptr FcChar16FcChar32* = cuintPFcChar32* = ptr FcChar32typeXftFontInfo* = objectPXftFontInfo* = ptr XftFontInfoXftFont* = objectascent*: cintdescent*: cintheight*: cintmax_advance_width*: cintcharset*: PFcCharSetpattern*: PFcPatternPXftFont* = ptr XftFontXftDraw* = objectPXftDraw* = ptr XftDrawXftColor* = objectpixel*: culongcolor*: XRenderColorPXftColor* = ptr XftColorXftCharSpec* = objectucs4*: FcChar32x*: cshorty*: cshortPXftCharSpec* = ptr XftCharSpecXftCharFontSpec* = objectfont*: PXftFontucs4*: FcChar32x*: cshorty*: cshortPXftCharFontSpec* = ptr XftCharFontSpecXftGlyphSpec* = objectglyph*: FT_UIntx*: cshorty*: cshortPXftGlyphSpec* = ptr XftGlyphSpecXftGlyphFontSpec* = objectfont*: PXftFontglyph*: FT_UIntx*: cshorty*: cshortPXftGlyphFontSpec = ptr XftGlyphFontSpec# xftcolor.cproc XftColorAllocName*(display: PDisplay,visual: PVisual,cmap: Colormap,name: cstring,result: PXftColor): XBool {.cdecl, dynlib: xftLib, importc.}proc XftColorAllocValue*(display: PDisplay,visual: PVisual,cmap: Colormap,color: PXRenderColor,result: PXftColor): XBool {.cdecl, dynlib: xftLib, importc.}proc XftColorFree*(display: PDisplay,visual: PVisual,cmap: Colormap,color: PXftColor) {.cdecl, dynlib: xftLib, importc.}# xftdpy.cproc XftDefaultHasRender*(display: PDisplay): XBool {.cdecl, dynlib: xftLib, importc.}proc XftDefaultSet*(display: PDisplay,defaults: PFcPattern): XBool {.cdecl, dynlib: xftLib, importc.}proc XftDefaultSubstitute*(display: PDisplay,screen: cint,pattern: PFcPattern) {.cdecl, dynlib: xftLib, importc.}# xftdraw.cproc XftDrawCreate*(display: PDisplay,drawable: Drawable,visual: PVisual,colormap: Colormap): PXftDraw {.cdecl, dynlib: xftLib, importc.}proc XftDrawCreateBitmap*(display: PDisplay,bitmap: Pixmap): PXftDraw {.cdecl, dynlib: xftLib, importc.}proc XftDrawCreateAlpha*(display: PDisplay,pixmap: Pixmap,depth: cint): PXftDraw {.cdecl, dynlib: xftLib, importc.}proc XftDrawChange*(draw: PXftDraw,drawable: Drawable) {.cdecl, dynlib: xftLib, importc.}proc XftDrawDisplay*(draw: PXftDraw): PDisplay {.cdecl, dynlib: xftLib, importc.}proc XftDrawDrawable*(draw: PXftDraw): Drawable {.cdecl, dynlib: xftLib, importc.}proc XftDrawColormap*(draw: PXftDraw): Colormap {.cdecl, dynlib: xftLib, importc.}proc XftDrawVisual*(draw: PXftDraw): PVisual {.cdecl, dynlib: xftLib, importc.}proc XftDrawDestroy*(draw: PXftDraw) {.cdecl, dynlib: xftLib, importc.}proc XftDrawPicture*(draw: PXftDraw): Picture {.cdecl, dynlib: xftLib, importc.}proc XftDrawSrcPicture*(draw: PXftDraw,color: PXftColor): Picture {.cdecl, dynlib: xftLib, importc.}proc XftDrawGlyphs*(draw: PXftDraw,color: PXftColor,pub: PXftFont,x: cint,y: cint,glyphs: PFt_UInt,nglyphs: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawString8*(draw: PXftDraw,color: PXftColor,pub: PXftFont,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawString16*(draw: PXftDraw,color: PXftColor,pub: PXftFont,x: cint,y: cint,str: PFcChar16,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawString32*(draw: PXftDraw,color: PXftColor,pub: PXftFont,x: cint,y: cint,str: PFcChar32,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawStringUtf8*(draw: PXftDraw,color: PXftColor,pub: PXftFont,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawStringUtf16*(draw: PXftDraw,color: PXftColor,pub: PXftFont,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawCharSpec*(draw: PXftDraw,color: PXftColor,pub: PXftFont,chars: PXftCharSpec,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawCharFontSpec*(draw: PXftDraw,color: PXftColor,chars: PXftCharFontSpec,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawGlyphSpec*(draw: PXftDraw,color: PXftColor,pub: PXftFont,glyphs: PXftGlyphSpec,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawGlyphFontSpec*(draw: PXftDraw,color: PXftColor,glyphs: PXftGlyphFontSpec,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawRect*(draw: PXftDraw,color: PXftColor,x: cint,y: cint,width: cuint,height: cuint) {.cdecl, dynlib: xftLib, importc.}proc XftDrawSetClip*(draw: PXftDraw,r: Region): XBool {.cdecl, dynlib: xftLib, importc.}proc XftDrawSetClipRectangles*(draw: PXftDraw,xOrigin: cint,yOrigin: cint,rects: PXRectangle,n: cint): XBool {.cdecl, dynlib: xftLib, importc.}proc XftDrawSetSubwindowMode*(draw: PXftDraw,mode: cint) {.cdecl, dynlib: xftLib, importc.}# xftextent.cproc XftGlyphExtents*(display: PDisplay,pub: PXftFont,glyphs: PFT_UInt,nglyphs: cint,extends: PXGlyphInfo) {.cdecl, dynlib: xftLib, importc.}proc XftTextExtents8*(display: PDisplay,pub: PXftFont,str: PFcChar8,len: cint,extents: PXGlyphInfo) {.cdecl, dynlib: xftLib, importc.}proc XftTextExtents16*(display: PDisplay,pub: PXftFont,str: PFcChar16,len: cint,extents: PXGlyphInfo) {.cdecl, dynlib: xftLib, importc.}proc XftTextExtents32*(display: PDisplay,pub: PXftFont,str: PFcChar32,len: cint,extents: PXGlyphInfo) {.cdecl, dynlib: xftLib, importc.}proc XftTextExtentsUtf8*(display: PDisplay,pub: PXftFont,str: PFcChar8,len: cint,extents: PXGlyphInfo) {.cdecl, dynlib: xftLib, importc.}proc XftTextExtentsUtf16*(display: PDisplay,pub: PXftFont,str: PFcChar8,endian: FcEndian,len: cint,extents: PXGlyphInfo) {.cdecl, dynlib: xftLib, importc.}# xftfont.cproc XftFontMatch*(display: PDisplay,screen: cint,pattern: PFcPattern,result: PFcResult): PFcPattern {.cdecl, dynlib: xftLib, importc.}# Expects display to be nil as an argumentproc XftFontOpen*(display: PDisplay,screen: cint): PXftFont {.cdecl, dynlib: xftLib, importc, varargs.}proc XftFontOpenName*(display: PDisplay,screen: cint,name: cstring): PXftFont {.cdecl, dynlib: xftLib, importc.}proc XftFontOpenXlfd*(display: PDisplay,screen: cint,xlfd: cstring): PXftFont {.cdecl, dynlib: xftLib, importc.}# xftfreetype.cproc XftLockFace*(pub: PXftFont): FT_Face {.cdecl, dynlib: xftLib, importc.}proc XftUnlockFace*(pub: PXftFont) {.cdecl, dynlib: xftLib, importc.}proc XftFontInfoCreate*(display: PDisplay,pattern: PFcPattern): PXftFontInfo {.cdecl, dynlib: xftLib, importc.}proc XftFontInfoDestroy*(display: PDisplay,fi: PXftFontInfo) {.cdecl, dynlib: xftLib, importc.}proc XftFontInfoHash*(fi: PXftFontInfo): PFcChar32 {.cdecl, dynlib: xftLib, importc.}proc XftFontInfoEqual*(a: PXftFontInfo,b: PXftFontInfo): FcBool {.cdecl, dynlib: xftLib, importc.}proc XftFontOpenInfo*(display: PDisplay,pattern: PFcPattern,fi: PXftFontInfo): PXftFont {.cdecl, dynlib: xftLib, importc.}proc XftFontOpenPattern*(display: PDisplay,pattern: PFcPattern): PXftFont {.cdecl, dynlib: xftLib, importc.}proc XftFontCopy*(display: PDisplay,pub: PXftFont): PXftFont {.cdecl, dynlib: xftLib, importc.}proc XftFontClose*(display: PDisplay,pub: PXftFont) {.cdecl, dynlib: xftLib, importc.}proc XftInitFtLibrary*(): FcBool {.cdecl, dynlib: xftLib, importc.}# xftglyphs.cproc XftFontLoadGlyphs*(display: PDisplay,pub: PXftFont,need_bitmaps: FcBool,glyphs: PFT_UInt,nglyph: cint) {.cdecl, dynlib: xftLib, importc.}proc XftFontUnloadGlyphs*(display: PDisplay,pub: PXftFont,glyphs: PFT_UInt,nglyph: cint) {.cdecl, dynlib: xftLib, importc.}const XFT_NMISSING* = 256proc XftFontCheckGlyph*(display: PDisplay,pub: PXftFont,need_bitmaps: FcBool,glyph: FT_UInt,missing: PFT_UInt,nmissing: cint): FcBool {.cdecl, dynlib: xftLib, importc.}proc XftCharExists*(display: PDisplay,pub: PXftFont,ucs4: FcChar32): FcBool {.cdecl, dynlib: xftLib, importc.}proc XftCharIndex*(display: PDisplay,pub: PXftFont,ucs4: FcChar32): FT_UInt {.cdecl, dynlib: xftLib, importc.}# xftinit.cproc XftInit*(config: cstring): FcBool {.cdecl, dynlib: xftLib, importc.}proc XftGetVersion*(): cint {.cdecl, dynlib: xftLib, importc.}# xftlist.c# Expects display to be nil as an argumentproc XftListFonts*(display: PDisplay,screen: cint): PFcFontSet {.cdecl, dynlib: xftLib, importc, varargs.}# xftname.cproc XftNameParse*(name: cstring): PFcPattern {.cdecl, dynlib: xftLib, importc.}# xftrender.cproc XftGlyphRender*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,glyphs: PFT_UInt,nglyphs: cint) {.cdecl, dynlib: xftLib, importc.}proc XftGlyphSpecRender*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,glyphs: PXftGlyphSpec,nglyphs: cint) {.cdecl, dynlib: xftLib, importc.}proc XftCharSpecRender*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,chars: PXftCharSpec,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftGlyphFontSpecRender*(display: PDisplay,op: cint,src: Picture,dst: Picture,srcx: cint,srcy: cint,glyphs: PXftGlyphFontSpec,nglyphs: cint) {.cdecl, dynlib: xftLib, importc.}proc XftCharFontSpecRender*(display: PDisplay,op: cint,src: Picture,dst: Picture,srcx: cint,srcy: cint,chars: PXftCharFontSpec,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender8*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender16*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar16,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender16BE*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender16LE*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender32*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar32,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender32BE*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRender32LE*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRenderUtf8*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,len: cint) {.cdecl, dynlib: xftLib, importc.}proc XftTextRenderUtf16*(display: PDisplay,op: cint,src: Picture,pub: PXftFont,dst: Picture,srcx: cint,srcy: cint,x: cint,y: cint,str: PFcChar8,endian: FcEndian,len: cint) {.cdecl, dynlib: xftLib, importc.}# xftxlfd.cproc XftXlfdParse8*(xlfd_orig: cstring,ignore_scalable: XBool,complete: XBool): PFcPattern {.cdecl, dynlib: xftLib, importc.}
import xlib, x#fixesconst#/* There's only one cursor event so far */XFixesDisplayCursorNotify* = 0XFixesCursorNotify* = 1XFixesDisplayCursorNotifyMask* = (1 shl 0) # 1L (?)XFixesNumberEvents* = 2XFIXES_MINOR* = 0XFIXES_REVISION* = 1XFIXES_MAJOR* = 6XFIXES_VERSION* = 60001# ((XFIXES_MAJOR * 10000) + (XFIXES_MINOR * 100) + (XFIXES_REVISION))typeXFixesSelectionNotifyEvent* {.bycopy.} = objecttypee*: intserial*: culongsend_event*: booldisplay*: ptr Displaywindow*: Windowsubtype*: intowner*: Windowselection*: Atomtimestamp*: Timeselection_timestamp*: TimeXFixesCursorNotifyEvent* {.bycopy.} = objecttypee*: intserial*: culongsend_event*: booldisplay*: ptr Displaywindow*: Windowsubtype*: intcursor_serial*: culongtimestamp*: Timecursor_name*: AtomXFixesCursorImage* {.bycopy.} = objectx*: cshorty*: cshortwidth*: cushortheight*: cushortxhot*: cushortyhot*: cushortcursor_serial*: culongpixels*: ptr culong#if XFIXES_MAJOR >= 2atom*: Atom # /* Version >= 2 only */name*: cstring # /* Version >= 2 only */#if XFIXES_MAJOR >= 2 ||||| XID == XserverRegion == culongXFixesCursorImageAndName* {.bycopy.} = objectx*: cshorty*: cshortwidth*: cushortheight*: cushortxhot*: cushortyhot*: cushortcursor_serial*: culongpixels*: ptr culongatom*: Atomname*: cstring#endif#_XFUNCPROTOBEGINproc XFixesQueryExtension* ( dpy: ptr Display, event_base_return: ptr int, error_base_return1: ptr int): bool {.importc, cdecl.}proc XFixesSelectCursorInput* ( dpy: ptr Display, win: Window, eventMask: culong): void {.importc, cdecl.}#[Status XFixesQueryVersion (Display *dpy,int *major_version_return,int *minor_version_return);int XFixesVersion (void);voidXFixesChangeSaveSet (Display *dpy,Window win,int mode,int target,int map);voidXFixesSelectSelectionInput (Display *dpy,Window win,Atom selection,unsigned long eventMask);;XFixesCursorImage *XFixesGetCursorImage (Display *dpy);#if XFIXES_MAJOR >= 2/* Version 2 functions */culongXFixesCreateRegion (Display *dpy, XRectangle *rectangles, int nrectangles);culongXFixesCreateRegionFromBitmap (Display *dpy, Pixmap bitmap);culongXFixesCreateRegionFromWindow (Display *dpy, Window window, int kind);culongXFixesCreateRegionFromGC (Display *dpy, GC gc);culongXFixesCreateRegionFromPicture (Display *dpy, XID picture);voidXFixesDestroyRegion (Display *dpy, culong region);voidXFixesSetRegion (Display *dpy, culong region,XRectangle *rectangles, int nrectangles);voidXFixesCopyRegion (Display *dpy, culong dst, culong src);voidXFixesUnionRegion (Display *dpy, culong dst,culong src1, culong src2);voidXFixesIntersectRegion (Display *dpy, culong dst,culong src1, culong src2);voidXFixesSubtractRegion (Display *dpy, culong dst,culong src1, culong src2);voidXFixesInvertRegion (Display *dpy, culong dst,XRectangle *rect, culong src);voidXFixesTranslateRegion (Display *dpy, culong region, int dx, int dy);voidXFixesRegionExtents (Display *dpy, culong dst, culong src);XRectangle *XFixesFetchRegion (Display *dpy, culong region, int *nrectanglesRet);XRectangle *XFixesFetchRegionAndBounds (Display *dpy, culong region,int *nrectanglesRet,XRectangle *bounds);voidXFixesSetGCClipRegion (Display *dpy, GC gc,int clip_x_origin, int clip_y_origin,culong region);voidXFixesSetWindowShapeRegion (Display *dpy, Window win, int shape_kind,int x_off, int y_off, culong region);voidXFixesSetPictureClipRegion (Display *dpy, XID picture,int clip_x_origin, int clip_y_origin,culong region);voidXFixesSetCursorName (Display *dpy, Cursor cursor, const char *name);const char *XFixesGetCursorName (Display *dpy, Cursor cursor, Atom *atom);voidXFixesChangeCursor (Display *dpy, Cursor source, Cursor destination);voidXFixesChangeCursorByName (Display *dpy, Cursor source, const char *name);#endif /* XFIXES_MAJOR >= 2 */#if XFIXES_MAJOR >= 3voidXFixesExpandRegion (Display *dpy, culong dst, culong src,unsigned left, unsigned right,unsigned top, unsigned bottom);#endif /* XFIXES_MAJOR >= 3 */#if XFIXES_MAJOR >= 4/* Version 4.0 externs */voidXFixesHideCursor (Display *dpy, Window win);voidXFixesShowCursor (Display *dpy, Window win);#endif /* XFIXES_MAJOR >= 4 */#if XFIXES_MAJOR >= 5typedef XID PointerBarrier;PointerBarrierXFixesCreatePointerBarrier(Display *dpy, Window w, int x1, int y1,int x2, int y2, int directions,int num_devices, int *devices);voidXFixesDestroyPointerBarrier(Display *dpy, PointerBarrier b);#endif /* XFIXES_MAJOR >= 5 */#if XFIXES_MAJOR >= 6voidXFixesSetClientDisconnectMode(Display *dpy, int disconnect_mode);intXFixesGetClientDisconnectMode(Display *dpy);#endif /* XFIXES_MAJOR >= 6 */_XFUNCPROTOEND#endif /* _XFIXES_H_ */#/#[#proto#include <X11/Xmd.h>#include <X11/extensions/xfixeswire.h>#include <X11/extensions/shapeconst.h>#define Window CARD32#define Drawable CARD32#define Font CARD32#define Pixmap CARD32#define Cursor CARD32#define Colormap CARD32#define GContext CARD32#define Atom CARD32#define VisualID CARD32#define Time CARD32#define KeyCode CARD8#define KeySym CARD32#define Picture CARD32/*************** Version 1 ******************/typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;} xXFixesReq;/** requests and replies*/typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;CARD32 majorVersion;CARD32 minorVersion;} xXFixesQueryVersionReq;#define sz_xXFixesQueryVersionReq 12typedef struct {BYTE type; /* X_Reply */BYTE pad1;CARD16 sequenceNumber;CARD32 length;CARD32 majorVersion;CARD32 minorVersion;CARD32 pad2;CARD32 pad3;CARD32 pad4;CARD32 pad5;} xXFixesQueryVersionReply;#define sz_xXFixesQueryVersionReply 32typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;BYTE mode; /* SetModeInsert/SetModeDelete*/BYTE target; /* SaveSetNearest/SaveSetRoot*/BYTE map; /* SaveSetMap/SaveSetUnmap */BYTE pad1;Window window;} xXFixesChangeSaveSetReq;#define sz_xXFixesChangeSaveSetReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Window window;Atom selection;CARD32 eventMask;} xXFixesSelectSelectionInputReq;#define sz_xXFixesSelectSelectionInputReq 16typedef struct {CARD8 type;CARD8 subtype;CARD16 sequenceNumber;Window window;Window owner;Atom selection;Time timestamp;Time selectionTimestamp;CARD32 pad2;CARD32 pad3;} xXFixesSelectionNotifyEvent;typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Window window;CARD32 eventMask;} xXFixesSelectCursorInputReq;#define sz_xXFixesSelectCursorInputReq 12typedef struct {CARD8 type;CARD8 subtype;CARD16 sequenceNumber;Window window;CARD32 cursorSerial;Time timestamp;Atom name; /* Version 2 */CARD32 pad1;CARD32 pad2;CARD32 pad3;} xXFixesCursorNotifyEvent;typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;} xXFixesGetCursorImageReq;#define sz_xXFixesGetCursorImageReq 4typedef struct {BYTE type; /* X_Reply */BYTE pad1;CARD16 sequenceNumber;CARD32 length;INT16 x;INT16 y;CARD16 width;CARD16 height;CARD16 xhot;CARD16 yhot;CARD32 cursorSerial;CARD32 pad2;CARD32 pad3;} xXFixesGetCursorImageReply;#define sz_xXFixesGetCursorImageReply 32/*************** Version 2 ******************/#define Region CARD32typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;/* LISTofRECTANGLE */} xXFixesCreateRegionReq;#define sz_xXFixesCreateRegionReq 8typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;Pixmap bitmap;} xXFixesCreateRegionFromBitmapReq;#define sz_xXFixesCreateRegionFromBitmapReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;Window window;CARD8 kind;CARD8 pad1;CARD16 pad2;} xXFixesCreateRegionFromWindowReq;#define sz_xXFixesCreateRegionFromWindowReq 16typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;GContext gc;} xXFixesCreateRegionFromGCReq;#define sz_xXFixesCreateRegionFromGCReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;Picture picture;} xXFixesCreateRegionFromPictureReq;#define sz_xXFixesCreateRegionFromPictureReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;} xXFixesDestroyRegionReq;#define sz_xXFixesDestroyRegionReq 8typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;/* LISTofRECTANGLE */} xXFixesSetRegionReq;#define sz_xXFixesSetRegionReq 8typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region source;Region destination;} xXFixesCopyRegionReq;#define sz_xXFixesCopyRegionReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region source1;Region source2;Region destination;} xXFixesCombineRegionReq,xXFixesUnionRegionReq,xXFixesIntersectRegionReq,xXFixesSubtractRegionReq;#define sz_xXFixesCombineRegionReq 16#define sz_xXFixesUnionRegionReq sz_xXFixesCombineRegionReq#define sz_xXFixesIntersectRegionReq sz_xXFixesCombineRegionReq#define sz_xXFixesSubtractRegionReq sz_xXFixesCombineRegionReqtypedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region source;INT16 x, y;CARD16 width, height;Region destination;} xXFixesInvertRegionReq;#define sz_xXFixesInvertRegionReq 20typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;INT16 dx, dy;} xXFixesTranslateRegionReq;#define sz_xXFixesTranslateRegionReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region source;Region destination;} xXFixesRegionExtentsReq;#define sz_xXFixesRegionExtentsReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region region;} xXFixesFetchRegionReq;#define sz_xXFixesFetchRegionReq 8typedef struct {BYTE type; /* X_Reply */BYTE pad1;CARD16 sequenceNumber;CARD32 length;INT16 x, y;CARD16 width, height;CARD32 pad2;CARD32 pad3;CARD32 pad4;CARD32 pad5;} xXFixesFetchRegionReply;#define sz_xXFixesFetchRegionReply 32typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;GContext gc;Region region;INT16 xOrigin, yOrigin;} xXFixesSetGCClipRegionReq;#define sz_xXFixesSetGCClipRegionReq 16typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Window dest;BYTE destKind;CARD8 pad1;CARD16 pad2;INT16 xOff, yOff;Region region;} xXFixesSetWindowShapeRegionReq;#define sz_xXFixesSetWindowShapeRegionReq 20typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Picture picture;Region region;INT16 xOrigin, yOrigin;} xXFixesSetPictureClipRegionReq;#define sz_xXFixesSetPictureClipRegionReq 16typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Cursor cursor;CARD16 nbytes;CARD16 pad;} xXFixesSetCursorNameReq;#define sz_xXFixesSetCursorNameReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Cursor cursor;} xXFixesGetCursorNameReq;#define sz_xXFixesGetCursorNameReq 8typedef struct {BYTE type; /* X_Reply */BYTE pad1;CARD16 sequenceNumber;CARD32 length;Atom atom;CARD16 nbytes;CARD16 pad2;CARD32 pad3;CARD32 pad4;CARD32 pad5;CARD32 pad6;} xXFixesGetCursorNameReply;#define sz_xXFixesGetCursorNameReply 32typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;} xXFixesGetCursorImageAndNameReq;#define sz_xXFixesGetCursorImageAndNameReq 4typedef struct {BYTE type; /* X_Reply */BYTE pad1;CARD16 sequenceNumber;CARD32 length;INT16 x;INT16 y;CARD16 width;CARD16 height;CARD16 xhot;CARD16 yhot;CARD32 cursorSerial;Atom cursorName;CARD16 nbytes;CARD16 pad;} xXFixesGetCursorImageAndNameReply;#define sz_xXFixesGetCursorImageAndNameReply 32typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Cursor source;Cursor destination;} xXFixesChangeCursorReq;#define sz_xXFixesChangeCursorReq 12typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Cursor source;CARD16 nbytes;CARD16 pad;} xXFixesChangeCursorByNameReq;#define sz_xXFixesChangeCursorByNameReq 12/*************** Version 3 ******************/typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Region source;Region destination;CARD16 left;CARD16 right;CARD16 top;CARD16 bottom;} xXFixesExpandRegionReq;#define sz_xXFixesExpandRegionReq 20/*************** Version 4.0 ******************/typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Window window;} xXFixesHideCursorReq;#define sz_xXFixesHideCursorReq sizeof(xXFixesHideCursorReq)typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Window window;} xXFixesShowCursorReq;#define sz_xXFixesShowCursorReq sizeof(xXFixesShowCursorReq)/*************** Version 5.0 ******************/#define Barrier CARD32typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Barrier barrier;Window window;INT16 x1;INT16 y1;INT16 x2;INT16 y2;CARD32 directions;CARD16 pad;CARD16 num_devices;/* array of CARD16 devices */} xXFixesCreatePointerBarrierReq;#define sz_xXFixesCreatePointerBarrierReq 28typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;Barrier barrier;} xXFixesDestroyPointerBarrierReq;#define sz_xXFixesDestroyPointerBarrierReq 8/*************** Version 6.0 ******************/typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;CARD32 disconnect_mode;} xXFixesSetClientDisconnectModeReq;#define sz_xXFixesSetClientDisconnectModeReq 8typedef struct {CARD8 reqType;CARD8 xfixesReqType;CARD16 length;} xXFixesGetClientDisconnectModeReq;#define sz_xXFixesGetClientDisconnectModeReq 4typedef struct {BYTE type; /* X_Reply */CARD8 pad0;CARD16 sequenceNumber;CARD32 length;CARD32 disconnect_mode;CARD32 pad1;CARD32 pad2;CARD32 pad3;CARD32 pad4;CARD32 pad5;} xXFixesGetClientDisconnectModeReply;#define sz_xXFixesGetClientDisconnectModeReply 32#undef Barrier#undef Region#undef Picture#undef Window#undef Drawable#undef Font#undef Pixmap#undef Cursor#undef Colormap#undef GContext#undef Atom#undef VisualID#undef Time#undef KeyCode#undef KeySym#endif /* _XFIXESPROTO_H_ */#]/#[fixesWire#define XFIXES_NAME "XFIXES"#define XFIXES_MAJOR 6#define XFIXES_MINOR 0/*************** Version 1 ******************/#define X_XFixesQueryVersion 0#define X_XFixesChangeSaveSet 1#define X_XFixesSelectSelectionInput 2#define X_XFixesSelectCursorInput 3#define X_XFixesGetCursorImage 4/*************** Version 2 ******************/#define X_XFixesCreateRegion 5#define X_XFixesCreateRegionFromBitmap 6#define X_XFixesCreateRegionFromWindow 7#define X_XFixesCreateRegionFromGC 8#define X_XFixesCreateRegionFromPicture 9#define X_XFixesDestroyRegion 10#define X_XFixesSetRegion 11#define X_XFixesCopyRegion 12#define X_XFixesUnionRegion 13#define X_XFixesIntersectRegion 14#define X_XFixesSubtractRegion 15#define X_XFixesInvertRegion 16#define X_XFixesTranslateRegion 17#define X_XFixesRegionExtents 18#define X_XFixesFetchRegion 19#define X_XFixesSetGCClipRegion 20#define X_XFixesSetWindowShapeRegion 21#define X_XFixesSetPictureClipRegion 22#define X_XFixesSetCursorName 23#define X_XFixesGetCursorName 24#define X_XFixesGetCursorImageAndName 25#define X_XFixesChangeCursor 26#define X_XFixesChangeCursorByName 27/*************** Version 3 ******************/#define X_XFixesExpandRegion 28/*************** Version 4 ******************/#define X_XFixesHideCursor 29#define X_XFixesShowCursor 30/*************** Version 5 ******************/#define X_XFixesCreatePointerBarrier 31#define X_XFixesDestroyPointerBarrier 32/*************** Version 6 ******************/#define X_XFixesSetClientDisconnectMode 33#define X_XFixesGetClientDisconnectMode 34#define XFixesNumberRequests (X_XFixesGetClientDisconnectMode+1)/* Selection events share one event number */#define XFixesSelectionNotify 0/* Within the selection, the 'subtype' field distinguishes */#define XFixesSetSelectionOwnerNotify 0#define XFixesSelectionWindowDestroyNotify 1#define XFixesSelectionClientCloseNotify 2#define XFixesSetSelectionOwnerNotifyMask (1L << 0)#define XFixesSelectionWindowDestroyNotifyMask (1L << 1)#define XFixesSelectionClientCloseNotifyMask (1L << 2)/* errors */#define BadRegion 0#define BadBarrier 1#define XFixesNumberErrors (BadBarrier+1)#define SaveSetNearest 0#define SaveSetRoot 1#define SaveSetMap 0#define SaveSetUnmap 1/*************** Version 2 ******************/#define WindowRegionBounding 0#define WindowRegionClip 1/*************** Version 5 ******************/#define BarrierPositiveX (1L << 0)#define BarrierPositiveY (1L << 1)#define BarrierNegativeX (1L << 2)#define BarrierNegativeY (1L << 3)/*************** Version 6 ******************//* The default server behaviour */#define XFixesClientDisconnectFlagDefault 0/* The server may disconnect this client to shut down */#define XFixesClientDisconnectFlagTerminate (1L << 0)#endif /* _XFIXESWIRE_H_ */## shapeConst#define SHAPENAME "SHAPE"#define SHAPE_MAJOR_VERSION 1 /* current version numbers */#define SHAPE_MINOR_VERSION 1#define ShapeSet 0#define ShapeUnion 1#define ShapeIntersect 2#define ShapeSubtract 3#define ShapeInvert 4#define ShapeBounding 0#define ShapeClip 1#define ShapeInput 2#define ShapeNotifyMask (1L << 0)#define ShapeNotify 0#define ShapeNumberEvents (ShapeNotify + 1)]#]#]#
# $XFree86: xc/include/extensions/xf86vmode.h,v 3.30 2001/05/07 20:09:50 mvojkovi Exp $###Copyright 1995 Kaleb S. KEITHLEY##Permission is hereby granted, free of charge, to any person obtaining#a copy of this software and associated documentation files (the#"Software"), to deal in the Software without restriction, including#without limitation the rights to use, copy, modify, merge, publish,#distribute, sublicense, and/or sell copies of the Software, and to#permit persons to whom the Software is furnished to do so, subject to#the following conditions:##The above copyright notice and this permission notice shall be#included in all copies or substantial portions of the Software.##THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.#IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES#OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,#ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR#OTHER DEALINGS IN THE SOFTWARE.##Except as contained in this notice, the name of Kaleb S. KEITHLEY#shall not be used in advertising or otherwise to promote the sale, use#or other dealings in this Software without prior written authorization#from Kaleb S. KEITHLEY### $Xorg: xf86vmode.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $# THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATIONimportx, xlibconstlibXxf86vm* = "libXxf86vm.so"typePINT32* = ptr int32constX_XF86VidModeQueryVersion* = 0X_XF86VidModeGetModeLine* = 1X_XF86VidModeModModeLine* = 2X_XF86VidModeSwitchMode* = 3X_XF86VidModeGetMonitor* = 4X_XF86VidModeLockModeSwitch* = 5X_XF86VidModeGetAllModeLines* = 6X_XF86VidModeAddModeLine* = 7X_XF86VidModeDeleteModeLine* = 8X_XF86VidModeValidateModeLine* = 9X_XF86VidModeSwitchToMode* = 10X_XF86VidModeGetViewPort* = 11X_XF86VidModeSetViewPort* = 12 # new for version 2.x of this extensionX_XF86VidModeGetDotClocks* = 13X_XF86VidModeSetClientVersion* = 14X_XF86VidModeSetGamma* = 15X_XF86VidModeGetGamma* = 16X_XF86VidModeGetGammaRamp* = 17X_XF86VidModeSetGammaRamp* = 18X_XF86VidModeGetGammaRampSize* = 19X_XF86VidModeGetPermissions* = 20CLKFLAG_PROGRAMABLE* = 1when defined(XF86VIDMODE_EVENTS):constXF86VidModeNotify* = 0XF86VidModeNumberEvents* = (XF86VidModeNotify + 1)XF86VidModeNotifyMask* = 0x00000001XF86VidModeNonEvent* = 0XF86VidModeModeChange* = 1else:constXF86VidModeNumberEvents* = 0constXF86VidModeBadClock* = 0XF86VidModeBadHTimings* = 1XF86VidModeBadVTimings* = 2XF86VidModeModeUnsuitable* = 3XF86VidModeExtensionDisabled* = 4XF86VidModeClientNotLocal* = 5XF86VidModeZoomLocked* = 6XF86VidModeNumberErrors* = (XF86VidModeZoomLocked + 1)XF86VM_READ_PERMISSION* = 1XF86VM_WRITE_PERMISSION* = 2typePXF86VidModeModeLine* = ptr XF86VidModeModeLineXF86VidModeModeLine*{.final.} = objecthdisplay*: cushorthsyncstart*: cushorthsyncend*: cushorthtotal*: cushorthskew*: cushortvdisplay*: cushortvsyncstart*: cushortvsyncend*: cushortvtotal*: cushortflags*: cuintprivsize*: cintc_private*: PINT32PPPXF86VidModeModeInfo* = ptr PPXF86VidModeModeInfoPPXF86VidModeModeInfo* = ptr PXF86VidModeModeInfoPXF86VidModeModeInfo* = ptr XF86VidModeModeInfoXF86VidModeModeInfo*{.final.} = objectdotclock*: cuinthdisplay*: cushorthsyncstart*: cushorthsyncend*: cushorthtotal*: cushorthskew*: cushortvdisplay*: cushortvsyncstart*: cushortvsyncend*: cushortvtotal*: cushortflags*: cuintprivsize*: cintc_private*: PINT32PXF86VidModeSyncRange* = ptr XF86VidModeSyncRangeXF86VidModeSyncRange*{.final.} = objecthi*: cfloatlo*: cfloatPXF86VidModeMonitor* = ptr XF86VidModeMonitorXF86VidModeMonitor*{.final.} = objectvendor*: cstringmodel*: cstringEMPTY*: cfloatnhsync*: charhsync*: PXF86VidModeSyncRangenvsync*: charvsync*: PXF86VidModeSyncRangePXF86VidModeNotifyEvent* = ptr XF86VidModeNotifyEventXF86VidModeNotifyEvent*{.final.} = objecttheType*: cint # of eventserial*: culong # # of last request processed by serversend_event*: XBool # true if this came from a SendEvent reqdisplay*: PDisplay # Display the event was read fromroot*: Window # root window of event screenstate*: cint # What happenedkind*: cint # What happenedforced*: XBool # extents of new regiontime*: Time # event timestampPXF86VidModeGamma* = ptr XF86VidModeGammaXF86VidModeGamma*{.final.} = objectred*: cfloat # Red Gamma valuegreen*: cfloat # Green Gamma valueblue*: cfloat # Blue Gamma value{.deprecated: [TXF86VidModeModeLine: XF86VidModeModeLine].}{.deprecated: [TXF86VidModeModeInfo: XF86VidModeModeInfo].}{.deprecated: [TXF86VidModeSyncRange: XF86VidModeSyncRange].}{.deprecated: [TXF86VidModeMonitor: XF86VidModeMonitor].}{.deprecated: [TXF86VidModeNotifyEvent: XF86VidModeNotifyEvent].}{.deprecated: [TXF86VidModeGamma: XF86VidModeGamma].}when defined(MACROS):proc XF86VidModeSelectNextMode*(disp: PDisplay, scr: cint): XBoolproc XF86VidModeSelectPrevMode*(disp: PDisplay, scr: cint): XBoolproc XF86VidModeQueryVersion*(dpy: PDisplay, majorVersion: Pcint,minorVersion: Pcint): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeQueryExtension*(dpy: PDisplay, event_base: Pcint,error_base: Pcint): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeSetClientVersion*(dpy: PDisplay): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeGetModeLine*(dpy: PDisplay, screen: cint, dotclock: Pcint,modeline: PXF86VidModeModeLine): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeGetAllModeLines*(dpy: PDisplay, screen: cint, modecount: Pcint,modelinesPtr: PPPXF86VidModeModeInfo): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeAddModeLine*(dpy: PDisplay, screen: cint,new_modeline: PXF86VidModeModeInfo,after_modeline: PXF86VidModeModeInfo): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeDeleteModeLine*(dpy: PDisplay, screen: cint,modeline: PXF86VidModeModeInfo): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeModModeLine*(dpy: PDisplay, screen: cint,modeline: PXF86VidModeModeLine): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeValidateModeLine*(dpy: PDisplay, screen: cint,modeline: PXF86VidModeModeInfo): Status{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeSwitchMode*(dpy: PDisplay, screen: cint, zoom: cint): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeSwitchToMode*(dpy: PDisplay, screen: cint,modeline: PXF86VidModeModeInfo): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeLockModeSwitch*(dpy: PDisplay, screen: cint, lock: cint): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeGetMonitor*(dpy: PDisplay, screen: cint,monitor: PXF86VidModeMonitor): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeGetViewPort*(dpy: PDisplay, screen: cint, x_return: Pcint,y_return: Pcint): XBool{.cdecl, dynlib: libXxf86vm,importc.}proc XF86VidModeSetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeGetDotClocks*(dpy: PDisplay, screen: cint, flags_return: Pcint,number_of_clocks_return: Pcint,max_dot_clock_return: Pcint, clocks_return: PPcint): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeGetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeSetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeSetGammaRamp*(dpy: PDisplay, screen: cint, size: cint,red_array: Pcushort, green_array: Pcushort,blue_array: Pcushort): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeGetGammaRamp*(dpy: PDisplay, screen: cint, size: cint,red_array: Pcushort, green_array: Pcushort,blue_array: Pcushort): XBool{.cdecl,dynlib: libXxf86vm, importc.}proc XF86VidModeGetGammaRampSize*(dpy: PDisplay, screen: cint, size: Pcint): XBool{.cdecl, dynlib: libXxf86vm, importc.}proc XF86VidModeGetPermissions*(dpy: PDisplay, screen: cint, permissions: Pcint): XBool{.cdecl, dynlib: libXxf86vm, importc.}# implementation#when defined(MACROS):proc XF86VidModeSelectNextMode(disp: PDisplay, scr: cint): XBool =XF86VidModeSwitchMode(disp, scr, 1)proc XF86VidModeSelectPrevMode(disp: PDisplay, scr: cint): XBool =XF86VidModeSwitchMode(disp, scr, - 1)
## Copyright (c) 1999 XFree86 Inc## $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $importx, xlibconstlibXxf86dga* = "libXxf86dga.so"#type# cfloat* = float32# $XFree86: xc/include/extensions/xf86dga1.h,v 1.2 1999/04/17 07:05:41 dawes Exp $###Copyright (c) 1995 Jon Tombs#Copyright (c) 1995 XFree86 Inc###************************************************************************## THIS IS THE OLD DGA API AND IS OBSOLETE. PLEASE DO NOT USE IT ANYMORE##************************************************************************typePPcchar* = ptr ptr cstringconstX_XF86DGAQueryVersion* = 0X_XF86DGAGetVideoLL* = 1X_XF86DGADirectVideo* = 2X_XF86DGAGetViewPortSize* = 3X_XF86DGASetViewPort* = 4X_XF86DGAGetVidPage* = 5X_XF86DGASetVidPage* = 6X_XF86DGAInstallColormap* = 7X_XF86DGAQueryDirectVideo* = 8X_XF86DGAViewPortChanged* = 9XF86DGADirectPresent* = 0x00000001XF86DGADirectGraphics* = 0x00000002XF86DGADirectMouse* = 0x00000004XF86DGADirectKeyb* = 0x00000008XF86DGAHasColormap* = 0x00000100XF86DGADirectColormap* = 0x00000200proc XF86DGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint,minorVersion: Pcint): XBool{.cdecl,dynlib: libXxf86dga, importc.}proc XF86DGAQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): XBool{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAGetVideoLL*(dpy: PDisplay, screen: cint, base_addr: Pcint,width: Pcint, bank_size: Pcint, ram_size: Pcint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAGetVideo*(dpy: PDisplay, screen: cint, base_addr: PPcchar,width: Pcint, bank_size: Pcint, ram_size: Pcint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGADirectVideo*(dpy: PDisplay, screen: cint, enable: cint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGADirectVideoLL*(dpy: PDisplay, screen: cint, enable: cint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAGetViewPortSize*(dpy: PDisplay, screen: cint, width: Pcint,height: Pcint): Status{.cdecl,dynlib: libXxf86dga, importc.}proc XF86DGASetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAGetVidPage*(dpy: PDisplay, screen: cint, vid_page: Pcint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGASetVidPage*(dpy: PDisplay, screen: cint, vid_page: cint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAInstallColormap*(dpy: PDisplay, screen: cint, Colormap: Colormap): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAForkApp*(screen: cint): cint{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAQueryDirectVideo*(dpy: PDisplay, screen: cint, flags: Pcint): Status{.cdecl, dynlib: libXxf86dga, importc.}proc XF86DGAViewPortChanged*(dpy: PDisplay, screen: cint, n: cint): XBool{.cdecl, dynlib: libXxf86dga, importc.}constX_XDGAQueryVersion* = 0 # 1 through 9 are in xf86dga1.pp# 10 and 11 are reserved to avoid conflicts with rogue DGA extensionsX_XDGAQueryModes* = 12X_XDGASetMode* = 13X_XDGASetViewport* = 14X_XDGAInstallColormap* = 15X_XDGASelectInput* = 16X_XDGAFillRectangle* = 17X_XDGACopyArea* = 18X_XDGACopyTransparentArea* = 19X_XDGAGetViewportStatus* = 20X_XDGASync* = 21X_XDGAOpenFramebuffer* = 22X_XDGACloseFramebuffer* = 23X_XDGASetClientVersion* = 24X_XDGAChangePixmapMode* = 25X_XDGACreateColormap* = 26XDGAConcurrentAccess* = 0x00000001XDGASolidFillRect* = 0x00000002XDGABlitRect* = 0x00000004XDGABlitTransRect* = 0x00000008XDGAPixmap* = 0x00000010XDGAInterlaced* = 0x00010000XDGADoublescan* = 0x00020000XDGAFlipImmediate* = 0x00000001XDGAFlipRetrace* = 0x00000002XDGANeedRoot* = 0x00000001XF86DGANumberEvents* = 7XDGAPixmapModeLarge* = 0XDGAPixmapModeSmall* = 1XF86DGAClientNotLocal* = 0XF86DGANoDirectVideoMode* = 1XF86DGAScreenNotActive* = 2XF86DGADirectNotActivated* = 3XF86DGAOperationNotSupported* = 4XF86DGANumberErrors* = (XF86DGAOperationNotSupported + 1)typePXDGAMode* = ptr XDGAModeXDGAMode*{.final.} = objectnum*: cint # A unique identifier for the mode (num > 0)name*: cstring # name of mode given in the XF86ConfigverticalRefresh*: cfloatflags*: cint # DGA_CONCURRENT_ACCESS, etc...imageWidth*: cint # linear accessible portion (pixels)imageHeight*: cintpixmapWidth*: cint # Xlib accessible portion (pixels)pixmapHeight*: cint # both fields ignored if no concurrent accessbytesPerScanline*: cintbyteOrder*: cint # MSBFirst, LSBFirstdepth*: cintbitsPerPixel*: cintredMask*: culonggreenMask*: culongblueMask*: culongvisualClass*: cshortviewportWidth*: cintviewportHeight*: cintxViewportStep*: cint # viewport position granularityyViewportStep*: cintmaxViewportX*: cint # max viewport originmaxViewportY*: cintviewportFlags*: cint # types of page flipping possiblereserved1*: cintreserved2*: cintPXDGADevice* = ptr XDGADeviceXDGADevice*{.final.} = objectmode*: XDGAModedata*: Pcucharpixmap*: PixmapPXDGAButtonEvent* = ptr XDGAButtonEventXDGAButtonEvent*{.final.} = objecttheType*: cintserial*: culongdisplay*: PDisplayscreen*: cinttime*: Timestate*: cuintbutton*: cuintPXDGAKeyEvent* = ptr XDGAKeyEventXDGAKeyEvent*{.final.} = objecttheType*: cintserial*: culongdisplay*: PDisplayscreen*: cinttime*: Timestate*: cuintkeycode*: cuintPXDGAMotionEvent* = ptr XDGAMotionEventXDGAMotionEvent*{.final.} = objecttheType*: cintserial*: culongdisplay*: PDisplayscreen*: cinttime*: Timestate*: cuintdx*: cintdy*: cintPXDGAEvent* = ptr XDGAEventXDGAEvent*{.final.} = objectpad*: array[0..23, clong] # sorry you have to cast if you want access# Case LongInt Of# 0 : (_type : cint);# 1 : (xbutton : XDGAButtonEvent);# 2 : (xkey : XDGAKeyEvent);# 3 : (xmotion : XDGAMotionEvent);# 4 : (pad : Array[0..23] Of clong);{.deprecated: [TXDGAMode: XDGAMode].}{.deprecated: [TXDGADevice: XDGADevice].}{.deprecated: [TXDGAButtonEvent: XDGAButtonEvent].}{.deprecated: [TXDGAKeyEvent: XDGAKeyEvent].}{.deprecated: [TXDGAMotionEvent: XDGAMotionEvent].}{.deprecated: [TXDGAEvent: XDGAEvent].}proc XDGAQueryExtension*(dpy: PDisplay, eventBase: Pcint, erroBase: Pcint): XBool{.cdecl, dynlib: libXxf86dga, importc.}proc XDGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): XBool{.cdecl, dynlib: libXxf86dga, importc.}proc XDGAQueryModes*(dpy: PDisplay, screen: cint, num: Pcint): PXDGAMode{.cdecl,dynlib: libXxf86dga, importc.}proc XDGASetMode*(dpy: PDisplay, screen: cint, mode: cint): PXDGADevice{.cdecl,dynlib: libXxf86dga, importc.}proc XDGAOpenFramebuffer*(dpy: PDisplay, screen: cint): XBool{.cdecl,dynlib: libXxf86dga, importc.}proc XDGACloseFramebuffer*(dpy: PDisplay, screen: cint){.cdecl,dynlib: libXxf86dga, importc.}proc XDGASetViewport*(dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint){.cdecl, dynlib: libXxf86dga, importc.}proc XDGAInstallColormap*(dpy: PDisplay, screen: cint, cmap: Colormap){.cdecl,dynlib: libXxf86dga, importc.}proc XDGACreateColormap*(dpy: PDisplay, screen: cint, device: PXDGADevice,alloc: cint): Colormap{.cdecl, dynlib: libXxf86dga,importc.}proc XDGASelectInput*(dpy: PDisplay, screen: cint, event_mask: clong){.cdecl,dynlib: libXxf86dga, importc.}proc XDGAFillRectangle*(dpy: PDisplay, screen: cint, x: cint, y: cint,width: cuint, height: cuint, color: culong){.cdecl,dynlib: libXxf86dga, importc.}proc XDGACopyArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint,width: cuint, height: cuint, dstx: cint, dsty: cint){.cdecl,dynlib: libXxf86dga, importc.}proc XDGACopyTransparentArea*(dpy: PDisplay, screen: cint, srcx: cint,srcy: cint, width: cuint, height: cuint,dstx: cint, dsty: cint, key: culong){.cdecl,dynlib: libXxf86dga, importc.}proc XDGAGetViewportStatus*(dpy: PDisplay, screen: cint): cint{.cdecl,dynlib: libXxf86dga, importc.}proc XDGASync*(dpy: PDisplay, screen: cint){.cdecl, dynlib: libXxf86dga, importc.}proc XDGASetClientVersion*(dpy: PDisplay): XBool{.cdecl, dynlib: libXxf86dga,importc.}proc XDGAChangePixmapMode*(dpy: PDisplay, screen: cint, x: Pcint, y: Pcint,mode: cint){.cdecl, dynlib: libXxf86dga, importc.}proc XDGAKeyEventToXKeyEvent*(dk: PXDGAKeyEvent, xk: PXKeyEvent){.cdecl,dynlib: libXxf86dga, importc.}# implementation
import xlibconstCOMPOSITE_NAME* = "Composite"COMPOSITE_MAJOR* = 0COMPOSITE_MINOR* = 4CompositeRedirectAutomatic* = 0CompositeRedirectManual* = 1X_CompositeQueryVersion* = 0X_CompositeRedirectWindow* = 1X_CompositeRedirectSubwindows* = 2X_CompositeUnredirectWindow* = 3X_CompositeUnredirectSubwindows* = 4X_CompositeCreateRegionFromBorderClip* = 5X_CompositeNameWindowPixmap* = 6X_CompositeGetOverlayWindow* = 7X_CompositeReleaseOverlayWindow* = 8CompositeNumberRequests* = 9 #(X_CompositeReleaseOverlayWindow + 1)CompositeNumberEvents* = 0XCOMPOSITE_MAJOR* = 0#COMPOSITE_MAJORXCOMPOSITE_MINOR* = 4#COMPOSITE_MINORXCOMPOSITE_REVISION* = 2XCOMPOSITE_VERSION* = ((XCOMPOSITE_MAJOR * 10000) + (XCOMPOSITE_MINOR * 100) + (XCOMPOSITE_REVISION))#int XCompositeVersion (void);proc XCompositeQueryExtension*( dpy: ptr Display, event_base_return: ptr int, error_base_return: ptr int): bool {.importc, cdecl.}# Status XCompositeQueryVersion (Display *dpy,# int *major_version_return,# int *minor_version_return);# void# XCompositeRedirectWindow (Display *dpy, Window window, int update);# void# XCompositeRedirectSubwindows (Display *dpy, Window window, int update);# void# XCompositeUnredirectWindow (Display *dpy, Window window, int update);# void# XCompositeUnredirectSubwindows (Display *dpy, Window window, int update);# XserverRegion# XCompositeCreateRegionFromBorderClip (Display *dpy, Window window);# Pixmap# XCompositeNameWindowPixmap (Display *dpy, Window window);# Window# XCompositeGetOverlayWindow (Display *dpy, Window window);# void# XCompositeReleaseOverlayWindow (Display *dpy, Window window);
importx, xlib#const# libX11* = "X11"## Automatically converted by H2Pas 0.99.15 from xcms.h# The following command line parameters were used:# -p# -T# -S# -d# -c# xcms.h#constXcmsFailure* = 0XcmsSuccess* = 1XcmsSuccessWithCompression* = 2typePXcmsColorFormat* = ptr XcmsColorFormatXcmsColorFormat* = int32{.deprecated: [TXcmsColorFormat: XcmsColorFormat].}proc XcmsUndefinedFormat*(): XcmsColorFormatproc XcmsCIEXYZFormat*(): XcmsColorFormatproc XcmsCIEuvYFormat*(): XcmsColorFormatproc XcmsCIExyYFormat*(): XcmsColorFormatproc XcmsCIELabFormat*(): XcmsColorFormatproc XcmsCIELuvFormat*(): XcmsColorFormatproc XcmsTekHVCFormat*(): XcmsColorFormatproc XcmsRGBFormat*(): XcmsColorFormatproc XcmsRGBiFormat*(): XcmsColorFormatconstXcmsInitNone* = 0x00000000XcmsInitSuccess* = 0x00000001XcmsInitFailure* = 0x000000FFtypePXcmsFloat* = ptr XcmsFloatXcmsFloat* = float64PXcmsRGB* = ptr XcmsRGBXcmsRGB*{.final.} = objectred*: int16green*: int16blue*: int16PXcmsRGBi* = ptr XcmsRGBiXcmsRGBi*{.final.} = objectred*: XcmsFloatgreen*: XcmsFloatblue*: XcmsFloatPXcmsCIEXYZ* = ptr XcmsCIEXYZXcmsCIEXYZ*{.final.} = objectX*: XcmsFloatY*: XcmsFloatZ*: XcmsFloatPXcmsCIEuvY* = ptr XcmsCIEuvYXcmsCIEuvY*{.final.} = objectu_prime*: XcmsFloatv_prime*: XcmsFloatY*: XcmsFloatPXcmsCIExyY* = ptr XcmsCIExyYXcmsCIExyY*{.final.} = objectx*: XcmsFloaty*: XcmsFloattheY*: XcmsFloatPXcmsCIELab* = ptr XcmsCIELabXcmsCIELab*{.final.} = objectL_star*: XcmsFloata_star*: XcmsFloatb_star*: XcmsFloatPXcmsCIELuv* = ptr XcmsCIELuvXcmsCIELuv*{.final.} = objectL_star*: XcmsFloatu_star*: XcmsFloatv_star*: XcmsFloatPXcmsTekHVC* = ptr XcmsTekHVCXcmsTekHVC*{.final.} = objectH*: XcmsFloatV*: XcmsFloatC*: XcmsFloatPXcmsPad* = ptr XcmsPadXcmsPad*{.final.} = objectpad0*: XcmsFloatpad1*: XcmsFloatpad2*: XcmsFloatpad3*: XcmsFloatPXcmsColor* = ptr XcmsColorXcmsColor*{.final.} = object # spec : record# case longint of# 0 : ( RGB : XcmsRGB );# 1 : ( RGBi : XcmsRGBi );# 2 : ( CIEXYZ : XcmsCIEXYZ );# 3 : ( CIEuvY : XcmsCIEuvY );# 4 : ( CIExyY : XcmsCIExyY );# 5 : ( CIELab : XcmsCIELab );# 6 : ( CIELuv : XcmsCIELuv );# 7 : ( TekHVC : XcmsTekHVC );# 8 : ( Pad : XcmsPad );# end;pad*: XcmsPadpixel*: int32format*: XcmsColorFormatPXcmsPerScrnInfo* = ptr XcmsPerScrnInfoXcmsPerScrnInfo*{.final.} = objectscreenWhitePt*: XcmsColorfunctionSet*: XPointerscreenData*: XPointerstate*: int8pad*: array[0..2, char]PXcmsCCC* = ptr XcmsCCCXcmsCompressionProc* = proc (para1: PXcmsCCC, para2: PXcmsColor,para3: int32, para4: int32, para5: PBool): Status{.cdecl.}XcmsWhiteAdjustProc* = proc (para1: PXcmsCCC, para2: PXcmsColor,para3: PXcmsColor, para4: XcmsColorFormat,para5: PXcmsColor, para6: int32, para7: PBool): Status{.cdecl.}XcmsCCC*{.final.} = objectdpy*: PDisplayscreenNumber*: int32visual*: PVisualclientWhitePt*: XcmsColorgamutCompProc*: XcmsCompressionProcgamutCompClientData*: XPointerwhitePtAdjProc*: XcmsWhiteAdjustProcwhitePtAdjClientData*: XPointerpPerScrnInfo*: PXcmsPerScrnInfoPXcmsCCCRec* = ptr XcmsCCCRecXcmsCCCRec* = XcmsCCCXcmsScreenInitProc* = proc (para1: PDisplay, para2: int32,para3: PXcmsPerScrnInfo): Status{.cdecl.}XcmsScreenFreeProc* = proc (para1: XPointer){.cdecl.}XcmsConversionProc* = proc (){.cdecl.}PXcmsFuncListPtr* = ptr XcmsFuncListPtrXcmsFuncListPtr* = XcmsConversionProcXcmsParseStringProc* = proc (para1: cstring, para2: PXcmsColor): int32{.cdecl.}PXcmsColorSpace* = ptr XcmsColorSpaceXcmsColorSpace*{.final.} = objectprefix*: cstringid*: XcmsColorFormatparseString*: XcmsParseStringProcto_CIEXYZ*: XcmsFuncListPtrfrom_CIEXYZ*: XcmsFuncListPtrinverse_flag*: int32PXcmsFunctionSet* = ptr XcmsFunctionSetXcmsFunctionSet*{.final.} = object # error# extern Status XcmsAddColorSpace (# in declaration at line 323DDColorSpaces*: ptr PXcmsColorSpacescreenInitProc*: XcmsScreenInitProcscreenFreeProc*: XcmsScreenFreeProc{.deprecated: [TXcmsRGB: XcmsRGB].}{.deprecated: [TXcmsRGBi: XcmsRGBi].}{.deprecated: [TXcmsCIEXYZ: XcmsCIEXYZ].}{.deprecated: [TXcmsCIEuvY: XcmsCIEuvY].}{.deprecated: [TXcmsCIExyY: XcmsCIExyY].}{.deprecated: [TXcmsCIELab: XcmsCIELab].}{.deprecated: [TXcmsCIELuv: XcmsCIELuv].}{.deprecated: [TXcmsTekHVC: XcmsTekHVC].}{.deprecated: [TXcmsPad: XcmsPad].}{.deprecated: [TXcmsColor: XcmsColor].}{.deprecated: [TXcmsPerScrnInfo: XcmsPerScrnInfo].}{.deprecated: [TXcmsCompressionProc: XcmsCompressionProc].}{.deprecated: [TXcmsWhiteAdjustProc: XcmsWhiteAdjustProc].}{.deprecated: [TXcmsCCC: XcmsCCC].}{.deprecated: [TXcmsCCCRec: XcmsCCCRec].}{.deprecated: [TXcmsScreenInitProc: XcmsScreenInitProc].}{.deprecated: [TXcmsScreenFreeProc: XcmsScreenFreeProc].}{.deprecated: [TXcmsConversionProc: XcmsConversionProc].}{.deprecated: [TXcmsFuncListPtr: XcmsFuncListPtr].}{.deprecated: [TXcmsParseStringProc: XcmsParseStringProc].}{.deprecated: [TXcmsColorSpace: XcmsColorSpace].}{.deprecated: [TXcmsFunctionSet: XcmsFunctionSet].}proc XcmsAddFunctionSet*(para1: PXcmsFunctionSet): Status{.cdecl,dynlib: libX11, importc.}proc XcmsAllocColor*(para1: PDisplay, para2: Colormap, para3: PXcmsColor,para4: XcmsColorFormat): Status{.cdecl, dynlib: libX11,importc.}proc XcmsAllocNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring,para4: PXcmsColor, para5: PXcmsColor,para6: XcmsColorFormat): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCCCOfColormap*(para1: PDisplay, para2: Colormap): XcmsCCC{.cdecl,dynlib: libX11, importc.}proc XcmsCIELabClipab*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCIELabClipL*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCIELabClipLab*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCIELabQueryMaxC*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsCIELabQueryMaxL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsCIELabQueryMaxLC*(para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIELabQueryMinL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsCIELabToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIELabWhiteShiftColors*(para1: XcmsCCC, para2: PXcmsColor,para3: PXcmsColor, para4: XcmsColorFormat,para5: PXcmsColor, para6: int32, para7: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIELuvClipL*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCIELuvClipLuv*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCIELuvClipuv*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCIELuvQueryMaxC*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsCIELuvQueryMaxL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsCIELuvQueryMaxLC*(para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIELuvQueryMinL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsCIELuvToCIEuvY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIELuvWhiteShiftColors*(para1: XcmsCCC, para2: PXcmsColor,para3: PXcmsColor, para4: XcmsColorFormat,para5: PXcmsColor, para6: int32, para7: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEXYZToCIELab*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEXYZToCIEuvY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEXYZToCIExyY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEXYZToRGBi*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEuvYToCIELuv*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEuvYToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIEuvYToTekHVC*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsCIExyYToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsClientWhitePointOfCCC*(para1: XcmsCCC): PXcmsColor{.cdecl,dynlib: libX11, importc.}proc XcmsConvertColors*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: XcmsColorFormat, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsCreateCCC*(para1: PDisplay, para2: int32, para3: PVisual,para4: PXcmsColor, para5: XcmsCompressionProc,para6: XPointer, para7: XcmsWhiteAdjustProc,para8: XPointer): XcmsCCC{.cdecl, dynlib: libX11, importc.}proc XcmsDefaultCCC*(para1: PDisplay, para2: int32): XcmsCCC{.cdecl,dynlib: libX11, importc.}proc XcmsDisplayOfCCC*(para1: XcmsCCC): PDisplay{.cdecl, dynlib: libX11,importc.}proc XcmsFormatOfPrefix*(para1: cstring): XcmsColorFormat{.cdecl,dynlib: libX11, importc.}proc XcmsFreeCCC*(para1: XcmsCCC){.cdecl, dynlib: libX11, importc.}proc XcmsLookupColor*(para1: PDisplay, para2: Colormap, para3: cstring,para4: PXcmsColor, para5: PXcmsColor,para6: XcmsColorFormat): Status{.cdecl, dynlib: libX11,importc.}proc XcmsPrefixOfFormat*(para1: XcmsColorFormat): cstring{.cdecl,dynlib: libX11, importc.}proc XcmsQueryBlack*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsQueryBlue*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsQueryColor*(para1: PDisplay, para2: Colormap, para3: PXcmsColor,para4: XcmsColorFormat): Status{.cdecl, dynlib: libX11,importc.}proc XcmsQueryColors*(para1: PDisplay, para2: Colormap, para3: PXcmsColor,para4: int32, para5: XcmsColorFormat): Status{.cdecl,dynlib: libX11, importc.}proc XcmsQueryGreen*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsQueryRed*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsQueryWhite*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsRGBiToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsRGBiToRGB*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsRGBToRGBi*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsScreenNumberOfCCC*(para1: XcmsCCC): int32{.cdecl, dynlib: libX11,importc.}proc XcmsScreenWhitePointOfCCC*(para1: XcmsCCC): PXcmsColor{.cdecl,dynlib: libX11, importc.}proc XcmsSetCCCOfColormap*(para1: PDisplay, para2: Colormap, para3: XcmsCCC): XcmsCCC{.cdecl, dynlib: libX11, importc.}proc XcmsSetCompressionProc*(para1: XcmsCCC, para2: XcmsCompressionProc,para3: XPointer): XcmsCompressionProc{.cdecl,dynlib: libX11, importc.}proc XcmsSetWhiteAdjustProc*(para1: XcmsCCC, para2: XcmsWhiteAdjustProc,para3: XPointer): XcmsWhiteAdjustProc{.cdecl,dynlib: libX11, importc.}proc XcmsSetWhitePoint*(para1: XcmsCCC, para2: PXcmsColor): Status{.cdecl,dynlib: libX11, importc.}proc XcmsStoreColor*(para1: PDisplay, para2: Colormap, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsStoreColors*(para1: PDisplay, para2: Colormap, para3: PXcmsColor,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsTekHVCClipC*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsTekHVCClipV*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsTekHVCClipVC*(para1: XcmsCCC, para2: PXcmsColor, para3: int32,para4: int32, para5: PBool): Status{.cdecl,dynlib: libX11, importc.}proc XcmsTekHVCQueryMaxC*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsTekHVCQueryMaxV*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsTekHVCQueryMaxVC*(para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor): Status{.cdecl, dynlib: libX11, importc.}proc XcmsTekHVCQueryMaxVSamples*(para1: XcmsCCC, para2: XcmsFloat,para3: PXcmsColor, para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsTekHVCQueryMinV*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat,para4: PXcmsColor): Status{.cdecl, dynlib: libX11,importc.}proc XcmsTekHVCToCIEuvY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor,para4: int32): Status{.cdecl, dynlib: libX11, importc.}proc XcmsTekHVCWhiteShiftColors*(para1: XcmsCCC, para2: PXcmsColor,para3: PXcmsColor, para4: XcmsColorFormat,para5: PXcmsColor, para6: int32, para7: PBool): Status{.cdecl, dynlib: libX11, importc.}proc XcmsVisualOfCCC*(para1: XcmsCCC): PVisual{.cdecl, dynlib: libX11, importc.}# implementationproc XcmsUndefinedFormat(): XcmsColorFormat =result = 0x00000000'i32proc XcmsCIEXYZFormat(): XcmsColorFormat =result = 0x00000001'i32proc XcmsCIEuvYFormat(): XcmsColorFormat =result = 0x00000002'i32proc XcmsCIExyYFormat(): XcmsColorFormat =result = 0x00000003'i32proc XcmsCIELabFormat(): XcmsColorFormat =result = 0x00000004'i32proc XcmsCIELuvFormat(): XcmsColorFormat =result = 0x00000005'i32proc XcmsTekHVCFormat(): XcmsColorFormat =result = 0x00000006'i32proc XcmsRGBFormat(): XcmsColorFormat =result = 0x80000000'i32proc XcmsRGBiFormat(): XcmsColorFormat =result = 0x80000001'i32#when defined(MACROS):proc DisplayOfCCC(ccc: XcmsCCC): PDisplay =result = ccc.dpyproc ScreenNumberOfCCC(ccc: XcmsCCC): int32 =result = ccc.screenNumberproc VisualOfCCC(ccc: XcmsCCC): PVisual =result = ccc.visualproc ClientWhitePointOfCCC(ccc: var XcmsCCC): ptr XcmsColor =result = addr(ccc.clientWhitePt)proc ScreenWhitePointOfCCC(ccc: var XcmsCCC): ptr XcmsColor =result = addr(ccc.pPerScrnInfo.screenWhitePt)proc FunctionSetOfCCC(ccc: XcmsCCC): Xpointer =result = ccc.pPerScrnInfo.functionSet
# {.deadCodeElim: on.}# type# xcb_extension_t* {.bycopy.} = object# name*: cstring# global_id*: cint# const# XCB_BIGREQUESTS_MAJOR_VERSION* = 0# XCB_BIGREQUESTS_MINOR_VERSION* = 0# var xcb_big_requests_id*: xcb_extension_t# ## *# ## @brief xcb_big_requests_enable_cookie_t# ### type# xcb_big_requests_enable_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_big_requests_enable.# const# XCB_BIG_REQUESTS_ENABLE* = 0# ## *# ## @brief xcb_big_requests_enable_request_t# ### type# xcb_big_requests_enable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_big_requests_enable_reply_t# ### type# xcb_big_requests_enable_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# maximum_request_length*: uint32# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### #proc xcb_big_requests_enable*(c: ptr xcb_connection_t): xcb_big_requests_enable_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### #proc xcb_big_requests_enable_unchecked*(c: ptr xcb_connection_t): xcb_big_requests_enable_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_big_requests_enable_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### # proc xcb_big_requests_enable_reply*(c: ptr xcb_connection_t; cookie: xcb_big_requests_enable_cookie_t; ## *<# # e: ptr ptr xcb_generic_error_t): ptr xcb_big_requests_enable_reply_t# ## *# ## @}# ### ### ## This file generated automatically from composite.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Composite_API XCB Composite API# ## @brief Composite XCB Protocol Implementation.# ## @{# ### import# xcb, xproto, xfixes# const# XCB_COMPOSITE_MAJOR_VERSION* = 0# XCB_COMPOSITE_MINOR_VERSION* = 4# var xcb_composite_id*: xcb_extension_t# type# xcb_composite_redirect_t* = enum# XCB_COMPOSITE_REDIRECT_AUTOMATIC = 0, XCB_COMPOSITE_REDIRECT_MANUAL = 1# ## *# ## @brief xcb_composite_query_version_cookie_t# ### type# xcb_composite_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_composite_query_version.# const# XCB_COMPOSITE_QUERY_VERSION* = 0# ## *# ## @brief xcb_composite_query_version_request_t# ### type# xcb_composite_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint32# client_minor_version*: uint32# ## *# ## @brief xcb_composite_query_version_reply_t# ### type# xcb_composite_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# pad1*: array[16, uint8]# ## * Opcode for xcb_composite_redirect_window.# const# XCB_COMPOSITE_REDIRECT_WINDOW* = 1# ## *# ## @brief xcb_composite_redirect_window_request_t# ### type# xcb_composite_redirect_window_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# update*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_composite_redirect_subwindows.# const# XCB_COMPOSITE_REDIRECT_SUBWINDOWS* = 2# ## *# ## @brief xcb_composite_redirect_subwindows_request_t# ### type# xcb_composite_redirect_subwindows_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# update*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_composite_unredirect_window.# const# XCB_COMPOSITE_UNREDIRECT_WINDOW* = 3# ## *# ## @brief xcb_composite_unredirect_window_request_t# ### type# xcb_composite_unredirect_window_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# update*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_composite_unredirect_subwindows.# const# XCB_COMPOSITE_UNREDIRECT_SUBWINDOWS* = 4# ## *# ## @brief xcb_composite_unredirect_subwindows_request_t# ### type# xcb_composite_unredirect_subwindows_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# update*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_composite_create_region_from_border_clip.# const# XCB_COMPOSITE_CREATE_REGION_FROM_BORDER_CLIP* = 5# ## *# ## @brief xcb_composite_create_region_from_border_clip_request_t# ### type# xcb_composite_create_region_from_border_clip_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# window*: xcb_window_t# ## * Opcode for xcb_composite_name_window_pixmap.# const# XCB_COMPOSITE_NAME_WINDOW_PIXMAP* = 6# ## *# ## @brief xcb_composite_name_window_pixmap_request_t# ### type# xcb_composite_name_window_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# pixmap*: xcb_pixmap_t# ## *# ## @brief xcb_composite_get_overlay_window_cookie_t# ### type# xcb_composite_get_overlay_window_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_composite_get_overlay_window.# const# XCB_COMPOSITE_GET_OVERLAY_WINDOW* = 7# ## *# ## @brief xcb_composite_get_overlay_window_request_t# ### type# xcb_composite_get_overlay_window_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_composite_get_overlay_window_reply_t# ### type# xcb_composite_get_overlay_window_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# overlay_win*: xcb_window_t# pad1*: array[20, uint8]# ## * Opcode for xcb_composite_release_overlay_window.# const# XCB_COMPOSITE_RELEASE_OVERLAY_WINDOW* = 8# ## *# ## @brief xcb_composite_release_overlay_window_request_t# ### type# xcb_composite_release_overlay_window_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_query_version*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_composite_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_composite_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint32; client_minor_version: uint32): xcb_composite_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_composite_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_composite_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_composite_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_composite_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_redirect_window_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_redirect_window*(c: ptr xcb_connection_t; window: xcb_window_t;# update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_redirect_subwindows_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_redirect_subwindows*(c: ptr xcb_connection_t;# window: xcb_window_t; update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_unredirect_window_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_unredirect_window*(c: ptr xcb_connection_t; window: xcb_window_t;# update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_unredirect_subwindows_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_unredirect_subwindows*(c: ptr xcb_connection_t;# window: xcb_window_t; update: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_create_region_from_border_clip_checked*(# c: ptr xcb_connection_t; region: xcb_xfixes_region_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_create_region_from_border_clip*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_name_window_pixmap_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_name_window_pixmap*(c: ptr xcb_connection_t;# window: xcb_window_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_get_overlay_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_composite_get_overlay_window_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_composite_get_overlay_window_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_composite_get_overlay_window_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_composite_get_overlay_window_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_composite_get_overlay_window_reply*(c: ptr xcb_connection_t; cookie: xcb_composite_get_overlay_window_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_composite_get_overlay_window_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_composite_release_overlay_window_checked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_composite_release_overlay_window*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from damage.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Damage_API XCB Damage API# ## @brief Damage XCB Protocol Implementation.# ## @{# ### import# xcb, xproto, xfixes# const# XCB_DAMAGE_MAJOR_VERSION* = 1# XCB_DAMAGE_MINOR_VERSION* = 1# var xcb_damage_id*: xcb_extension_t# type# xcb_damage_damage_t* = uint32# ## *# ## @brief xcb_damage_damage_iterator_t# ### type# xcb_damage_damage_iterator_t* {.bycopy.} = object# data*: ptr xcb_damage_damage_t# rem*: cint# index*: cint# xcb_damage_report_level_t* = enum# XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES = 0,# XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES = 1,# XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX = 2, XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY = 3# ## * Opcode for xcb_damage_bad_damage.# const# XCB_DAMAGE_BAD_DAMAGE* = 0# ## *# ## @brief xcb_damage_bad_damage_error_t# ### type# xcb_damage_bad_damage_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## *# ## @brief xcb_damage_query_version_cookie_t# ### type# xcb_damage_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_damage_query_version.# const# XCB_DAMAGE_QUERY_VERSION* = 0# ## *# ## @brief xcb_damage_query_version_request_t# ### type# xcb_damage_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint32# client_minor_version*: uint32# ## *# ## @brief xcb_damage_query_version_reply_t# ### type# xcb_damage_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# pad1*: array[16, uint8]# ## * Opcode for xcb_damage_create.# const# XCB_DAMAGE_CREATE* = 1# ## *# ## @brief xcb_damage_create_request_t# ### type# xcb_damage_create_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# damage*: xcb_damage_damage_t# drawable*: xcb_drawable_t# level*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_damage_destroy.# const# XCB_DAMAGE_DESTROY* = 2# ## *# ## @brief xcb_damage_destroy_request_t# ### type# xcb_damage_destroy_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# damage*: xcb_damage_damage_t# ## * Opcode for xcb_damage_subtract.# const# XCB_DAMAGE_SUBTRACT* = 3# ## *# ## @brief xcb_damage_subtract_request_t# ### type# xcb_damage_subtract_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# damage*: xcb_damage_damage_t# repair*: xcb_xfixes_region_t# parts*: xcb_xfixes_region_t# ## * Opcode for xcb_damage_add.# const# XCB_DAMAGE_ADD* = 4# ## *# ## @brief xcb_damage_add_request_t# ### type# xcb_damage_add_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# region*: xcb_xfixes_region_t# ## * Opcode for xcb_damage_notify.# const# XCB_DAMAGE_NOTIFY* = 0# ## *# ## @brief xcb_damage_notify_event_t# ### type# xcb_damage_notify_event_t* {.bycopy.} = object# response_type*: uint8# level*: uint8# sequence*: uint16# drawable*: xcb_drawable_t# damage*: xcb_damage_damage_t# timestamp*: xcb_timestamp_t# area*: xcb_rectangle_t# geometry*: xcb_rectangle_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_damage_damage_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_damage_damage_t)# ### proc xcb_damage_damage_next*(i: ptr xcb_damage_damage_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_damage_damage_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_damage_damage_end*(i: xcb_damage_damage_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_damage_query_version*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_damage_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_damage_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_damage_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_damage_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_damage_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_damage_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_damage_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_damage_create_checked*(c: ptr xcb_connection_t;# damage: xcb_damage_damage_t;# drawable: xcb_drawable_t; level: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_damage_create*(c: ptr xcb_connection_t; damage: xcb_damage_damage_t;# drawable: xcb_drawable_t; level: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_damage_destroy_checked*(c: ptr xcb_connection_t;# damage: xcb_damage_damage_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_damage_destroy*(c: ptr xcb_connection_t; damage: xcb_damage_damage_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_damage_subtract_checked*(c: ptr xcb_connection_t;# damage: xcb_damage_damage_t;# repair: xcb_xfixes_region_t;# parts: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_damage_subtract*(c: ptr xcb_connection_t; damage: xcb_damage_damage_t;# repair: xcb_xfixes_region_t; parts: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_damage_add_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# region: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_damage_add*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# region: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from dpms.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_DPMS_API XCB DPMS API# ## @brief DPMS XCB Protocol Implementation.# ## @{# ### import# xcb# const# XCB_DPMS_MAJOR_VERSION* = 0# XCB_DPMS_MINOR_VERSION* = 0# var xcb_dpms_id*: xcb_extension_t# ## *# ## @brief xcb_dpms_get_version_cookie_t# ### type# xcb_dpms_get_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dpms_get_version.# const# XCB_DPMS_GET_VERSION* = 0# ## *# ## @brief xcb_dpms_get_version_request_t# ### type# xcb_dpms_get_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint16# client_minor_version*: uint16# ## *# ## @brief xcb_dpms_get_version_reply_t# ### type# xcb_dpms_get_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# server_major_version*: uint16# server_minor_version*: uint16# ## *# ## @brief xcb_dpms_capable_cookie_t# ### type# xcb_dpms_capable_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dpms_capable.# const# XCB_DPMS_CAPABLE* = 1# ## *# ## @brief xcb_dpms_capable_request_t# ### type# xcb_dpms_capable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_dpms_capable_reply_t# ### type# xcb_dpms_capable_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# capable*: uint8# pad1*: array[23, uint8]# ## *# ## @brief xcb_dpms_get_timeouts_cookie_t# ### type# xcb_dpms_get_timeouts_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dpms_get_timeouts.# const# XCB_DPMS_GET_TIMEOUTS* = 2# ## *# ## @brief xcb_dpms_get_timeouts_request_t# ### type# xcb_dpms_get_timeouts_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_dpms_get_timeouts_reply_t# ### type# xcb_dpms_get_timeouts_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# standby_timeout*: uint16# suspend_timeout*: uint16# off_timeout*: uint16# pad1*: array[18, uint8]# ## * Opcode for xcb_dpms_set_timeouts.# const# XCB_DPMS_SET_TIMEOUTS* = 3# ## *# ## @brief xcb_dpms_set_timeouts_request_t# ### type# xcb_dpms_set_timeouts_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# standby_timeout*: uint16# suspend_timeout*: uint16# off_timeout*: uint16# ## * Opcode for xcb_dpms_enable.# const# XCB_DPMS_ENABLE* = 4# ## *# ## @brief xcb_dpms_enable_request_t# ### type# xcb_dpms_enable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## * Opcode for xcb_dpms_disable.# const# XCB_DPMS_DISABLE* = 5# ## *# ## @brief xcb_dpms_disable_request_t# ### type# xcb_dpms_disable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# xcb_dpms_dpms_mode_t* = enum# XCB_DPMS_DPMS_MODE_ON = 0, XCB_DPMS_DPMS_MODE_STANDBY = 1,# XCB_DPMS_DPMS_MODE_SUSPEND = 2, XCB_DPMS_DPMS_MODE_OFF = 3# ## * Opcode for xcb_dpms_force_level.# const# XCB_DPMS_FORCE_LEVEL* = 6# ## *# ## @brief xcb_dpms_force_level_request_t# ### type# xcb_dpms_force_level_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# power_level*: uint16# ## *# ## @brief xcb_dpms_info_cookie_t# ### type# xcb_dpms_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dpms_info.# const# XCB_DPMS_INFO* = 7# ## *# ## @brief xcb_dpms_info_request_t# ### type# xcb_dpms_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_dpms_info_reply_t# ### type# xcb_dpms_info_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# power_level*: uint16# state*: uint8# pad1*: array[21, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_get_version*(c: ptr xcb_connection_t; client_major_version: uint16;# client_minor_version: uint16): xcb_dpms_get_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dpms_get_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint16;# client_minor_version: uint16): xcb_dpms_get_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dpms_get_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dpms_get_version_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_get_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_get_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_capable*(c: ptr xcb_connection_t): xcb_dpms_capable_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dpms_capable_unchecked*(c: ptr xcb_connection_t): xcb_dpms_capable_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dpms_capable_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dpms_capable_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_capable_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_capable_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_get_timeouts*(c: ptr xcb_connection_t): xcb_dpms_get_timeouts_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dpms_get_timeouts_unchecked*(c: ptr xcb_connection_t): xcb_dpms_get_timeouts_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dpms_get_timeouts_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dpms_get_timeouts_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_get_timeouts_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_get_timeouts_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dpms_set_timeouts_checked*(c: ptr xcb_connection_t;# standby_timeout: uint16;# suspend_timeout: uint16;# off_timeout: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_set_timeouts*(c: ptr xcb_connection_t; standby_timeout: uint16;# suspend_timeout: uint16; off_timeout: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### #proc xcb_dpms_enable_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_enable*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dpms_disable_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_disable*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dpms_force_level_checked*(c: ptr xcb_connection_t; power_level: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_force_level*(c: ptr xcb_connection_t; power_level: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dpms_info*(c: ptr xcb_connection_t): xcb_dpms_info_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dpms_info_unchecked*(c: ptr xcb_connection_t): xcb_dpms_info_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dpms_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dpms_info_reply*(c: ptr xcb_connection_t; cookie: xcb_dpms_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dpms_info_reply_t# ## *# ## @}# ### ### ## This file generated automatically from dri2.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_DRI2_API XCB DRI2 API# ## @brief DRI2 XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_DRI2_MAJOR_VERSION* = 1# XCB_DRI2_MINOR_VERSION* = 4# var xcb_dri2_id*: xcb_extension_t# type# xcb_dri2_attachment_t* = enum# XCB_DRI2_ATTACHMENT_BUFFER_FRONT_LEFT = 0,# XCB_DRI2_ATTACHMENT_BUFFER_BACK_LEFT = 1,# XCB_DRI2_ATTACHMENT_BUFFER_FRONT_RIGHT = 2,# XCB_DRI2_ATTACHMENT_BUFFER_BACK_RIGHT = 3,# XCB_DRI2_ATTACHMENT_BUFFER_DEPTH = 4, XCB_DRI2_ATTACHMENT_BUFFER_STENCIL = 5,# XCB_DRI2_ATTACHMENT_BUFFER_ACCUM = 6,# XCB_DRI2_ATTACHMENT_BUFFER_FAKE_FRONT_LEFT = 7,# XCB_DRI2_ATTACHMENT_BUFFER_FAKE_FRONT_RIGHT = 8,# XCB_DRI2_ATTACHMENT_BUFFER_DEPTH_STENCIL = 9,# XCB_DRI2_ATTACHMENT_BUFFER_HIZ = 10# xcb_dri2_driver_type_t* = enum# XCB_DRI2_DRIVER_TYPE_DRI = 0, XCB_DRI2_DRIVER_TYPE_VDPAU = 1# xcb_dri2_event_type_t* = enum# XCB_DRI2_EVENT_TYPE_EXCHANGE_COMPLETE = 1,# XCB_DRI2_EVENT_TYPE_BLIT_COMPLETE = 2, XCB_DRI2_EVENT_TYPE_FLIP_COMPLETE = 3# ## *# ## @brief xcb_dri2_dri2_buffer_t# ### type# xcb_dri2_dri2_buffer_t* {.bycopy.} = object# attachment*: uint32# name*: uint32# pitch*: uint32# cpp*: uint32# flags*: uint32# ## *# ## @brief xcb_dri2_dri2_buffer_iterator_t# ### type# xcb_dri2_dri2_buffer_iterator_t* {.bycopy.} = object# data*: ptr xcb_dri2_dri2_buffer_t# rem*: cint# index*: cint# ## *# ## @brief xcb_dri2_attach_format_t# ### type# xcb_dri2_attach_format_t* {.bycopy.} = object# attachment*: uint32# format*: uint32# ## *# ## @brief xcb_dri2_attach_format_iterator_t# ### type# xcb_dri2_attach_format_iterator_t* {.bycopy.} = object# data*: ptr xcb_dri2_attach_format_t# rem*: cint# index*: cint# ## *# ## @brief xcb_dri2_query_version_cookie_t# ### type# xcb_dri2_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_query_version.# const# XCB_DRI2_QUERY_VERSION* = 0# ## *# ## @brief xcb_dri2_query_version_request_t# ### type# xcb_dri2_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint32# minor_version*: uint32# ## *# ## @brief xcb_dri2_query_version_reply_t# ### type# xcb_dri2_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# ## *# ## @brief xcb_dri2_connect_cookie_t# ### type# xcb_dri2_connect_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_connect.# const# XCB_DRI2_CONNECT* = 1# ## *# ## @brief xcb_dri2_connect_request_t# ### type# xcb_dri2_connect_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# driver_type*: uint32# ## *# ## @brief xcb_dri2_connect_reply_t# ### type# xcb_dri2_connect_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# driver_name_length*: uint32# device_name_length*: uint32# pad1*: array[16, uint8]# ## *# ## @brief xcb_dri2_authenticate_cookie_t# ### type# xcb_dri2_authenticate_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_authenticate.# const# XCB_DRI2_AUTHENTICATE* = 2# ## *# ## @brief xcb_dri2_authenticate_request_t# ### type# xcb_dri2_authenticate_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# magic*: uint32# ## *# ## @brief xcb_dri2_authenticate_reply_t# ### type# xcb_dri2_authenticate_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# authenticated*: uint32# ## * Opcode for xcb_dri2_create_drawable.# const# XCB_DRI2_CREATE_DRAWABLE* = 3# ## *# ## @brief xcb_dri2_create_drawable_request_t# ### type# xcb_dri2_create_drawable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## * Opcode for xcb_dri2_destroy_drawable.# const# XCB_DRI2_DESTROY_DRAWABLE* = 4# ## *# ## @brief xcb_dri2_destroy_drawable_request_t# ### type# xcb_dri2_destroy_drawable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## *# ## @brief xcb_dri2_get_buffers_cookie_t# ### type# xcb_dri2_get_buffers_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_get_buffers.# const# XCB_DRI2_GET_BUFFERS* = 5# ## *# ## @brief xcb_dri2_get_buffers_request_t# ### type# xcb_dri2_get_buffers_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# count*: uint32# ## *# ## @brief xcb_dri2_get_buffers_reply_t# ### type# xcb_dri2_get_buffers_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width*: uint32# height*: uint32# count*: uint32# pad1*: array[12, uint8]# ## *# ## @brief xcb_dri2_copy_region_cookie_t# ### type# xcb_dri2_copy_region_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_copy_region.# const# XCB_DRI2_COPY_REGION* = 6# ## *# ## @brief xcb_dri2_copy_region_request_t# ### type# xcb_dri2_copy_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# region*: uint32# dest*: uint32# src*: uint32# ## *# ## @brief xcb_dri2_copy_region_reply_t# ### type# xcb_dri2_copy_region_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# ## *# ## @brief xcb_dri2_get_buffers_with_format_cookie_t# ### type# xcb_dri2_get_buffers_with_format_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_get_buffers_with_format.# const# XCB_DRI2_GET_BUFFERS_WITH_FORMAT* = 7# ## *# ## @brief xcb_dri2_get_buffers_with_format_request_t# ### type# xcb_dri2_get_buffers_with_format_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# count*: uint32# ## *# ## @brief xcb_dri2_get_buffers_with_format_reply_t# ### type# xcb_dri2_get_buffers_with_format_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width*: uint32# height*: uint32# count*: uint32# pad1*: array[12, uint8]# ## *# ## @brief xcb_dri2_swap_buffers_cookie_t# ### type# xcb_dri2_swap_buffers_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_swap_buffers.# const# XCB_DRI2_SWAP_BUFFERS* = 8# ## *# ## @brief xcb_dri2_swap_buffers_request_t# ### type# xcb_dri2_swap_buffers_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# target_msc_hi*: uint32# target_msc_lo*: uint32# divisor_hi*: uint32# divisor_lo*: uint32# remainder_hi*: uint32# remainder_lo*: uint32# ## *# ## @brief xcb_dri2_swap_buffers_reply_t# ### type# xcb_dri2_swap_buffers_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# swap_hi*: uint32# swap_lo*: uint32# ## *# ## @brief xcb_dri2_get_msc_cookie_t# ### type# xcb_dri2_get_msc_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_get_msc.# const# XCB_DRI2_GET_MSC* = 9# ## *# ## @brief xcb_dri2_get_msc_request_t# ### type# xcb_dri2_get_msc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## *# ## @brief xcb_dri2_get_msc_reply_t# ### type# xcb_dri2_get_msc_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# ust_hi*: uint32# ust_lo*: uint32# msc_hi*: uint32# msc_lo*: uint32# sbc_hi*: uint32# sbc_lo*: uint32# ## *# ## @brief xcb_dri2_wait_msc_cookie_t# ### type# xcb_dri2_wait_msc_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_wait_msc.# const# XCB_DRI2_WAIT_MSC* = 10# ## *# ## @brief xcb_dri2_wait_msc_request_t# ### type# xcb_dri2_wait_msc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# target_msc_hi*: uint32# target_msc_lo*: uint32# divisor_hi*: uint32# divisor_lo*: uint32# remainder_hi*: uint32# remainder_lo*: uint32# ## *# ## @brief xcb_dri2_wait_msc_reply_t# ### type# xcb_dri2_wait_msc_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# ust_hi*: uint32# ust_lo*: uint32# msc_hi*: uint32# msc_lo*: uint32# sbc_hi*: uint32# sbc_lo*: uint32# ## *# ## @brief xcb_dri2_wait_sbc_cookie_t# ### type# xcb_dri2_wait_sbc_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_wait_sbc.# const# XCB_DRI2_WAIT_SBC* = 11# ## *# ## @brief xcb_dri2_wait_sbc_request_t# ### type# xcb_dri2_wait_sbc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# target_sbc_hi*: uint32# target_sbc_lo*: uint32# ## *# ## @brief xcb_dri2_wait_sbc_reply_t# ### type# xcb_dri2_wait_sbc_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# ust_hi*: uint32# ust_lo*: uint32# msc_hi*: uint32# msc_lo*: uint32# sbc_hi*: uint32# sbc_lo*: uint32# ## * Opcode for xcb_dri2_swap_interval.# const# XCB_DRI2_SWAP_INTERVAL* = 12# ## *# ## @brief xcb_dri2_swap_interval_request_t# ### type# xcb_dri2_swap_interval_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# interval*: uint32# ## *# ## @brief xcb_dri2_get_param_cookie_t# ### type# xcb_dri2_get_param_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri2_get_param.# const# XCB_DRI2_GET_PARAM* = 13# ## *# ## @brief xcb_dri2_get_param_request_t# ### type# xcb_dri2_get_param_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# param*: uint32# ## *# ## @brief xcb_dri2_get_param_reply_t# ### type# xcb_dri2_get_param_reply_t* {.bycopy.} = object# response_type*: uint8# is_param_recognized*: uint8# sequence*: uint16# length*: uint32# value_hi*: uint32# value_lo*: uint32# ## * Opcode for xcb_dri2_buffer_swap_complete.# const# XCB_DRI2_BUFFER_SWAP_COMPLETE* = 0# ## *# ## @brief xcb_dri2_buffer_swap_complete_event_t# ### type# xcb_dri2_buffer_swap_complete_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event_type*: uint16# pad1*: array[2, uint8]# drawable*: xcb_drawable_t# ust_hi*: uint32# ust_lo*: uint32# msc_hi*: uint32# msc_lo*: uint32# sbc*: uint32# ## * Opcode for xcb_dri2_invalidate_buffers.# const# XCB_DRI2_INVALIDATE_BUFFERS* = 1# ## *# ## @brief xcb_dri2_invalidate_buffers_event_t# ### type# xcb_dri2_invalidate_buffers_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# drawable*: xcb_drawable_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_dri2_dri2_buffer_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_dri2_dri2_buffer_t)# ### proc xcb_dri2_dri2_buffer_next*(i: ptr xcb_dri2_dri2_buffer_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_dri2_dri2_buffer_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_dri2_dri2_buffer_end*(i: xcb_dri2_dri2_buffer_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_dri2_attach_format_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_dri2_attach_format_t)# ### proc xcb_dri2_attach_format_next*(i: ptr xcb_dri2_attach_format_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_dri2_attach_format_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_dri2_attach_format_end*(i: xcb_dri2_attach_format_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_query_version*(c: ptr xcb_connection_t; major_version: uint32;# minor_version: uint32): xcb_dri2_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_query_version_unchecked*(c: ptr xcb_connection_t;# major_version: uint32;# minor_version: uint32): xcb_dri2_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_query_version_reply_t# proc xcb_dri2_connect_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_connect*(c: ptr xcb_connection_t; window: xcb_window_t;# driver_type: uint32): xcb_dri2_connect_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_connect_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;# driver_type: uint32): xcb_dri2_connect_cookie_t# proc xcb_dri2_connect_driver_name*(R: ptr xcb_dri2_connect_reply_t): cstring# proc xcb_dri2_connect_driver_name_length*(R: ptr xcb_dri2_connect_reply_t): cint# proc xcb_dri2_connect_driver_name_end*(R: ptr xcb_dri2_connect_reply_t): xcb_generic_iterator_t# proc xcb_dri2_connect_alignment_pad*(R: ptr xcb_dri2_connect_reply_t): pointer# proc xcb_dri2_connect_alignment_pad_length*(R: ptr xcb_dri2_connect_reply_t): cint# proc xcb_dri2_connect_alignment_pad_end*(R: ptr xcb_dri2_connect_reply_t): xcb_generic_iterator_t# proc xcb_dri2_connect_device_name*(R: ptr xcb_dri2_connect_reply_t): cstring# proc xcb_dri2_connect_device_name_length*(R: ptr xcb_dri2_connect_reply_t): cint# proc xcb_dri2_connect_device_name_end*(R: ptr xcb_dri2_connect_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_connect_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_connect_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_connect_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_connect_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_authenticate*(c: ptr xcb_connection_t; window: xcb_window_t;# magic: uint32): xcb_dri2_authenticate_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_authenticate_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;# magic: uint32): xcb_dri2_authenticate_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_authenticate_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_authenticate_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_authenticate_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_authenticate_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dri2_create_drawable_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_create_drawable*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dri2_destroy_drawable_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_destroy_drawable*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_void_cookie_t# proc xcb_dri2_get_buffers_sizeof*(_buffer: pointer; attachments_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_get_buffers*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# count: uint32; attachments_len: uint32;# attachments: ptr uint32): xcb_dri2_get_buffers_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_get_buffers_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; count: uint32;# attachments_len: uint32;# attachments: ptr uint32): xcb_dri2_get_buffers_cookie_t# proc xcb_dri2_get_buffers_buffers*(R: ptr xcb_dri2_get_buffers_reply_t): ptr xcb_dri2_dri2_buffer_t# proc xcb_dri2_get_buffers_buffers_length*(R: ptr xcb_dri2_get_buffers_reply_t): cint# proc xcb_dri2_get_buffers_buffers_iterator*(R: ptr xcb_dri2_get_buffers_reply_t): xcb_dri2_dri2_buffer_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_get_buffers_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_get_buffers_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_buffers_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_buffers_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_copy_region*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# region: uint32; dest: uint32; src: uint32): xcb_dri2_copy_region_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_copy_region_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; region: uint32;# dest: uint32; src: uint32): xcb_dri2_copy_region_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_copy_region_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_copy_region_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_copy_region_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_copy_region_reply_t# proc xcb_dri2_get_buffers_with_format_sizeof*(_buffer: pointer;# attachments_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_get_buffers_with_format*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; count: uint32;# attachments_len: uint32;# attachments: ptr xcb_dri2_attach_format_t): xcb_dri2_get_buffers_with_format_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_get_buffers_with_format_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; count: uint32; attachments_len: uint32;# attachments: ptr xcb_dri2_attach_format_t): xcb_dri2_get_buffers_with_format_cookie_t# proc xcb_dri2_get_buffers_with_format_buffers*(# R: ptr xcb_dri2_get_buffers_with_format_reply_t): ptr xcb_dri2_dri2_buffer_t# proc xcb_dri2_get_buffers_with_format_buffers_length*(# R: ptr xcb_dri2_get_buffers_with_format_reply_t): cint# proc xcb_dri2_get_buffers_with_format_buffers_iterator*(# R: ptr xcb_dri2_get_buffers_with_format_reply_t): xcb_dri2_dri2_buffer_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_get_buffers_with_format_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_get_buffers_with_format_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_buffers_with_format_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_buffers_with_format_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_swap_buffers*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# target_msc_hi: uint32; target_msc_lo: uint32;# divisor_hi: uint32; divisor_lo: uint32;# remainder_hi: uint32; remainder_lo: uint32): xcb_dri2_swap_buffers_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_swap_buffers_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t;# target_msc_hi: uint32;# target_msc_lo: uint32;# divisor_hi: uint32; divisor_lo: uint32;# remainder_hi: uint32;# remainder_lo: uint32): xcb_dri2_swap_buffers_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_swap_buffers_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_swap_buffers_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_swap_buffers_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_swap_buffers_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_get_msc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_dri2_get_msc_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_get_msc_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_dri2_get_msc_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_get_msc_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_get_msc_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_msc_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_msc_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_wait_msc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# target_msc_hi: uint32; target_msc_lo: uint32;# divisor_hi: uint32; divisor_lo: uint32;# remainder_hi: uint32; remainder_lo: uint32): xcb_dri2_wait_msc_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_wait_msc_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# target_msc_hi: uint32; target_msc_lo: uint32;# divisor_hi: uint32; divisor_lo: uint32;# remainder_hi: uint32; remainder_lo: uint32): xcb_dri2_wait_msc_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_wait_msc_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_wait_msc_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_wait_msc_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_wait_msc_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_wait_sbc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# target_sbc_hi: uint32; target_sbc_lo: uint32): xcb_dri2_wait_sbc_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_wait_sbc_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# target_sbc_hi: uint32; target_sbc_lo: uint32): xcb_dri2_wait_sbc_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_wait_sbc_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_wait_sbc_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_wait_sbc_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_wait_sbc_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dri2_swap_interval_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; interval: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_swap_interval*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# interval: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri2_get_param*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# param: uint32): xcb_dri2_get_param_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri2_get_param_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; param: uint32): xcb_dri2_get_param_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri2_get_param_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri2_get_param_reply*(c: ptr xcb_connection_t; cookie: xcb_dri2_get_param_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri2_get_param_reply_t# ## *# ## @}# ### ### ## This file generated automatically from dri3.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_DRI3_API XCB DRI3 API# ## @brief DRI3 XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_DRI3_MAJOR_VERSION* = 1# XCB_DRI3_MINOR_VERSION* = 2# var xcb_dri3_id*: xcb_extension_t# ## *# ## @brief xcb_dri3_query_version_cookie_t# ### type# xcb_dri3_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri3_query_version.# const# XCB_DRI3_QUERY_VERSION* = 0# ## *# ## @brief xcb_dri3_query_version_request_t# ### type# xcb_dri3_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint32# minor_version*: uint32# ## *# ## @brief xcb_dri3_query_version_reply_t# ### type# xcb_dri3_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# ## *# ## @brief xcb_dri3_open_cookie_t# ### type# xcb_dri3_open_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri3_open.# const# XCB_DRI3_OPEN* = 1# ## *# ## @brief xcb_dri3_open_request_t# ### type# xcb_dri3_open_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# provider*: uint32# ## *# ## @brief xcb_dri3_open_reply_t# ### type# xcb_dri3_open_reply_t* {.bycopy.} = object# response_type*: uint8# nfd*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# ## * Opcode for xcb_dri3_pixmap_from_buffer.# const# XCB_DRI3_PIXMAP_FROM_BUFFER* = 2# ## *# ## @brief xcb_dri3_pixmap_from_buffer_request_t# ### type# xcb_dri3_pixmap_from_buffer_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# pixmap*: xcb_pixmap_t# drawable*: xcb_drawable_t# size*: uint32# width*: uint16# height*: uint16# stride*: uint16# depth*: uint8# bpp*: uint8# ## *# ## @brief xcb_dri3_buffer_from_pixmap_cookie_t# ### type# xcb_dri3_buffer_from_pixmap_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri3_buffer_from_pixmap.# const# XCB_DRI3_BUFFER_FROM_PIXMAP* = 3# ## *# ## @brief xcb_dri3_buffer_from_pixmap_request_t# ### type# xcb_dri3_buffer_from_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# pixmap*: xcb_pixmap_t# ## *# ## @brief xcb_dri3_buffer_from_pixmap_reply_t# ### type# xcb_dri3_buffer_from_pixmap_reply_t* {.bycopy.} = object# response_type*: uint8# nfd*: uint8# sequence*: uint16# length*: uint32# size*: uint32# width*: uint16# height*: uint16# stride*: uint16# depth*: uint8# bpp*: uint8# pad0*: array[12, uint8]# ## * Opcode for xcb_dri3_fence_from_fd.# const# XCB_DRI3_FENCE_FROM_FD* = 4# ## *# ## @brief xcb_dri3_fence_from_fd_request_t# ### type# xcb_dri3_fence_from_fd_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# fence*: uint32# initially_triggered*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_dri3_fd_from_fence_cookie_t# ### type# xcb_dri3_fd_from_fence_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri3_fd_from_fence.# const# XCB_DRI3_FD_FROM_FENCE* = 5# ## *# ## @brief xcb_dri3_fd_from_fence_request_t# ### type# xcb_dri3_fd_from_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# fence*: uint32# ## *# ## @brief xcb_dri3_fd_from_fence_reply_t# ### type# xcb_dri3_fd_from_fence_reply_t* {.bycopy.} = object# response_type*: uint8# nfd*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# ## *# ## @brief xcb_dri3_get_supported_modifiers_cookie_t# ### type# xcb_dri3_get_supported_modifiers_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri3_get_supported_modifiers.# const# XCB_DRI3_GET_SUPPORTED_MODIFIERS* = 6# ## *# ## @brief xcb_dri3_get_supported_modifiers_request_t# ### type# xcb_dri3_get_supported_modifiers_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: uint32# depth*: uint8# bpp*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_dri3_get_supported_modifiers_reply_t# ### type# xcb_dri3_get_supported_modifiers_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_window_modifiers*: uint32# num_screen_modifiers*: uint32# pad1*: array[16, uint8]# ## * Opcode for xcb_dri3_pixmap_from_buffers.# const# XCB_DRI3_PIXMAP_FROM_BUFFERS* = 7# ## *# ## @brief xcb_dri3_pixmap_from_buffers_request_t# ### type# xcb_dri3_pixmap_from_buffers_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# pixmap*: xcb_pixmap_t# window*: xcb_window_t# num_buffers*: uint8# pad0*: array[3, uint8]# width*: uint16# height*: uint16# stride0*: uint32# offset0*: uint32# stride1*: uint32# offset1*: uint32# stride2*: uint32# offset2*: uint32# stride3*: uint32# offset3*: uint32# depth*: uint8# bpp*: uint8# pad1*: array[2, uint8]# modifier*: uint64# ## *# ## @brief xcb_dri3_buffers_from_pixmap_cookie_t# ### type# xcb_dri3_buffers_from_pixmap_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_dri3_buffers_from_pixmap.# const# XCB_DRI3_BUFFERS_FROM_PIXMAP* = 8# ## *# ## @brief xcb_dri3_buffers_from_pixmap_request_t# ### type# xcb_dri3_buffers_from_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# pixmap*: xcb_pixmap_t# ## *# ## @brief xcb_dri3_buffers_from_pixmap_reply_t# ### type# xcb_dri3_buffers_from_pixmap_reply_t* {.bycopy.} = object# response_type*: uint8# nfd*: uint8# sequence*: uint16# length*: uint32# width*: uint16# height*: uint16# pad0*: array[4, uint8]# modifier*: uint64# depth*: uint8# bpp*: uint8# pad1*: array[6, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_query_version*(c: ptr xcb_connection_t; major_version: uint32;# minor_version: uint32): xcb_dri3_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri3_query_version_unchecked*(c: ptr xcb_connection_t;# major_version: uint32;# minor_version: uint32): xcb_dri3_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri3_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_open*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# provider: uint32): xcb_dri3_open_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri3_open_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# provider: uint32): xcb_dri3_open_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri3_open_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_open_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_open_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_open_reply_t# ## *# ## Return the reply fds# ## @param c The connection# ## @param reply The reply# ### ## Returns the array of reply fds of the request asked by# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_open_reply_fds*(c: ptr xcb_connection_t; ## *<# reply: ptr xcb_dri3_open_reply_t): ptr cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dri3_pixmap_from_buffer_checked*(c: ptr xcb_connection_t;# pixmap: xcb_pixmap_t; drawable: xcb_drawable_t; size: uint32; width: uint16;# height: uint16; stride: uint16; depth: uint8; bpp: uint8; pixmap_fd: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_pixmap_from_buffer*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t;# drawable: xcb_drawable_t; size: uint32;# width: uint16; height: uint16;# stride: uint16; depth: uint8; bpp: uint8;# pixmap_fd: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_buffer_from_pixmap*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_dri3_buffer_from_pixmap_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri3_buffer_from_pixmap_unchecked*(c: ptr xcb_connection_t;# pixmap: xcb_pixmap_t): xcb_dri3_buffer_from_pixmap_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri3_buffer_from_pixmap_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_buffer_from_pixmap_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_buffer_from_pixmap_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_buffer_from_pixmap_reply_t# ## *# ## Return the reply fds# ## @param c The connection# ## @param reply The reply# ### ## Returns the array of reply fds of the request asked by# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_buffer_from_pixmap_reply_fds*(c: ptr xcb_connection_t; ## *<# reply: ptr xcb_dri3_buffer_from_pixmap_reply_t): ptr cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dri3_fence_from_fd_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; fence: uint32;# initially_triggered: uint8;# fence_fd: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_fence_from_fd*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# fence: uint32; initially_triggered: uint8;# fence_fd: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_fd_from_fence*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# fence: uint32): xcb_dri3_fd_from_fence_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri3_fd_from_fence_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; fence: uint32): xcb_dri3_fd_from_fence_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri3_fd_from_fence_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_fd_from_fence_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_fd_from_fence_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_fd_from_fence_reply_t# ## *# ## Return the reply fds# ## @param c The connection# ## @param reply The reply# ### ## Returns the array of reply fds of the request asked by# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_fd_from_fence_reply_fds*(c: ptr xcb_connection_t; ## *<# reply: ptr xcb_dri3_fd_from_fence_reply_t): ptr cint# proc xcb_dri3_get_supported_modifiers_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_get_supported_modifiers*(c: ptr xcb_connection_t; window: uint32;# depth: uint8; bpp: uint8): xcb_dri3_get_supported_modifiers_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri3_get_supported_modifiers_unchecked*(c: ptr xcb_connection_t;# window: uint32; depth: uint8; bpp: uint8): xcb_dri3_get_supported_modifiers_cookie_t# proc xcb_dri3_get_supported_modifiers_window_modifiers*(# R: ptr xcb_dri3_get_supported_modifiers_reply_t): ptr uint64# proc xcb_dri3_get_supported_modifiers_window_modifiers_length*(# R: ptr xcb_dri3_get_supported_modifiers_reply_t): cint# proc xcb_dri3_get_supported_modifiers_window_modifiers_end*(# R: ptr xcb_dri3_get_supported_modifiers_reply_t): xcb_generic_iterator_t# proc xcb_dri3_get_supported_modifiers_screen_modifiers*(# R: ptr xcb_dri3_get_supported_modifiers_reply_t): ptr uint64# proc xcb_dri3_get_supported_modifiers_screen_modifiers_length*(# R: ptr xcb_dri3_get_supported_modifiers_reply_t): cint# proc xcb_dri3_get_supported_modifiers_screen_modifiers_end*(# R: ptr xcb_dri3_get_supported_modifiers_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri3_get_supported_modifiers_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_get_supported_modifiers_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_get_supported_modifiers_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_get_supported_modifiers_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_dri3_pixmap_from_buffers_checked*(c: ptr xcb_connection_t;# pixmap: xcb_pixmap_t; window: xcb_window_t; num_buffers: uint8; width: uint16;# height: uint16; stride0: uint32; offset0: uint32; stride1: uint32;# offset1: uint32; stride2: uint32; offset2: uint32; stride3: uint32;# offset3: uint32; depth: uint8; bpp: uint8; modifier: uint64;# buffers: ptr int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_pixmap_from_buffers*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t;# window: xcb_window_t; num_buffers: uint8;# width: uint16; height: uint16;# stride0: uint32; offset0: uint32;# stride1: uint32; offset1: uint32;# stride2: uint32; offset2: uint32;# stride3: uint32; offset3: uint32;# depth: uint8; bpp: uint8; modifier: uint64;# buffers: ptr int32): xcb_void_cookie_t# proc xcb_dri3_buffers_from_pixmap_sizeof*(_buffer: pointer; buffers: int32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_dri3_buffers_from_pixmap*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_dri3_buffers_from_pixmap_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_dri3_buffers_from_pixmap_unchecked*(c: ptr xcb_connection_t;# pixmap: xcb_pixmap_t): xcb_dri3_buffers_from_pixmap_cookie_t# proc xcb_dri3_buffers_from_pixmap_strides*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr uint32# proc xcb_dri3_buffers_from_pixmap_strides_length*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): cint# proc xcb_dri3_buffers_from_pixmap_strides_end*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): xcb_generic_iterator_t# proc xcb_dri3_buffers_from_pixmap_offsets*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr uint32# proc xcb_dri3_buffers_from_pixmap_offsets_length*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): cint# proc xcb_dri3_buffers_from_pixmap_offsets_end*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): xcb_generic_iterator_t# proc xcb_dri3_buffers_from_pixmap_buffers*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr int32# proc xcb_dri3_buffers_from_pixmap_buffers_length*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): cint# proc xcb_dri3_buffers_from_pixmap_buffers_end*(# R: ptr xcb_dri3_buffers_from_pixmap_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_dri3_buffers_from_pixmap_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_buffers_from_pixmap_reply*(c: ptr xcb_connection_t; cookie: xcb_dri3_buffers_from_pixmap_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_dri3_buffers_from_pixmap_reply_t# ## *# ## Return the reply fds# ## @param c The connection# ## @param reply The reply# ### ## Returns the array of reply fds of the request asked by# ### ## The returned value must be freed by the caller using free().# ### proc xcb_dri3_buffers_from_pixmap_reply_fds*(c: ptr xcb_connection_t; ## *<# reply: ptr xcb_dri3_buffers_from_pixmap_reply_t): ptr cint# ## *# ## @}# ### ### ## This file generated automatically from ge.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_GenericEvent_API XCB GenericEvent API# ## @brief GenericEvent XCB Protocol Implementation.# ## @{# ### import# xcb# const# XCB_GENERICEVENT_MAJOR_VERSION* = 1# XCB_GENERICEVENT_MINOR_VERSION* = 0# var xcb_genericevent_id*: xcb_extension_t# ## *# ## @brief xcb_genericevent_query_version_cookie_t# ### type# xcb_genericevent_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_genericevent_query_version.# const# XCB_GENERICEVENT_QUERY_VERSION* = 0# ## *# ## @brief xcb_genericevent_query_version_request_t# ### type# xcb_genericevent_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint16# client_minor_version*: uint16# ## *# ## @brief xcb_genericevent_query_version_reply_t# ### type# xcb_genericevent_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint16# minor_version*: uint16# pad1*: array[20, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_genericevent_query_version*(c: ptr xcb_connection_t;# client_major_version: uint16;# client_minor_version: uint16): xcb_genericevent_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_genericevent_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint16; client_minor_version: uint16): xcb_genericevent_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_genericevent_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_genericevent_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_genericevent_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_genericevent_query_version_reply_t# import# xcb, xproto# import# xcb, xproto, randr, xfixes, sync# const# XCB_PRESENT_MAJOR_VERSION* = 1# XCB_PRESENT_MINOR_VERSION* = 2# var xcb_present_id*: xcb_extension_t# type# xcb_present_event_enum_t* = enum# XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0, XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,# XCB_PRESENT_EVENT_IDLE_NOTIFY = 2, XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3# xcb_present_event_mask_t* = enum# XCB_PRESENT_EVENT_MASK_NO_EVENT = 0,# XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,# XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,# XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,# XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8# xcb_present_option_t* = enum# XCB_PRESENT_OPTION_NONE = 0, XCB_PRESENT_OPTION_ASYNC = 1,# XCB_PRESENT_OPTION_COPY = 2, XCB_PRESENT_OPTION_UST = 4,# XCB_PRESENT_OPTION_SUBOPTIMAL = 8# xcb_present_capability_t* = enum# XCB_PRESENT_CAPABILITY_NONE = 0, XCB_PRESENT_CAPABILITY_ASYNC = 1,# XCB_PRESENT_CAPABILITY_FENCE = 2, XCB_PRESENT_CAPABILITY_UST = 4# xcb_present_complete_kind_t* = enum# XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0, XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1# xcb_present_complete_mode_t* = enum# XCB_PRESENT_COMPLETE_MODE_COPY = 0, XCB_PRESENT_COMPLETE_MODE_FLIP = 1,# XCB_PRESENT_COMPLETE_MODE_SKIP = 2,# XCB_PRESENT_COMPLETE_MODE_SUBOPTIMAL_COPY = 3# ## *# ## @brief xcb_present_notify_t# ### type# xcb_present_notify_t* {.bycopy.} = object# window*: xcb_window_t# serial*: uint32# ## *# ## @brief xcb_present_notify_iterator_t# ### type# xcb_present_notify_iterator_t* {.bycopy.} = object# data*: ptr xcb_present_notify_t# rem*: cint# index*: cint# ## *# ## @brief xcb_present_query_version_cookie_t# ### type# xcb_present_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_present_query_version.# const# XCB_PRESENT_QUERY_VERSION* = 0# ## *# ## @brief xcb_present_query_version_request_t# ### type# xcb_present_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint32# minor_version*: uint32# ## *# ## @brief xcb_present_query_version_reply_t# ### type# xcb_present_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# ## * Opcode for xcb_present_pixmap.# const# XCB_PRESENT_PIXMAP* = 1# ## *# ## @brief xcb_present_pixmap_request_t# ### type# xcb_present_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# pixmap*: xcb_pixmap_t# serial*: uint32# valid*: xcb_xfixes_region_t# update*: xcb_xfixes_region_t# x_off*: int16# y_off*: int16# target_crtc*: xcb_randr_crtc_t# wait_fence*: xcb_sync_fence_t# idle_fence*: xcb_sync_fence_t# options*: uint32# pad0*: array[4, uint8]# target_msc*: uint64# divisor*: uint64# remainder*: uint64# ## * Opcode for xcb_present_notify_msc.# const# XCB_PRESENT_NOTIFY_MSC* = 2# ## *# ## @brief xcb_present_notify_msc_request_t# ### type# xcb_present_notify_msc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# serial*: uint32# pad0*: array[4, uint8]# target_msc*: uint64# divisor*: uint64# remainder*: uint64# xcb_present_event_t* = uint32# ## *# ## @brief xcb_present_event_iterator_t# ### type# xcb_present_event_iterator_t* {.bycopy.} = object# data*: ptr xcb_present_event_t# rem*: cint# index*: cint# ## * Opcode for xcb_present_select_input.# const# XCB_PRESENT_SELECT_INPUT* = 3# ## *# ## @brief xcb_present_select_input_request_t# ### type# xcb_present_select_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# eid*: xcb_present_event_t# window*: xcb_window_t# event_mask*: uint32# ## *# ## @brief xcb_present_query_capabilities_cookie_t# ### type# xcb_present_query_capabilities_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_present_query_capabilities.# const# XCB_PRESENT_QUERY_CAPABILITIES* = 4# ## *# ## @brief xcb_present_query_capabilities_request_t# ### type# xcb_present_query_capabilities_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# target*: uint32# ## *# ## @brief xcb_present_query_capabilities_reply_t# ### type# xcb_present_query_capabilities_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# capabilities*: uint32# ## * Opcode for xcb_present_generic.# const# XCB_PRESENT_GENERIC* = 0# ## *# ## @brief xcb_present_generic_event_t# ### type# xcb_present_generic_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# evtype*: uint16# pad0*: array[2, uint8]# event*: xcb_present_event_t# ## * Opcode for xcb_present_configure_notify.# const# XCB_PRESENT_CONFIGURE_NOTIFY* = 0# ## *# ## @brief xcb_present_configure_notify_event_t# ### type# xcb_present_configure_notify_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# pad0*: array[2, uint8]# event*: xcb_present_event_t# window*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# off_x*: int16# off_y*: int16# full_sequence*: uint32# pixmap_width*: uint16# pixmap_height*: uint16# pixmap_flags*: uint32# ## * Opcode for xcb_present_complete_notify.# const# XCB_PRESENT_COMPLETE_NOTIFY* = 1# ## *# ## @brief xcb_present_complete_notify_event_t# ### type# xcb_present_complete_notify_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# kind*: uint8# mode*: uint8# event*: xcb_present_event_t# window*: xcb_window_t# serial*: uint32# ust*: uint64# full_sequence*: uint32# msc*: uint64# ## * Opcode for xcb_present_idle_notify.# const# XCB_PRESENT_IDLE_NOTIFY* = 2# ## *# ## @brief xcb_present_idle_notify_event_t# ### type# xcb_present_idle_notify_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# pad0*: array[2, uint8]# event*: xcb_present_event_t# window*: xcb_window_t# serial*: uint32# pixmap*: xcb_pixmap_t# idle_fence*: xcb_sync_fence_t# full_sequence*: uint32# ## * Opcode for xcb_present_redirect_notify.# const# XCB_PRESENT_REDIRECT_NOTIFY* = 3# ## *# ## @brief xcb_present_redirect_notify_event_t# ### type# xcb_present_redirect_notify_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# update_window*: uint8# pad0*: uint8# event*: xcb_present_event_t# event_window*: xcb_window_t# window*: xcb_window_t# pixmap*: xcb_pixmap_t# serial*: uint32# full_sequence*: uint32# valid_region*: xcb_xfixes_region_t# update_region*: xcb_xfixes_region_t# valid_rect*: xcb_rectangle_t# update_rect*: xcb_rectangle_t# x_off*: int16# y_off*: int16# target_crtc*: xcb_randr_crtc_t# wait_fence*: xcb_sync_fence_t# idle_fence*: xcb_sync_fence_t# options*: uint32# pad1*: array[4, uint8]# target_msc*: uint64# divisor*: uint64# remainder*: uint64# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_present_notify_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_present_notify_t)# ### proc xcb_present_notify_next*(i: ptr xcb_present_notify_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_present_notify_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_present_notify_end*(i: xcb_present_notify_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_present_query_version*(c: ptr xcb_connection_t; major_version: uint32;# minor_version: uint32): xcb_present_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_present_query_version_unchecked*(c: ptr xcb_connection_t;# major_version: uint32; minor_version: uint32): xcb_present_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_present_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_present_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_present_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_present_query_version_reply_t# proc xcb_present_pixmap_sizeof*(_buffer: pointer; notifies_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_present_pixmap_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# pixmap: xcb_pixmap_t; serial: uint32;# valid: xcb_xfixes_region_t;# update: xcb_xfixes_region_t; x_off: int16;# y_off: int16; target_crtc: xcb_randr_crtc_t;# wait_fence: xcb_sync_fence_t;# idle_fence: xcb_sync_fence_t; options: uint32;# target_msc: uint64; divisor: uint64;# remainder: uint64; notifies_len: uint32;# notifies: ptr xcb_present_notify_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_present_pixmap*(c: ptr xcb_connection_t; window: xcb_window_t;# pixmap: xcb_pixmap_t; serial: uint32;# valid: xcb_xfixes_region_t; update: xcb_xfixes_region_t;# x_off: int16; y_off: int16;# target_crtc: xcb_randr_crtc_t;# wait_fence: xcb_sync_fence_t;# idle_fence: xcb_sync_fence_t; options: uint32;# target_msc: uint64; divisor: uint64;# remainder: uint64; notifies_len: uint32;# notifies: ptr xcb_present_notify_t): xcb_void_cookie_t# proc xcb_present_pixmap_notifies*(R: ptr xcb_present_pixmap_request_t): ptr xcb_present_notify_t# proc xcb_present_pixmap_notifies_length*(R: ptr xcb_present_pixmap_request_t): cint# proc xcb_present_pixmap_notifies_iterator*(R: ptr xcb_present_pixmap_request_t): xcb_present_notify_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_present_notify_msc_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# serial: uint32; target_msc: uint64;# divisor: uint64; remainder: uint64): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_present_notify_msc*(c: ptr xcb_connection_t; window: xcb_window_t;# serial: uint32; target_msc: uint64;# divisor: uint64; remainder: uint64): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_present_event_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_present_event_t)# ### proc xcb_present_event_next*(i: ptr xcb_present_event_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_present_event_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_present_event_end*(i: xcb_present_event_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_present_select_input_checked*(c: ptr xcb_connection_t;# eid: xcb_present_event_t;# window: xcb_window_t; event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_present_select_input*(c: ptr xcb_connection_t; eid: xcb_present_event_t;# window: xcb_window_t; event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_present_query_capabilities*(c: ptr xcb_connection_t; target: uint32): xcb_present_query_capabilities_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_present_query_capabilities_unchecked*(c: ptr xcb_connection_t;# target: uint32): xcb_present_query_capabilities_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_present_query_capabilities_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_present_query_capabilities_reply*(c: ptr xcb_connection_t; cookie: xcb_present_query_capabilities_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_present_query_capabilities_reply_t# proc xcb_present_redirect_notify_sizeof*(_buffer: pointer; notifies_len: uint32): cint# proc xcb_present_redirect_notify_notifies*(# R: ptr xcb_present_redirect_notify_event_t): ptr xcb_present_notify_t# proc xcb_present_redirect_notify_notifies_length*(# R: ptr xcb_present_redirect_notify_event_t): cint# proc xcb_present_redirect_notify_notifies_iterator*(# R: ptr xcb_present_redirect_notify_event_t): xcb_present_notify_iterator_t# ## *# ## @}# ### ### ## This file generated automatically from randr.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_RandR_API XCB RandR API# ## @brief RandR XCB Protocol Implementation.# ## @{# ### import# xcb, xproto, render# const# XCB_RANDR_MAJOR_VERSION* = 1# XCB_RANDR_MINOR_VERSION* = 6# var xcb_randr_id*: xcb_extension_t# type# xcb_randr_mode_t* = uint32# ## *# ## @brief xcb_randr_mode_iterator_t# ### type# xcb_randr_mode_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_mode_t# rem*: cint# index*: cint# xcb_randr_crtc_t* = uint32# ## *# ## @brief xcb_randr_crtc_iterator_t# ### type# xcb_randr_crtc_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_crtc_t# rem*: cint# index*: cint# xcb_randr_output_t* = uint32# ## *# ## @brief xcb_randr_output_iterator_t# ### type# xcb_randr_output_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_output_t# rem*: cint# index*: cint# xcb_randr_provider_t* = uint32# ## *# ## @brief xcb_randr_provider_iterator_t# ### type# xcb_randr_provider_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_provider_t# rem*: cint# index*: cint# xcb_randr_lease_t* = uint32# ## *# ## @brief xcb_randr_lease_iterator_t# ### type# xcb_randr_lease_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_lease_t# rem*: cint# index*: cint# ## * Opcode for xcb_randr_bad_output.# const# XCB_RANDR_BAD_OUTPUT* = 0# ## *# ## @brief xcb_randr_bad_output_error_t# ### type# xcb_randr_bad_output_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_randr_bad_crtc.# const# XCB_RANDR_BAD_CRTC* = 1# ## *# ## @brief xcb_randr_bad_crtc_error_t# ### type# xcb_randr_bad_crtc_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_randr_bad_mode.# const# XCB_RANDR_BAD_MODE* = 2# ## *# ## @brief xcb_randr_bad_mode_error_t# ### type# xcb_randr_bad_mode_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_randr_bad_provider.# const# XCB_RANDR_BAD_PROVIDER* = 3# ## *# ## @brief xcb_randr_bad_provider_error_t# ### type# xcb_randr_bad_provider_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# xcb_randr_rotation_t* = enum# XCB_RANDR_ROTATION_ROTATE_0 = 1, XCB_RANDR_ROTATION_ROTATE_90 = 2,# XCB_RANDR_ROTATION_ROTATE_180 = 4, XCB_RANDR_ROTATION_ROTATE_270 = 8,# XCB_RANDR_ROTATION_REFLECT_X = 16, XCB_RANDR_ROTATION_REFLECT_Y = 32# ## *# ## @brief xcb_randr_screen_size_t# ### type# xcb_randr_screen_size_t* {.bycopy.} = object# width*: uint16# height*: uint16# mwidth*: uint16# mheight*: uint16# ## *# ## @brief xcb_randr_screen_size_iterator_t# ### type# xcb_randr_screen_size_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_screen_size_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_refresh_rates_t# ### type# xcb_randr_refresh_rates_t* {.bycopy.} = object# nRates*: uint16# ## *# ## @brief xcb_randr_refresh_rates_iterator_t# ### type# xcb_randr_refresh_rates_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_refresh_rates_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_query_version_cookie_t# ### type# xcb_randr_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_query_version.# const# XCB_RANDR_QUERY_VERSION* = 0# ## *# ## @brief xcb_randr_query_version_request_t# ### type# xcb_randr_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint32# minor_version*: uint32# ## *# ## @brief xcb_randr_query_version_reply_t# ### type# xcb_randr_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# pad1*: array[16, uint8]# xcb_randr_set_config_t* = enum# XCB_RANDR_SET_CONFIG_SUCCESS = 0, XCB_RANDR_SET_CONFIG_INVALID_CONFIG_TIME = 1,# XCB_RANDR_SET_CONFIG_INVALID_TIME = 2, XCB_RANDR_SET_CONFIG_FAILED = 3# ## *# ## @brief xcb_randr_set_screen_config_cookie_t# ### type# xcb_randr_set_screen_config_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_set_screen_config.# const# XCB_RANDR_SET_SCREEN_CONFIG* = 2# ## *# ## @brief xcb_randr_set_screen_config_request_t# ### type# xcb_randr_set_screen_config_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# timestamp*: xcb_timestamp_t# config_timestamp*: xcb_timestamp_t# sizeID*: uint16# rotation*: uint16# rate*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_set_screen_config_reply_t# ### type# xcb_randr_set_screen_config_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# new_timestamp*: xcb_timestamp_t# config_timestamp*: xcb_timestamp_t# root*: xcb_window_t# subpixel_order*: uint16# pad0*: array[10, uint8]# xcb_randr_notify_mask_t* = enum# XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE = 1, XCB_RANDR_NOTIFY_MASK_CRTC_CHANGE = 2,# XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE = 4,# XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY = 8,# XCB_RANDR_NOTIFY_MASK_PROVIDER_CHANGE = 16,# XCB_RANDR_NOTIFY_MASK_PROVIDER_PROPERTY = 32,# XCB_RANDR_NOTIFY_MASK_RESOURCE_CHANGE = 64, XCB_RANDR_NOTIFY_MASK_LEASE = 128# ## * Opcode for xcb_randr_select_input.# const# XCB_RANDR_SELECT_INPUT* = 4# ## *# ## @brief xcb_randr_select_input_request_t# ### type# xcb_randr_select_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# enable*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_get_screen_info_cookie_t# ### type# xcb_randr_get_screen_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_screen_info.# const# XCB_RANDR_GET_SCREEN_INFO* = 5# ## *# ## @brief xcb_randr_get_screen_info_request_t# ### type# xcb_randr_get_screen_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_randr_get_screen_size_range_cookie_t# ### type# xcb_randr_get_screen_size_range_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_screen_size_range.# const# XCB_RANDR_GET_SCREEN_SIZE_RANGE* = 6# ## *# ## @brief xcb_randr_get_screen_size_range_request_t# ### type# xcb_randr_get_screen_size_range_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_randr_get_screen_size_range_reply_t# ### type# xcb_randr_get_screen_size_range_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# min_width*: uint16# min_height*: uint16# max_width*: uint16# max_height*: uint16# pad1*: array[16, uint8]# ## * Opcode for xcb_randr_set_screen_size.# const# XCB_RANDR_SET_SCREEN_SIZE* = 7# ## *# ## @brief xcb_randr_set_screen_size_request_t# ### type# xcb_randr_set_screen_size_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# width*: uint16# height*: uint16# mm_width*: uint32# mm_height*: uint32# xcb_randr_mode_flag_t* = enum# XCB_RANDR_MODE_FLAG_HSYNC_POSITIVE = 1, XCB_RANDR_MODE_FLAG_HSYNC_NEGATIVE = 2,# XCB_RANDR_MODE_FLAG_VSYNC_POSITIVE = 4, XCB_RANDR_MODE_FLAG_VSYNC_NEGATIVE = 8,# XCB_RANDR_MODE_FLAG_INTERLACE = 16, XCB_RANDR_MODE_FLAG_DOUBLE_SCAN = 32,# XCB_RANDR_MODE_FLAG_CSYNC = 64, XCB_RANDR_MODE_FLAG_CSYNC_POSITIVE = 128,# XCB_RANDR_MODE_FLAG_CSYNC_NEGATIVE = 256,# XCB_RANDR_MODE_FLAG_HSKEW_PRESENT = 512, XCB_RANDR_MODE_FLAG_BCAST = 1024,# XCB_RANDR_MODE_FLAG_PIXEL_MULTIPLEX = 2048,# XCB_RANDR_MODE_FLAG_DOUBLE_CLOCK = 4096, XCB_RANDR_MODE_FLAG_HALVE_CLOCK = 8192# type# xcb_randr_mode_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_mode_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_get_screen_resources_cookie_t# ### type# xcb_randr_get_screen_resources_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_screen_resources.# const# XCB_RANDR_GET_SCREEN_RESOURCES* = 8# ## *# ## @brief xcb_randr_get_screen_resources_request_t# ### type# xcb_randr_get_screen_resources_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_randr_get_screen_resources_reply_t# ### type# xcb_randr_connection_t* = enum# XCB_RANDR_CONNECTION_CONNECTED = 0, XCB_RANDR_CONNECTION_DISCONNECTED = 1,# XCB_RANDR_CONNECTION_UNKNOWN = 2# type# xcb_randr_get_output_info_cookie_t* {.bycopy.} = object# sequence*: uint8# const# XCB_RANDR_GET_OUTPUT_INFO* = 9# type# xcb_randr_get_output_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# config_timestamp*: xcb_timestamp_t# ## *# ## @brief xcb_randr_get_output_info_reply_t# ### ## *# ## @brief xcb_randr_list_output_properties_cookie_t# ### type# xcb_randr_list_output_properties_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_list_output_properties.# const# XCB_RANDR_LIST_OUTPUT_PROPERTIES* = 10# ## *# ## @brief xcb_randr_list_output_properties_request_t# ### type# xcb_randr_list_output_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# ## *# ## @brief xcb_randr_list_output_properties_reply_t# ### type# xcb_randr_list_output_properties_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_atoms*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_randr_query_output_property_cookie_t# ### type# xcb_randr_query_output_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_query_output_property.# const# XCB_RANDR_QUERY_OUTPUT_PROPERTY* = 11# ## *# ## @brief xcb_randr_query_output_property_request_t# ### type# xcb_randr_query_output_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# property*: xcb_atom_t# ## *# ## @brief xcb_randr_query_output_property_reply_t# ### type# xcb_randr_query_output_property_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pending*: uint8# range*: uint8# immutable*: uint8# pad1*: array[21, uint8]# ## * Opcode for xcb_randr_configure_output_property.# const# XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY* = 12# ## *# ## @brief xcb_randr_configure_output_property_request_t# ### type# xcb_randr_configure_output_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# property*: xcb_atom_t# pending*: uint8# range*: uint8# pad0*: array[2, uint8]# ## * Opcode for xcb_randr_change_output_property.# const# XCB_RANDR_CHANGE_OUTPUT_PROPERTY* = 13# ## *# ## @brief xcb_randr_change_output_property_request_t# ### type# xcb_randr_change_output_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# property*: xcb_atom_t# `type`*: xcb_atom_t# format*: uint8# mode*: uint8# pad0*: array[2, uint8]# num_units*: uint32# ## * Opcode for xcb_randr_delete_output_property.# const# XCB_RANDR_DELETE_OUTPUT_PROPERTY* = 14# ## *# ## @brief xcb_randr_delete_output_property_request_t# ### type# xcb_randr_delete_output_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# property*: xcb_atom_t# type# xcb_randr_get_output_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_output_property.# const# XCB_RANDR_GET_OUTPUT_PROPERTY* = 15# ## *# ## @brief xcb_randr_get_output_property_request_t# ### type# xcb_randr_get_output_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# property*: xcb_atom_t# `type`*: xcb_atom_t# long_offset*: uint32# long_length*: uint32# _delete*: uint8# pending*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_get_output_property_reply_t# ### type# xcb_randr_get_output_property_reply_t* {.bycopy.} = object# response_type*: uint8# format*: uint8# sequence*: uint16# length*: uint32# `type`*: xcb_atom_t# bytes_after*: uint32# num_items*: uint32# pad0*: array[12, uint8]# ## *# ## @brief xcb_randr_create_mode_cookie_t# ### type# xcb_randr_create_mode_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_create_mode.# const# XCB_RANDR_CREATE_MODE* = 16# ## *# ## @brief xcb_randr_create_mode_request_t# ### type# xcb_randr_create_mode_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# mode_info*: xcb_randr_mode_info_t# ## *# ## @brief xcb_randr_create_mode_reply_t# ### type# xcb_randr_create_mode_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# mode*: xcb_randr_mode_t# pad1*: array[20, uint8]# ## * Opcode for xcb_randr_destroy_mode.# const# XCB_RANDR_DESTROY_MODE* = 17# ## *# ## @brief xcb_randr_destroy_mode_request_t# ### type# xcb_randr_destroy_mode_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# mode*: xcb_randr_mode_t# ## * Opcode for xcb_randr_add_output_mode.# const# XCB_RANDR_ADD_OUTPUT_MODE* = 18# ## *# ## @brief xcb_randr_add_output_mode_request_t# ### type# xcb_randr_add_output_mode_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# mode*: xcb_randr_mode_t# ## * Opcode for xcb_randr_delete_output_mode.# const# XCB_RANDR_DELETE_OUTPUT_MODE* = 19# ## *# ## @brief xcb_randr_delete_output_mode_request_t# ### type# xcb_randr_delete_output_mode_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output*: xcb_randr_output_t# mode*: xcb_randr_mode_t# ## *# ## @brief xcb_randr_get_crtc_info_cookie_t# ### type# xcb_randr_get_crtc_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_crtc_info.# const# XCB_RANDR_GET_CRTC_INFO* = 20# ## *# ## @brief xcb_randr_get_crtc_info_request_t# ### type# xcb_randr_get_crtc_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# config_timestamp*: xcb_timestamp_t# type# xcb_randr_set_crtc_config_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_set_crtc_config.# const# XCB_RANDR_SET_CRTC_CONFIG* = 21# ## *# ## @brief xcb_randr_set_crtc_config_request_t# ### type# xcb_randr_set_crtc_config_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# timestamp*: xcb_timestamp_t# config_timestamp*: xcb_timestamp_t# x*: int16# y*: int16# mode*: xcb_randr_mode_t# rotation*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_set_crtc_config_reply_t# ### type# xcb_randr_set_crtc_config_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# pad0*: array[20, uint8]# ## *# ## @brief xcb_randr_get_crtc_gamma_size_cookie_t# ### type# xcb_randr_get_crtc_gamma_size_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_crtc_gamma_size.# const# XCB_RANDR_GET_CRTC_GAMMA_SIZE* = 22# ## *# ## @brief xcb_randr_get_crtc_gamma_size_request_t# ### type# xcb_randr_get_crtc_gamma_size_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# ## *# ## @brief xcb_randr_get_crtc_gamma_size_reply_t# ### type# xcb_randr_get_crtc_gamma_size_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# size*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_randr_get_crtc_gamma_cookie_t# ### type# xcb_randr_get_crtc_gamma_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_crtc_gamma.# const# XCB_RANDR_GET_CRTC_GAMMA* = 23# ## *# ## @brief xcb_randr_get_crtc_gamma_request_t# ### type# xcb_randr_get_crtc_gamma_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# ## *# ## @brief xcb_randr_get_crtc_gamma_reply_t# ### type# xcb_randr_get_crtc_gamma_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# size*: uint16# pad1*: array[22, uint8]# ## * Opcode for xcb_randr_set_crtc_gamma.# const# XCB_RANDR_SET_CRTC_GAMMA* = 24# ## *# ## @brief xcb_randr_set_crtc_gamma_request_t# ### type# xcb_randr_set_crtc_gamma_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# size*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_get_screen_resources_current_cookie_t# ### type# xcb_randr_get_screen_resources_current_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_screen_resources_current.# const# XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT* = 25# ## *# ## @brief xcb_randr_get_screen_resources_current_request_t# ### type# xcb_randr_get_screen_resources_current_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_randr_get_screen_resources_current_reply_t# ### type# xcb_randr_get_screen_resources_current_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# config_timestamp*: xcb_timestamp_t# num_crtcs*: uint16# num_outputs*: uint16# num_modes*: uint16# names_len*: uint16# pad1*: array[8, uint8]# xcb_randr_transform_t* = enum# XCB_RANDR_TRANSFORM_UNIT = 1, XCB_RANDR_TRANSFORM_SCALE_UP = 2,# XCB_RANDR_TRANSFORM_SCALE_DOWN = 4, XCB_RANDR_TRANSFORM_PROJECTIVE = 8# ## * Opcode for xcb_randr_set_crtc_transform.# const# XCB_RANDR_SET_CRTC_TRANSFORM* = 26# ## *# ## @brief xcb_randr_set_crtc_transform_request_t# ### type# xcb_randr_set_crtc_transform_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# transform*: xcb_render_transform_t# filter_len*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_get_crtc_transform_cookie_t# ### type# xcb_randr_get_crtc_transform_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_crtc_transform.# const# XCB_RANDR_GET_CRTC_TRANSFORM* = 27# ## *# ## @brief xcb_randr_get_crtc_transform_request_t# ### type# xcb_randr_get_crtc_transform_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# ## *# ## @brief xcb_randr_get_crtc_transform_reply_t# ### type# xcb_randr_get_crtc_transform_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pending_transform*: xcb_render_transform_t# has_transforms*: uint8# pad1*: array[3, uint8]# current_transform*: xcb_render_transform_t# pad2*: array[4, uint8]# pending_len*: uint16# pending_nparams*: uint16# current_len*: uint16# current_nparams*: uint16# ## *# ## @brief xcb_randr_get_panning_cookie_t# ### type# xcb_randr_get_panning_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_panning.# const# XCB_RANDR_GET_PANNING* = 28# ## *# ## @brief xcb_randr_get_panning_request_t# ### type# xcb_randr_get_panning_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# ## *# ## @brief xcb_randr_get_panning_reply_t# ### type# xcb_randr_get_panning_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# left*: uint16# top*: uint16# width*: uint16# height*: uint16# track_left*: uint16# track_top*: uint16# track_width*: uint16# track_height*: uint16# border_left*: int16# border_top*: int16# border_right*: int16# border_bottom*: int16# ## *# ## @brief xcb_randr_set_panning_cookie_t# ### type# xcb_randr_set_panning_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_set_panning.# const# XCB_RANDR_SET_PANNING* = 29# ## *# ## @brief xcb_randr_set_panning_request_t# ### type# xcb_randr_set_panning_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# crtc*: xcb_randr_crtc_t# timestamp*: xcb_timestamp_t# left*: uint16# top*: uint16# width*: uint16# height*: uint16# track_left*: uint16# track_top*: uint16# track_width*: uint16# track_height*: uint16# border_left*: int16# border_top*: int16# border_right*: int16# border_bottom*: int16# ## *# ## @brief xcb_randr_set_panning_reply_t# ### type# xcb_randr_set_panning_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# ## * Opcode for xcb_randr_set_output_primary.# const# XCB_RANDR_SET_OUTPUT_PRIMARY* = 30# ## *# ## @brief xcb_randr_set_output_primary_request_t# ### type# xcb_randr_set_output_primary_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# output*: xcb_randr_output_t# ## *# ## @brief xcb_randr_get_output_primary_cookie_t# ### type# xcb_randr_get_output_primary_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_output_primary.# const# XCB_RANDR_GET_OUTPUT_PRIMARY* = 31# ## *# ## @brief xcb_randr_get_output_primary_request_t# ### type# xcb_randr_get_output_primary_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_randr_get_output_primary_reply_t# ### type# xcb_randr_get_output_primary_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# output*: xcb_randr_output_t# ## *# ## @brief xcb_randr_get_providers_cookie_t# ### type# xcb_randr_get_providers_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_providers.# const# XCB_RANDR_GET_PROVIDERS* = 32# ## *# ## @brief xcb_randr_get_providers_request_t# ### type# xcb_randr_get_providers_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_randr_get_providers_reply_t# ### type# xcb_randr_get_providers_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# num_providers*: uint16# pad1*: array[18, uint8]# xcb_randr_provider_capability_t* = enum# XCB_RANDR_PROVIDER_CAPABILITY_SOURCE_OUTPUT = 1,# XCB_RANDR_PROVIDER_CAPABILITY_SINK_OUTPUT = 2,# XCB_RANDR_PROVIDER_CAPABILITY_SOURCE_OFFLOAD = 4,# XCB_RANDR_PROVIDER_CAPABILITY_SINK_OFFLOAD = 8# ## *# ## @brief xcb_randr_get_provider_info_cookie_t# ### type# xcb_randr_get_provider_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_provider_info.# const# XCB_RANDR_GET_PROVIDER_INFO* = 33# ## *# ## @brief xcb_randr_get_provider_info_request_t# ### type# xcb_randr_get_provider_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# config_timestamp*: xcb_timestamp_t# ## *# ## @brief xcb_randr_get_provider_info_reply_t# ### type# xcb_randr_get_provider_info_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# capabilities*: uint32# num_crtcs*: uint16# num_outputs*: uint16# num_associated_providers*: uint16# name_len*: uint16# pad0*: array[8, uint8]# ## * Opcode for xcb_randr_set_provider_offload_sink.# const# XCB_RANDR_SET_PROVIDER_OFFLOAD_SINK* = 34# ## *# ## @brief xcb_randr_set_provider_offload_sink_request_t# ### type# xcb_randr_set_provider_offload_sink_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# sink_provider*: xcb_randr_provider_t# config_timestamp*: xcb_timestamp_t# ## * Opcode for xcb_randr_set_provider_output_source.# const# XCB_RANDR_SET_PROVIDER_OUTPUT_SOURCE* = 35# ## *# ## @brief xcb_randr_set_provider_output_source_request_t# ### type# xcb_randr_set_provider_output_source_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# source_provider*: xcb_randr_provider_t# config_timestamp*: xcb_timestamp_t# ## *# ## @brief xcb_randr_list_provider_properties_cookie_t# ### type# xcb_randr_list_provider_properties_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_list_provider_properties.# const# XCB_RANDR_LIST_PROVIDER_PROPERTIES* = 36# ## *# ## @brief xcb_randr_list_provider_properties_request_t# ### type# xcb_randr_list_provider_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# ## *# ## @brief xcb_randr_list_provider_properties_reply_t# ### type# xcb_randr_list_provider_properties_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_atoms*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_randr_query_provider_property_cookie_t# ### type# xcb_randr_query_provider_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_query_provider_property.# const# XCB_RANDR_QUERY_PROVIDER_PROPERTY* = 37# ## *# ## @brief xcb_randr_query_provider_property_request_t# ### type# xcb_randr_query_provider_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# property*: xcb_atom_t# ## *# ## @brief xcb_randr_query_provider_property_reply_t# ### type# xcb_randr_query_provider_property_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pending*: uint8# range*: uint8# immutable*: uint8# pad1*: array[21, uint8]# ## * Opcode for xcb_randr_configure_provider_property.# const# XCB_RANDR_CONFIGURE_PROVIDER_PROPERTY* = 38# ## *# ## @brief xcb_randr_configure_provider_property_request_t# ### type# xcb_randr_configure_provider_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# property*: xcb_atom_t# pending*: uint8# range*: uint8# pad0*: array[2, uint8]# ## * Opcode for xcb_randr_change_provider_property.# const# XCB_RANDR_CHANGE_PROVIDER_PROPERTY* = 39# ## *# ## @brief xcb_randr_change_provider_property_request_t# ### type# xcb_randr_change_provider_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# property*: xcb_atom_t# `type`*: xcb_atom_t# format*: uint8# mode*: uint8# pad0*: array[2, uint8]# num_items*: uint32# ## * Opcode for xcb_randr_delete_provider_property.# const# XCB_RANDR_DELETE_PROVIDER_PROPERTY* = 40# ## *# ## @brief xcb_randr_delete_provider_property_request_t# ### type# xcb_randr_delete_provider_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# property*: xcb_atom_t# ## *# ## @brief xcb_randr_get_provider_property_cookie_t# ### type# xcb_randr_get_provider_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_provider_property.# const# XCB_RANDR_GET_PROVIDER_PROPERTY* = 41# ## *# ## @brief xcb_randr_get_provider_property_request_t# ### type# xcb_randr_get_provider_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# provider*: xcb_randr_provider_t# property*: xcb_atom_t# `type`*: xcb_atom_t# long_offset*: uint32# long_length*: uint32# _delete*: uint8# pending*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_randr_get_provider_property_reply_t# ### type# xcb_randr_get_provider_property_reply_t* {.bycopy.} = object# response_type*: uint8# format*: uint8# sequence*: uint16# length*: uint32# `type`*: xcb_atom_t# bytes_after*: uint32# num_items*: uint32# pad0*: array[12, uint8]# ## * Opcode for xcb_randr_screen_change_notify.# const# XCB_RANDR_SCREEN_CHANGE_NOTIFY* = 0# ## *# ## @brief xcb_randr_screen_change_notify_event_t# ### type# xcb_randr_screen_change_notify_event_t* {.bycopy.} = object# response_type*: uint8# rotation*: uint8# sequence*: uint16# timestamp*: xcb_timestamp_t# config_timestamp*: xcb_timestamp_t# root*: xcb_window_t# request_window*: xcb_window_t# sizeID*: uint16# subpixel_order*: uint16# width*: uint16# height*: uint16# mwidth*: uint16# mheight*: uint16# xcb_randr_notify_t* = enum# XCB_RANDR_NOTIFY_CRTC_CHANGE = 0, XCB_RANDR_NOTIFY_OUTPUT_CHANGE = 1,# XCB_RANDR_NOTIFY_OUTPUT_PROPERTY = 2, XCB_RANDR_NOTIFY_PROVIDER_CHANGE = 3,# XCB_RANDR_NOTIFY_PROVIDER_PROPERTY = 4, XCB_RANDR_NOTIFY_RESOURCE_CHANGE = 5,# XCB_RANDR_NOTIFY_LEASE = 6# ## *# ## @brief xcb_randr_crtc_change_t# ### type# xcb_randr_crtc_change_t* {.bycopy.} = object# timestamp*: xcb_timestamp_t# window*: xcb_window_t# crtc*: xcb_randr_crtc_t# mode*: xcb_randr_mode_t# rotation*: uint16# pad0*: array[2, uint8]# x*: int16# y*: int16# width*: uint16# height*: uint16# ## *# ## @brief xcb_randr_crtc_change_iterator_t# ### type# xcb_randr_crtc_change_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_crtc_change_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_output_change_t# ### type# xcb_randr_output_change_t* {.bycopy.} = object# timestamp*: xcb_timestamp_t# config_timestamp*: xcb_timestamp_t# window*: xcb_window_t# output*: xcb_randr_output_t# crtc*: xcb_randr_crtc_t# mode*: xcb_randr_mode_t# rotation*: uint16# connection*: uint8# subpixel_order*: uint8# ## *# ## @brief xcb_randr_output_change_iterator_t# ### type# xcb_randr_output_change_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_output_change_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_output_property_t# ### type# xcb_randr_output_property_t* {.bycopy.} = object# window*: xcb_window_t# output*: xcb_randr_output_t# atom*: xcb_atom_t# timestamp*: xcb_timestamp_t# status*: uint8# pad0*: array[11, uint8]# ## *# ## @brief xcb_randr_output_property_iterator_t# ### type# xcb_randr_output_property_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_output_property_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_provider_change_t# ### type# xcb_randr_provider_change_t* {.bycopy.} = object# timestamp*: xcb_timestamp_t# window*: xcb_window_t# provider*: xcb_randr_provider_t# pad0*: array[16, uint8]# ## *# ## @brief xcb_randr_provider_change_iterator_t# ### type# xcb_randr_provider_change_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_provider_change_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_provider_property_t# ### type# xcb_randr_provider_property_t* {.bycopy.} = object# window*: xcb_window_t# provider*: xcb_randr_provider_t# atom*: xcb_atom_t# timestamp*: xcb_timestamp_t# state*: uint8# pad0*: array[11, uint8]# ## *# ## @brief xcb_randr_provider_property_iterator_t# ### type# xcb_randr_provider_property_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_provider_property_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_resource_change_t# ### type# xcb_randr_resource_change_t* {.bycopy.} = object# timestamp*: xcb_timestamp_t# window*: xcb_window_t# pad0*: array[20, uint8]# ## *# ## @brief xcb_randr_resource_change_iterator_t# ### type# xcb_randr_resource_change_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_resource_change_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_monitor_info_t# ### type# xcb_randr_monitor_info_t* {.bycopy.} = object# name*: xcb_atom_t# primary*: uint8# automatic*: uint8# nOutput*: uint16# x*: int16# y*: int16# width*: uint16# height*: uint16# width_in_millimeters*: uint32# height_in_millimeters*: uint32# ## *# ## @brief xcb_randr_monitor_info_iterator_t# ### type# xcb_randr_monitor_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_monitor_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_get_monitors_cookie_t# ### type# xcb_randr_get_monitors_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_get_monitors.# const# XCB_RANDR_GET_MONITORS* = 42# ## *# ## @brief xcb_randr_get_monitors_request_t# ### type# xcb_randr_get_monitors_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# get_active*: uint8# ## *# ## @brief xcb_randr_get_monitors_reply_t# ### type# xcb_randr_get_monitors_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# timestamp*: xcb_timestamp_t# nMonitors*: uint32# nOutputs*: uint32# pad1*: array[12, uint8]# ## * Opcode for xcb_randr_set_monitor.# const# XCB_RANDR_SET_MONITOR* = 43# ## *# ## @brief xcb_randr_set_monitor_request_t# ### type# xcb_randr_set_monitor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_randr_delete_monitor.# const# XCB_RANDR_DELETE_MONITOR* = 44# ## *# ## @brief xcb_randr_delete_monitor_request_t# ### type# xcb_randr_delete_monitor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# name*: xcb_atom_t# ## *# ## @brief xcb_randr_create_lease_cookie_t# ### type# xcb_randr_create_lease_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_randr_create_lease.# const# XCB_RANDR_CREATE_LEASE* = 45# ## *# ## @brief xcb_randr_create_lease_request_t# ### type# xcb_randr_create_lease_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# lid*: xcb_randr_lease_t# num_crtcs*: uint16# num_outputs*: uint16# ## *# ## @brief xcb_randr_create_lease_reply_t# ### type# xcb_randr_create_lease_reply_t* {.bycopy.} = object# response_type*: uint8# nfd*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# ## * Opcode for xcb_randr_free_lease.# const# XCB_RANDR_FREE_LEASE* = 46# ## *# ## @brief xcb_randr_free_lease_request_t# ### type# xcb_randr_free_lease_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# lid*: xcb_randr_lease_t# terminate*: uint8# ## *# ## @brief xcb_randr_lease_notify_t# ### type# xcb_randr_lease_notify_t* {.bycopy.} = object# timestamp*: xcb_timestamp_t# window*: xcb_window_t# lease*: xcb_randr_lease_t# created*: uint8# pad0*: array[15, uint8]# ## *# ## @brief xcb_randr_lease_notify_iterator_t# ### type# xcb_randr_lease_notify_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_lease_notify_t# rem*: cint# index*: cint# ## *# ## @brief xcb_randr_notify_data_t# ### type# xcb_randr_notify_data_t* {.bycopy.} = object {.union.}# cc*: xcb_randr_crtc_change_t# oc*: xcb_randr_output_change_t# op*: xcb_randr_output_property_t# pc*: xcb_randr_provider_change_t# pp*: xcb_randr_provider_property_t# rc*: xcb_randr_resource_change_t# lc*: xcb_randr_lease_notify_t# ## *# ## @brief xcb_randr_notify_data_iterator_t# ### type# xcb_randr_notify_data_iterator_t* {.bycopy.} = object# data*: ptr xcb_randr_notify_data_t# rem*: cint# index*: cint# ## * Opcode for xcb_randr_notify.# const# XCB_RANDR_NOTIFY* = 1# ## *# ## @brief xcb_randr_notify_event_t# ### type# xcb_randr_notify_event_t* {.bycopy.} = object# response_type*: uint8# subCode*: uint8# sequence*: uint16# u*: xcb_randr_notify_data_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_mode_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_mode_t)# ### proc xcb_randr_list_output_properties_sizeof*(buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_list_output_properties_unchecked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t): xcb_randr_list_output_properties_cookie_t# proc xcb_randr_list_output_properties_atoms_length*(# R: ptr xcb_randr_list_output_properties_reply_t): cint# proc xcb_randr_list_output_properties_atoms_end*(# R: ptr xcb_randr_list_output_properties_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_list_output_properties_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_query_output_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_query_output_property*(c: ptr xcb_connection_t;# output: xcb_randr_output_t;# property: xcb_atom_t): xcb_randr_query_output_property_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_query_output_property_unchecked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; property: xcb_atom_t): xcb_randr_query_output_property_cookie_t# proc xcb_randr_query_output_property_valid_values*(# R: ptr xcb_randr_query_output_property_reply_t): ptr int32# proc xcb_randr_query_output_property_valid_values_length*(# R: ptr xcb_randr_query_output_property_reply_t): cint# proc xcb_randr_query_output_property_valid_values_end*(# R: ptr xcb_randr_query_output_property_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_query_output_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_query_output_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_query_output_property_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_query_output_property_reply_t# proc xcb_randr_configure_output_property_sizeof*(_buffer: pointer;# values_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_configure_output_property_checked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; property: xcb_atom_t; pending: uint8;# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_configure_output_property*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; property: xcb_atom_t; pending: uint8;# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t# proc xcb_randr_configure_output_property_values*(# R: ptr xcb_randr_configure_output_property_request_t): ptr int32# proc xcb_randr_configure_output_property_values_length*(# R: ptr xcb_randr_configure_output_property_request_t): cint# proc xcb_randr_configure_output_property_values_end*(# R: ptr xcb_randr_configure_output_property_request_t): xcb_generic_iterator_t# proc xcb_randr_change_output_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_change_output_property_checked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; property: xcb_atom_t; `type`: xcb_atom_t;# format: uint8; mode: uint8; num_units: uint32; data: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_change_output_property*(c: ptr xcb_connection_t;# output: xcb_randr_output_t;# property: xcb_atom_t; `type`: xcb_atom_t;# format: uint8; mode: uint8;# num_units: uint32; data: pointer): xcb_void_cookie_t# proc xcb_randr_change_output_property_data*(# R: ptr xcb_randr_change_output_property_request_t): pointer# proc xcb_randr_change_output_property_data_length*(# R: ptr xcb_randr_change_output_property_request_t): cint# proc xcb_randr_change_output_property_data_end*(# R: ptr xcb_randr_change_output_property_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_delete_output_property_checked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; property: xcb_atom_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_delete_output_property*(c: ptr xcb_connection_t;# output: xcb_randr_output_t;# property: xcb_atom_t): xcb_void_cookie_t# proc xcb_randr_get_output_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_output_property_unchecked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; property: xcb_atom_t; `type`: xcb_atom_t;# long_offset: uint32; long_length: uint32; _delete: uint8; pending: uint8): xcb_randr_get_output_property_cookie_t# proc xcb_randr_get_output_property_data_end*(# R: ptr xcb_randr_get_output_property_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_output_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_create_mode_sizeof*(_buffer: pointer; name_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_create_mode_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;# mode_info: xcb_randr_mode_info_t;# name_len: uint32; name: cstring): xcb_randr_create_mode_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_create_mode_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_destroy_mode_checked*(c: ptr xcb_connection_t; mode: xcb_randr_mode_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_destroy_mode*(c: ptr xcb_connection_t; mode: xcb_randr_mode_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_add_output_mode_checked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t;# mode: xcb_randr_mode_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_add_output_mode*(c: ptr xcb_connection_t; output: xcb_randr_output_t;# mode: xcb_randr_mode_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_delete_output_mode_checked*(c: ptr xcb_connection_t;# output: xcb_randr_output_t; mode: xcb_randr_mode_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_delete_output_mode*(c: ptr xcb_connection_t;# output: xcb_randr_output_t;# mode: xcb_randr_mode_t): xcb_void_cookie_t# proc xcb_randr_get_crtc_info_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_crtc_info*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;# config_timestamp: xcb_timestamp_t): xcb_randr_get_crtc_info_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_crtc_info_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t;# config_timestamp: xcb_timestamp_t): xcb_randr_get_crtc_info_cookie_t# proc xcb_randr_get_crtc_info_possible_end*(R: ptr xcb_randr_get_crtc_info_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_crtc_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_set_crtc_config_sizeof*(_buffer: pointer; outputs_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_crtc_config*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;# timestamp: xcb_timestamp_t;# config_timestamp: xcb_timestamp_t; x: int16;# y: int16; mode: xcb_randr_mode_t;# rotation: uint16; outputs_len: uint32;# outputs: ptr xcb_randr_output_t): xcb_randr_set_crtc_config_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_set_crtc_config_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t; timestamp: xcb_timestamp_t;# config_timestamp: xcb_timestamp_t; x: int16; y: int16; mode: xcb_randr_mode_t;# rotation: uint16; outputs_len: uint32; outputs: ptr xcb_randr_output_t): xcb_randr_set_crtc_config_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_set_crtc_config_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_set_crtc_config_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_set_crtc_config_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_set_crtc_config_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_crtc_gamma_size*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_size_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_crtc_gamma_size_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_size_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_crtc_gamma_size_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_crtc_gamma_size_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_crtc_gamma_size_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_gamma_size_reply_t# proc xcb_randr_get_crtc_gamma_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_crtc_gamma*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_crtc_gamma_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_gamma_cookie_t# proc xcb_randr_get_crtc_gamma_red*(R: ptr xcb_randr_get_crtc_gamma_reply_t): ptr uint16# proc xcb_randr_get_crtc_gamma_red_length*(R: ptr xcb_randr_get_crtc_gamma_reply_t): cint# proc xcb_randr_get_crtc_gamma_red_end*(R: ptr xcb_randr_get_crtc_gamma_reply_t): xcb_generic_iterator_t# proc xcb_randr_get_crtc_gamma_green*(R: ptr xcb_randr_get_crtc_gamma_reply_t): ptr uint16# proc xcb_randr_get_crtc_gamma_green_length*(# R: ptr xcb_randr_get_crtc_gamma_reply_t): cint# proc xcb_randr_get_crtc_gamma_green_end*(R: ptr xcb_randr_get_crtc_gamma_reply_t): xcb_generic_iterator_t# proc xcb_randr_get_crtc_gamma_blue*(R: ptr xcb_randr_get_crtc_gamma_reply_t): ptr uint16# proc xcb_randr_get_crtc_gamma_blue_length*(# R: ptr xcb_randr_get_crtc_gamma_reply_t): cint# proc xcb_randr_get_crtc_gamma_blue_end*(R: ptr xcb_randr_get_crtc_gamma_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_crtc_gamma_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_crtc_gamma_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_crtc_gamma_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_gamma_reply_t# proc xcb_randr_set_crtc_gamma_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_set_crtc_gamma_checked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t; size: uint16;# red: ptr uint16; green: ptr uint16;# blue: ptr uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_crtc_gamma*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;# size: uint16; red: ptr uint16; green: ptr uint16;# blue: ptr uint16): xcb_void_cookie_t# proc xcb_randr_set_crtc_gamma_red*(R: ptr xcb_randr_set_crtc_gamma_request_t): ptr uint16# proc xcb_randr_set_crtc_gamma_red_length*(# R: ptr xcb_randr_set_crtc_gamma_request_t): cint# proc xcb_randr_set_crtc_gamma_red_end*(R: ptr xcb_randr_set_crtc_gamma_request_t): xcb_generic_iterator_t# proc xcb_randr_set_crtc_gamma_green*(R: ptr xcb_randr_set_crtc_gamma_request_t): ptr uint16# proc xcb_randr_set_crtc_gamma_green_length*(# R: ptr xcb_randr_set_crtc_gamma_request_t): cint# proc xcb_randr_set_crtc_gamma_green_end*(R: ptr xcb_randr_set_crtc_gamma_request_t): xcb_generic_iterator_t# proc xcb_randr_set_crtc_gamma_blue*(R: ptr xcb_randr_set_crtc_gamma_request_t): ptr uint16# proc xcb_randr_set_crtc_gamma_blue_length*(# R: ptr xcb_randr_set_crtc_gamma_request_t): cint# proc xcb_randr_set_crtc_gamma_blue_end*(R: ptr xcb_randr_set_crtc_gamma_request_t): xcb_generic_iterator_t# proc xcb_randr_get_screen_resources_current_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_screen_resources_current*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_randr_get_screen_resources_current_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_screen_resources_current_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_screen_resources_current_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_screen_resources_current_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_screen_resources_current_reply_t# proc xcb_randr_set_crtc_transform_sizeof*(_buffer: pointer;# filter_params_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_set_crtc_transform_checked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t; transform: xcb_render_transform_t; filter_len: uint16;# filter_name: cstring; filter_params_len: uint32;# filter_params: ptr xcb_render_fixed_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_crtc_transform*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;# transform: xcb_render_transform_t;# filter_len: uint16; filter_name: cstring;# filter_params_len: uint32;# filter_params: ptr xcb_render_fixed_t): xcb_void_cookie_t# proc xcb_randr_set_crtc_transform_filter_name*(# R: ptr xcb_randr_set_crtc_transform_request_t): cstring# proc xcb_randr_set_crtc_transform_filter_name_length*(# R: ptr xcb_randr_set_crtc_transform_request_t): cint# proc xcb_randr_set_crtc_transform_filter_name_end*(# R: ptr xcb_randr_set_crtc_transform_request_t): xcb_generic_iterator_t# proc xcb_randr_set_crtc_transform_filter_params*(# R: ptr xcb_randr_set_crtc_transform_request_t): ptr xcb_render_fixed_t# proc xcb_randr_set_crtc_transform_filter_params_length*(# R: ptr xcb_randr_set_crtc_transform_request_t): cint# proc xcb_randr_set_crtc_transform_filter_params_end*(# R: ptr xcb_randr_set_crtc_transform_request_t): xcb_generic_iterator_t# proc xcb_randr_get_crtc_transform_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_crtc_transform*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_transform_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_crtc_transform_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t): xcb_randr_get_crtc_transform_cookie_t# proc xcb_randr_get_crtc_transform_pending_filter_name*(# R: ptr xcb_randr_get_crtc_transform_reply_t): cstring# proc xcb_randr_get_crtc_transform_pending_filter_name_length*(# R: ptr xcb_randr_get_crtc_transform_reply_t): cint# proc xcb_randr_get_crtc_transform_pending_filter_name_end*(# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t# proc xcb_randr_get_crtc_transform_pending_params*(# R: ptr xcb_randr_get_crtc_transform_reply_t): ptr xcb_render_fixed_t# proc xcb_randr_get_crtc_transform_pending_params_length*(# R: ptr xcb_randr_get_crtc_transform_reply_t): cint# proc xcb_randr_get_crtc_transform_pending_params_end*(# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t# proc xcb_randr_get_crtc_transform_current_filter_name*(# R: ptr xcb_randr_get_crtc_transform_reply_t): cstring# proc xcb_randr_get_crtc_transform_current_filter_name_length*(# R: ptr xcb_randr_get_crtc_transform_reply_t): cint# proc xcb_randr_get_crtc_transform_current_filter_name_end*(# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t# proc xcb_randr_get_crtc_transform_current_params*(# R: ptr xcb_randr_get_crtc_transform_reply_t): ptr xcb_render_fixed_t# proc xcb_randr_get_crtc_transform_current_params_length*(# R: ptr xcb_randr_get_crtc_transform_reply_t): cint# proc xcb_randr_get_crtc_transform_current_params_end*(# R: ptr xcb_randr_get_crtc_transform_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_crtc_transform_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_crtc_transform_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_crtc_transform_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_transform_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_panning*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t): xcb_randr_get_panning_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_panning_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t): xcb_randr_get_panning_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_panning_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_panning_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_panning_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_panning_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_panning*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;# timestamp: xcb_timestamp_t; left: uint16;# top: uint16; width: uint16; height: uint16;# track_left: uint16; track_top: uint16;# track_width: uint16; track_height: uint16;# border_left: int16; border_top: int16;# border_right: int16; border_bottom: int16): xcb_randr_set_panning_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_set_panning_unchecked*(c: ptr xcb_connection_t;# crtc: xcb_randr_crtc_t;# timestamp: xcb_timestamp_t; left: uint16;# top: uint16; width: uint16;# height: uint16; track_left: uint16;# track_top: uint16; track_width: uint16;# track_height: uint16; border_left: int16;# border_top: int16; border_right: int16;# border_bottom: int16): xcb_randr_set_panning_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_set_panning_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_set_panning_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_set_panning_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_set_panning_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_set_output_primary_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; output: xcb_randr_output_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_output_primary*(c: ptr xcb_connection_t; window: xcb_window_t;# output: xcb_randr_output_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_output_primary_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_randr_get_output_primary_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_output_primary_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_providers_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_providers*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_providers_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_providers_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_randr_get_providers_cookie_t# proc xcb_randr_get_providers_providers*(R: ptr xcb_randr_get_providers_reply_t): ptr xcb_randr_provider_t# proc xcb_randr_get_providers_providers_length*(# R: ptr xcb_randr_get_providers_reply_t): cint# proc xcb_randr_get_providers_providers_end*(# R: ptr xcb_randr_get_providers_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_providers_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_providers_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_providers_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_providers_reply_t# proc xcb_randr_get_provider_info_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_provider_info*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t;# config_timestamp: xcb_timestamp_t): xcb_randr_get_provider_info_cookie_t# proc xcb_randr_get_provider_info_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_provider_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_provider_info_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_set_provider_offload_sink_checked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; sink_provider: xcb_randr_provider_t;# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_provider_offload_sink*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; sink_provider: xcb_randr_provider_t;# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_set_provider_output_source_checked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; source_provider: xcb_randr_provider_t;# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_provider_output_source*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; source_provider: xcb_randr_provider_t;# config_timestamp: xcb_timestamp_t): xcb_void_cookie_t# proc xcb_randr_list_provider_properties_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_query_provider_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_query_provider_property*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t;# property: xcb_atom_t): xcb_randr_query_provider_property_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_query_provider_property_unchecked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; property: xcb_atom_t): xcb_randr_query_provider_property_cookie_t# proc xcb_randr_query_provider_property_valid_values*(# R: ptr xcb_randr_query_provider_property_reply_t): ptr int32# proc xcb_randr_query_provider_property_valid_values_length*(# R: ptr xcb_randr_query_provider_property_reply_t): cint# proc xcb_randr_query_provider_property_valid_values_end*(# R: ptr xcb_randr_query_provider_property_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_query_provider_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_query_provider_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_query_provider_property_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_query_provider_property_reply_t# proc xcb_randr_configure_provider_property_sizeof*(_buffer: pointer;# values_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_configure_provider_property_checked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; property: xcb_atom_t; pending: uint8;# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_configure_provider_property*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; property: xcb_atom_t; pending: uint8;# range: uint8; values_len: uint32; values: ptr int32): xcb_void_cookie_t# proc xcb_randr_configure_provider_property_values*(# R: ptr xcb_randr_configure_provider_property_request_t): ptr int32# proc xcb_randr_configure_provider_property_values_length*(# R: ptr xcb_randr_configure_provider_property_request_t): cint# proc xcb_randr_configure_provider_property_values_end*(# R: ptr xcb_randr_configure_provider_property_request_t): xcb_generic_iterator_t# proc xcb_randr_change_provider_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_change_provider_property_checked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; property: xcb_atom_t; `type`: xcb_atom_t;# format: uint8; mode: uint8; num_items: uint32; data: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_change_provider_property*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t;# property: xcb_atom_t; `type`: xcb_atom_t;# format: uint8; mode: uint8;# num_items: uint32; data: pointer): xcb_void_cookie_t# proc xcb_randr_change_provider_property_data*(# R: ptr xcb_randr_change_provider_property_request_t): pointer# proc xcb_randr_change_provider_property_data_length*(# R: ptr xcb_randr_change_provider_property_request_t): cint# proc xcb_randr_change_provider_property_data_end*(# R: ptr xcb_randr_change_provider_property_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_delete_provider_property_checked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; property: xcb_atom_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_delete_provider_property*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t;# property: xcb_atom_t): xcb_void_cookie_t# proc xcb_randr_get_provider_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_get_provider_property*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t;# property: xcb_atom_t; `type`: xcb_atom_t;# long_offset: uint32; long_length: uint32;# _delete: uint8; pending: uint8): xcb_randr_get_provider_property_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_get_provider_property_unchecked*(c: ptr xcb_connection_t;# provider: xcb_randr_provider_t; property: xcb_atom_t; `type`: xcb_atom_t;# long_offset: uint32; long_length: uint32; _delete: uint8; pending: uint8): xcb_randr_get_provider_property_cookie_t# proc xcb_randr_get_provider_property_data*(# R: ptr xcb_randr_get_provider_property_reply_t): pointer# proc xcb_randr_get_provider_property_data_length*(# R: ptr xcb_randr_get_provider_property_reply_t): cint# proc xcb_randr_get_provider_property_data_end*(# R: ptr xcb_randr_get_provider_property_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_get_provider_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_get_provider_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_provider_property_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_provider_property_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_crtc_change_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_crtc_change_t)# ### proc xcb_randr_crtc_change_next*(i: ptr xcb_randr_crtc_change_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_crtc_change_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_crtc_change_end*(i: xcb_randr_crtc_change_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_output_change_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_output_change_t)# ### proc xcb_randr_output_change_next*(i: ptr xcb_randr_output_change_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_output_change_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_output_change_end*(i: xcb_randr_output_change_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_output_property_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_output_property_t)# ### proc xcb_randr_output_property_next*(i: ptr xcb_randr_output_property_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_output_property_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_output_property_end*(i: xcb_randr_output_property_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_provider_change_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_provider_change_t)# ### proc xcb_randr_provider_change_next*(i: ptr xcb_randr_provider_change_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_provider_change_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_provider_change_end*(i: xcb_randr_provider_change_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_provider_property_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_provider_property_t)# ### proc xcb_randr_provider_property_next*(i: ptr xcb_randr_provider_property_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_provider_property_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_provider_property_end*(i: xcb_randr_provider_property_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_resource_change_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_resource_change_t)# ### proc xcb_randr_resource_change_next*(i: ptr xcb_randr_resource_change_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_resource_change_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_resource_change_end*(i: xcb_randr_resource_change_iterator_t): xcb_generic_iterator_t# proc xcb_randr_monitor_info_sizeof*(_buffer: pointer): cint# proc xcb_randr_monitor_info_outputs_end*(R: ptr xcb_randr_monitor_info_t): xcb_generic_iterator_t# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_monitor_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_monitor_info_end*(i: xcb_randr_monitor_info_iterator_t): xcb_generic_iterator_t# proc xcb_randr_set_monitor_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_set_monitor_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# monitorinfo: ptr xcb_randr_monitor_info_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_set_monitor*(c: ptr xcb_connection_t; window: xcb_window_t;# monitorinfo: ptr xcb_randr_monitor_info_t): xcb_void_cookie_t# proc xcb_randr_set_monitor_monitorinfo*(R: ptr xcb_randr_set_monitor_request_t): ptr xcb_randr_monitor_info_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_delete_monitor_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; name: xcb_atom_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_delete_monitor*(c: ptr xcb_connection_t; window: xcb_window_t;# name: xcb_atom_t): xcb_void_cookie_t# proc xcb_randr_create_lease_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_create_lease*(c: ptr xcb_connection_t; window: xcb_window_t;# lid: xcb_randr_lease_t; num_crtcs: uint16;# num_outputs: uint16; crtcs: ptr xcb_randr_crtc_t;# outputs: ptr xcb_randr_output_t): xcb_randr_create_lease_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_randr_create_lease_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t;# lid: xcb_randr_lease_t; num_crtcs: uint16;# num_outputs: uint16;# crtcs: ptr xcb_randr_crtc_t;# outputs: ptr xcb_randr_output_t): xcb_randr_create_lease_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_randr_create_lease_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_create_lease_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_create_lease_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_randr_create_lease_reply_t# ## *# ## Return the reply fds# ## @param c The connection# ## @param reply The reply# ### ## Returns the array of reply fds of the request asked by# ### ## The returned value must be freed by the caller using free().# ### proc xcb_randr_create_lease_reply_fds*(c: ptr xcb_connection_t; ## *<# reply: ptr xcb_randr_create_lease_reply_t): ptr cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_randr_free_lease_checked*(c: ptr xcb_connection_t; lid: xcb_randr_lease_t;# terminate: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_randr_free_lease*(c: ptr xcb_connection_t; lid: xcb_randr_lease_t;# terminate: uint8): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_lease_notify_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_lease_notify_t)# ### proc xcb_randr_lease_notify_next*(i: ptr xcb_randr_lease_notify_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_lease_notify_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_lease_notify_end*(i: xcb_randr_lease_notify_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_randr_notify_data_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_randr_notify_data_t)# ### proc xcb_randr_notify_data_next*(i: ptr xcb_randr_notify_data_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_randr_notify_data_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_randr_notify_data_end*(i: xcb_randr_notify_data_iterator_t): xcb_generic_iterator_t# ## *# ## @}# ### ### ## This file generated automatically from record.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Record_API XCB Record API# ## @brief Record XCB Protocol Implementation.# ## @{# ### import# xcb# const# XCB_RECORD_MAJOR_VERSION* = 1# XCB_RECORD_MINOR_VERSION* = 13# var xcb_record_id*: xcb_extension_t# type# xcb_record_context_t* = uint32# ## *# ## @brief xcb_record_context_iterator_t# ### type# xcb_record_context_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_context_t# rem*: cint# index*: cint# ## *# ## @brief xcb_record_range_8_t# ### type# xcb_record_range_8_t* {.bycopy.} = object# first*: uint8# last*: uint8# ## *# ## @brief xcb_record_range_8_iterator_t# ### type# xcb_record_range_8_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_range_8_t# rem*: cint# index*: cint# ## *# ## @brief xcb_record_range_16_t# ### type# xcb_record_range_16_t* {.bycopy.} = object# first*: uint16# last*: uint16# ## *# ## @brief xcb_record_range_16_iterator_t# ### type# xcb_record_range_16_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_range_16_t# rem*: cint# index*: cint# ## *# ## @brief xcb_record_ext_range_t# ### type# xcb_record_ext_range_t* {.bycopy.} = object# major*: xcb_record_range_8_t# minor*: xcb_record_range_16_t# ## *# ## @brief xcb_record_ext_range_iterator_t# ### type# xcb_record_ext_range_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_ext_range_t# rem*: cint# index*: cint# ## *# ## @brief xcb_record_range_t# ### type# xcb_record_range_t* {.bycopy.} = object# core_requests*: xcb_record_range_8_t# core_replies*: xcb_record_range_8_t# ext_requests*: xcb_record_ext_range_t# ext_replies*: xcb_record_ext_range_t# delivered_events*: xcb_record_range_8_t# device_events*: xcb_record_range_8_t# errors*: xcb_record_range_8_t# client_started*: uint8# client_died*: uint8# ## *# ## @brief xcb_record_range_iterator_t# ### type# xcb_record_range_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_range_t# rem*: cint# index*: cint# xcb_record_element_header_t* = uint8# ## *# ## @brief xcb_record_element_header_iterator_t# ### type# xcb_record_element_header_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_element_header_t# rem*: cint# index*: cint# xcb_record_h_type_t* = enum# XCB_RECORD_H_TYPE_FROM_SERVER_TIME = 1, XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = 2,# XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = 4# xcb_record_client_spec_t* = uint32# ## *# ## @brief xcb_record_client_spec_iterator_t# ### type# xcb_record_client_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_client_spec_t# rem*: cint# index*: cint# xcb_record_cs_t* = enum# XCB_RECORD_CS_CURRENT_CLIENTS = 1, XCB_RECORD_CS_FUTURE_CLIENTS = 2,# XCB_RECORD_CS_ALL_CLIENTS = 3# ## *# ## @brief xcb_record_client_info_t# ### type# xcb_record_client_info_t* {.bycopy.} = object# client_resource*: xcb_record_client_spec_t# num_ranges*: uint32# ## *# ## @brief xcb_record_client_info_iterator_t# ### type# xcb_record_client_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_record_client_info_t# rem*: cint# index*: cint# ## * Opcode for xcb_record_bad_context.# const# XCB_RECORD_BAD_CONTEXT* = 0# ## *# ## @brief xcb_record_bad_context_error_t# ### type# xcb_record_bad_context_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# invalid_record*: uint32# ## *# ## @brief xcb_record_query_version_cookie_t# ### type# xcb_record_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_record_query_version.# const# XCB_RECORD_QUERY_VERSION* = 0# ## *# ## @brief xcb_record_query_version_request_t# ### type# xcb_record_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint16# minor_version*: uint16# ## *# ## @brief xcb_record_query_version_reply_t# ### type# xcb_record_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint16# minor_version*: uint16# ## * Opcode for xcb_record_create_context.# const# XCB_RECORD_CREATE_CONTEXT* = 1# ## *# ## @brief xcb_record_create_context_request_t# ### type# xcb_record_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# element_header*: xcb_record_element_header_t# pad0*: array[3, uint8]# num_client_specs*: uint32# num_ranges*: uint32# ## * Opcode for xcb_record_register_clients.# const# XCB_RECORD_REGISTER_CLIENTS* = 2# ## *# ## @brief xcb_record_register_clients_request_t# ### type# xcb_record_register_clients_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# element_header*: xcb_record_element_header_t# pad0*: array[3, uint8]# num_client_specs*: uint32# num_ranges*: uint32# ## * Opcode for xcb_record_unregister_clients.# const# XCB_RECORD_UNREGISTER_CLIENTS* = 3# ## *# ## @brief xcb_record_unregister_clients_request_t# ### type# xcb_record_unregister_clients_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# num_client_specs*: uint32# ## *# ## @brief xcb_record_get_context_cookie_t# ### type# xcb_record_get_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_record_get_context.# const# XCB_RECORD_GET_CONTEXT* = 4# ## *# ## @brief xcb_record_get_context_request_t# ### type# xcb_record_get_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# ## *# ## @brief xcb_record_get_context_reply_t# ### type# xcb_record_get_context_reply_t* {.bycopy.} = object# response_type*: uint8# enabled*: uint8# sequence*: uint16# length*: uint32# element_header*: xcb_record_element_header_t# pad0*: array[3, uint8]# num_intercepted_clients*: uint32# pad1*: array[16, uint8]# ## *# ## @brief xcb_record_enable_context_cookie_t# ### type# xcb_record_enable_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_record_enable_context.# const# XCB_RECORD_ENABLE_CONTEXT* = 5# ## *# ## @brief xcb_record_enable_context_request_t# ### type# xcb_record_enable_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# ## *# ## @brief xcb_record_enable_context_reply_t# ### type# xcb_record_enable_context_reply_t* {.bycopy.} = object# response_type*: uint8# category*: uint8# sequence*: uint16# length*: uint32# element_header*: xcb_record_element_header_t# client_swapped*: uint8# pad0*: array[2, uint8]# xid_base*: uint32# server_time*: uint32# rec_sequence_num*: uint32# pad1*: array[8, uint8]# ## * Opcode for xcb_record_disable_context.# const# XCB_RECORD_DISABLE_CONTEXT* = 6# ## *# ## @brief xcb_record_disable_context_request_t# ### type# xcb_record_disable_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# ## * Opcode for xcb_record_free_context.# const# XCB_RECORD_FREE_CONTEXT* = 7# ## *# ## @brief xcb_record_free_context_request_t# ### type# xcb_record_free_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_record_context_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_context_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_context_t)# ### proc xcb_record_context_next*(i: ptr xcb_record_context_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_context_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_context_end*(i: xcb_record_context_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_range_8_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_range_8_t)# ### proc xcb_record_range_8_next*(i: ptr xcb_record_range_8_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_range_8_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_range_8_end*(i: xcb_record_range_8_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_range_16_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_range_16_t)# ### proc xcb_record_range_16_next*(i: ptr xcb_record_range_16_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_range_16_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_range_16_end*(i: xcb_record_range_16_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_ext_range_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_ext_range_t)# ### proc xcb_record_ext_range_next*(i: ptr xcb_record_ext_range_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_ext_range_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_ext_range_end*(i: xcb_record_ext_range_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_range_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_range_t)# ### proc xcb_record_range_next*(i: ptr xcb_record_range_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_range_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_range_end*(i: xcb_record_range_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_element_header_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_element_header_t)# ### proc xcb_record_element_header_next*(i: ptr xcb_record_element_header_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_element_header_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_element_header_end*(i: xcb_record_element_header_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_client_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_client_spec_t)# ### proc xcb_record_client_spec_next*(i: ptr xcb_record_client_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_client_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_client_spec_end*(i: xcb_record_client_spec_iterator_t): xcb_generic_iterator_t# proc xcb_record_client_info_sizeof*(_buffer: pointer): cint# proc xcb_record_client_info_ranges*(R: ptr xcb_record_client_info_t): ptr xcb_record_range_t# proc xcb_record_client_info_ranges_length*(R: ptr xcb_record_client_info_t): cint# proc xcb_record_client_info_ranges_iterator*(R: ptr xcb_record_client_info_t): xcb_record_range_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_record_client_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_record_client_info_t)# ### proc xcb_record_client_info_next*(i: ptr xcb_record_client_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_record_client_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_record_client_info_end*(i: xcb_record_client_info_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_query_version*(c: ptr xcb_connection_t; major_version: uint16;# minor_version: uint16): xcb_record_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_record_query_version_unchecked*(c: ptr xcb_connection_t;# major_version: uint16;# minor_version: uint16): xcb_record_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_record_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_record_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_record_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_record_query_version_reply_t# proc xcb_record_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_record_create_context_checked*(c: ptr xcb_connection_t;# context: xcb_record_context_t;# element_header: xcb_record_element_header_t; num_client_specs: uint32;# num_ranges: uint32; client_specs: ptr xcb_record_client_spec_t;# ranges: ptr xcb_record_range_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_create_context*(c: ptr xcb_connection_t;# context: xcb_record_context_t;# element_header: xcb_record_element_header_t;# num_client_specs: uint32; num_ranges: uint32;# client_specs: ptr xcb_record_client_spec_t;# ranges: ptr xcb_record_range_t): xcb_void_cookie_t# proc xcb_record_create_context_client_specs*(# R: ptr xcb_record_create_context_request_t): ptr xcb_record_client_spec_t# proc xcb_record_create_context_client_specs_length*(# R: ptr xcb_record_create_context_request_t): cint# proc xcb_record_create_context_client_specs_end*(# R: ptr xcb_record_create_context_request_t): xcb_generic_iterator_t# proc xcb_record_create_context_ranges*(R: ptr xcb_record_create_context_request_t): ptr xcb_record_range_t# proc xcb_record_create_context_ranges_length*(# R: ptr xcb_record_create_context_request_t): cint# proc xcb_record_create_context_ranges_iterator*(# R: ptr xcb_record_create_context_request_t): xcb_record_range_iterator_t# proc xcb_record_register_clients_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_record_register_clients_checked*(c: ptr xcb_connection_t;# context: xcb_record_context_t; element_header: xcb_record_element_header_t;# num_client_specs: uint32; num_ranges: uint32;# client_specs: ptr xcb_record_client_spec_t; ranges: ptr xcb_record_range_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_register_clients*(c: ptr xcb_connection_t;# context: xcb_record_context_t;# element_header: xcb_record_element_header_t;# num_client_specs: uint32; num_ranges: uint32;# client_specs: ptr xcb_record_client_spec_t;# ranges: ptr xcb_record_range_t): xcb_void_cookie_t# proc xcb_record_register_clients_client_specs*(# R: ptr xcb_record_register_clients_request_t): ptr xcb_record_client_spec_t# proc xcb_record_register_clients_client_specs_length*(# R: ptr xcb_record_register_clients_request_t): cint# proc xcb_record_register_clients_client_specs_end*(# R: ptr xcb_record_register_clients_request_t): xcb_generic_iterator_t# proc xcb_record_register_clients_ranges*(R: ptr xcb_record_register_clients_request_t): ptr xcb_record_range_t# proc xcb_record_register_clients_ranges_length*(# R: ptr xcb_record_register_clients_request_t): cint# proc xcb_record_register_clients_ranges_iterator*(# R: ptr xcb_record_register_clients_request_t): xcb_record_range_iterator_t# proc xcb_record_unregister_clients_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_record_unregister_clients_checked*(c: ptr xcb_connection_t;# context: xcb_record_context_t; num_client_specs: uint32;# client_specs: ptr xcb_record_client_spec_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_unregister_clients*(c: ptr xcb_connection_t;# context: xcb_record_context_t;# num_client_specs: uint32;# client_specs: ptr xcb_record_client_spec_t): xcb_void_cookie_t# proc xcb_record_unregister_clients_client_specs*(# R: ptr xcb_record_unregister_clients_request_t): ptr xcb_record_client_spec_t# proc xcb_record_unregister_clients_client_specs_length*(# R: ptr xcb_record_unregister_clients_request_t): cint# proc xcb_record_unregister_clients_client_specs_end*(# R: ptr xcb_record_unregister_clients_request_t): xcb_generic_iterator_t# proc xcb_record_get_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_get_context*(c: ptr xcb_connection_t; context: xcb_record_context_t): xcb_record_get_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_record_get_context_unchecked*(c: ptr xcb_connection_t;# context: xcb_record_context_t): xcb_record_get_context_cookie_t# proc xcb_record_get_context_intercepted_clients_length*(# R: ptr xcb_record_get_context_reply_t): cint# proc xcb_record_get_context_intercepted_clients_iterator*(# R: ptr xcb_record_get_context_reply_t): xcb_record_client_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_record_get_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_record_get_context_reply*(c: ptr xcb_connection_t; cookie: xcb_record_get_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_record_get_context_reply_t# proc xcb_record_enable_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_enable_context*(c: ptr xcb_connection_t;# context: xcb_record_context_t): xcb_record_enable_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_record_enable_context_unchecked*(c: ptr xcb_connection_t;# context: xcb_record_context_t): xcb_record_enable_context_cookie_t# proc xcb_record_enable_context_data*(R: ptr xcb_record_enable_context_reply_t): ptr uint8# proc xcb_record_enable_context_data_length*(# R: ptr xcb_record_enable_context_reply_t): cint# proc xcb_record_enable_context_data_end*(R: ptr xcb_record_enable_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_record_enable_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_record_enable_context_reply*(c: ptr xcb_connection_t; cookie: xcb_record_enable_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_record_enable_context_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_record_disable_context_checked*(c: ptr xcb_connection_t;# context: xcb_record_context_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_disable_context*(c: ptr xcb_connection_t;# context: xcb_record_context_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_record_free_context_checked*(c: ptr xcb_connection_t;# context: xcb_record_context_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_record_free_context*(c: ptr xcb_connection_t; context: xcb_record_context_t): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from render.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Render_API XCB Render API# ## @brief Render XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_RENDER_MAJOR_VERSION* = 0# XCB_RENDER_MINOR_VERSION* = 11# var xcb_render_id*: xcb_extension_t# type# xcb_render_pict_type_t* = enum# XCB_RENDER_PICT_TYPE_INDEXED = 0, XCB_RENDER_PICT_TYPE_DIRECT = 1# xcb_render_picture_enum_t* = enum# XCB_RENDER_PICTURE_NONE = 0# xcb_render_pict_op_t* = enum# XCB_RENDER_PICT_OP_CLEAR = 0, XCB_RENDER_PICT_OP_SRC = 1,# XCB_RENDER_PICT_OP_DST = 2, XCB_RENDER_PICT_OP_OVER = 3,# XCB_RENDER_PICT_OP_OVER_REVERSE = 4, XCB_RENDER_PICT_OP_IN = 5,# XCB_RENDER_PICT_OP_IN_REVERSE = 6, XCB_RENDER_PICT_OP_OUT = 7,# XCB_RENDER_PICT_OP_OUT_REVERSE = 8, XCB_RENDER_PICT_OP_ATOP = 9,# XCB_RENDER_PICT_OP_ATOP_REVERSE = 10, XCB_RENDER_PICT_OP_XOR = 11,# XCB_RENDER_PICT_OP_ADD = 12, XCB_RENDER_PICT_OP_SATURATE = 13,# XCB_RENDER_PICT_OP_DISJOINT_CLEAR = 16, XCB_RENDER_PICT_OP_DISJOINT_SRC = 17,# XCB_RENDER_PICT_OP_DISJOINT_DST = 18, XCB_RENDER_PICT_OP_DISJOINT_OVER = 19,# XCB_RENDER_PICT_OP_DISJOINT_OVER_REVERSE = 20,# XCB_RENDER_PICT_OP_DISJOINT_IN = 21,# XCB_RENDER_PICT_OP_DISJOINT_IN_REVERSE = 22,# XCB_RENDER_PICT_OP_DISJOINT_OUT = 23,# XCB_RENDER_PICT_OP_DISJOINT_OUT_REVERSE = 24,# XCB_RENDER_PICT_OP_DISJOINT_ATOP = 25,# XCB_RENDER_PICT_OP_DISJOINT_ATOP_REVERSE = 26,# XCB_RENDER_PICT_OP_DISJOINT_XOR = 27, XCB_RENDER_PICT_OP_CONJOINT_CLEAR = 32,# XCB_RENDER_PICT_OP_CONJOINT_SRC = 33, XCB_RENDER_PICT_OP_CONJOINT_DST = 34,# XCB_RENDER_PICT_OP_CONJOINT_OVER = 35,# XCB_RENDER_PICT_OP_CONJOINT_OVER_REVERSE = 36,# XCB_RENDER_PICT_OP_CONJOINT_IN = 37,# XCB_RENDER_PICT_OP_CONJOINT_IN_REVERSE = 38,# XCB_RENDER_PICT_OP_CONJOINT_OUT = 39,# XCB_RENDER_PICT_OP_CONJOINT_OUT_REVERSE = 40,# XCB_RENDER_PICT_OP_CONJOINT_ATOP = 41,# XCB_RENDER_PICT_OP_CONJOINT_ATOP_REVERSE = 42,# XCB_RENDER_PICT_OP_CONJOINT_XOR = 43, XCB_RENDER_PICT_OP_MULTIPLY = 48,# XCB_RENDER_PICT_OP_SCREEN = 49, XCB_RENDER_PICT_OP_OVERLAY = 50,# XCB_RENDER_PICT_OP_DARKEN = 51, XCB_RENDER_PICT_OP_LIGHTEN = 52,# XCB_RENDER_PICT_OP_COLOR_DODGE = 53, XCB_RENDER_PICT_OP_COLOR_BURN = 54,# XCB_RENDER_PICT_OP_HARD_LIGHT = 55, XCB_RENDER_PICT_OP_SOFT_LIGHT = 56,# XCB_RENDER_PICT_OP_DIFFERENCE = 57, XCB_RENDER_PICT_OP_EXCLUSION = 58,# XCB_RENDER_PICT_OP_HSL_HUE = 59, XCB_RENDER_PICT_OP_HSL_SATURATION = 60,# XCB_RENDER_PICT_OP_HSL_COLOR = 61, XCB_RENDER_PICT_OP_HSL_LUMINOSITY = 62# xcb_render_poly_edge_t* = enum# XCB_RENDER_POLY_EDGE_SHARP = 0, XCB_RENDER_POLY_EDGE_SMOOTH = 1# xcb_render_poly_mode_t* = enum# XCB_RENDER_POLY_MODE_PRECISE = 0, XCB_RENDER_POLY_MODE_IMPRECISE = 1# xcb_render_cp_t* = enum# XCB_RENDER_CP_REPEAT = 1, XCB_RENDER_CP_ALPHA_MAP = 2,# XCB_RENDER_CP_ALPHA_X_ORIGIN = 4, XCB_RENDER_CP_ALPHA_Y_ORIGIN = 8,# XCB_RENDER_CP_CLIP_X_ORIGIN = 16, XCB_RENDER_CP_CLIP_Y_ORIGIN = 32,# XCB_RENDER_CP_CLIP_MASK = 64, XCB_RENDER_CP_GRAPHICS_EXPOSURE = 128,# XCB_RENDER_CP_SUBWINDOW_MODE = 256, XCB_RENDER_CP_POLY_EDGE = 512,# XCB_RENDER_CP_POLY_MODE = 1024, XCB_RENDER_CP_DITHER = 2048,# XCB_RENDER_CP_COMPONENT_ALPHA = 4096# xcb_render_sub_pixel_t* = enum# XCB_RENDER_SUB_PIXEL_UNKNOWN = 0, XCB_RENDER_SUB_PIXEL_HORIZONTAL_RGB = 1,# XCB_RENDER_SUB_PIXEL_HORIZONTAL_BGR = 2, XCB_RENDER_SUB_PIXEL_VERTICAL_RGB = 3,# XCB_RENDER_SUB_PIXEL_VERTICAL_BGR = 4, XCB_RENDER_SUB_PIXEL_NONE = 5# xcb_render_repeat_t* = enum# XCB_RENDER_REPEAT_NONE = 0, XCB_RENDER_REPEAT_NORMAL = 1,# XCB_RENDER_REPEAT_PAD = 2, XCB_RENDER_REPEAT_REFLECT = 3# xcb_render_glyph_t* = uint32# ## *# ## @brief xcb_render_glyph_iterator_t# ### type# xcb_render_glyph_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_glyph_t# rem*: cint# index*: cint# xcb_render_glyphset_t* = uint32# ## *# ## @brief xcb_render_glyphset_iterator_t# ### type# xcb_render_glyphset_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_glyphset_t# rem*: cint# index*: cint# xcb_render_picture_t* = uint32# ## *# ## @brief xcb_render_picture_iterator_t# ### type# xcb_render_picture_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_picture_t# rem*: cint# index*: cint# xcb_render_pictformat_t* = uint32# ## *# ## @brief xcb_render_pictformat_iterator_t# ### type# xcb_render_pictformat_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_pictformat_t# rem*: cint# index*: cint# xcb_render_fixed_t* = int32# ## *# ## @brief xcb_render_fixed_iterator_t# ### type# xcb_render_fixed_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_fixed_t# rem*: cint# index*: cint# ## * Opcode for xcb_render_pict_format.# const# XCB_RENDER_PICT_FORMAT* = 0# ## *# ## @brief xcb_render_pict_format_error_t# ### type# xcb_render_pict_format_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_render_picture.# const# XCB_RENDER_PICTURE* = 1# ## *# ## @brief xcb_render_picture_error_t# ### type# xcb_render_picture_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_render_pict_op.# const# XCB_RENDER_PICT_OP* = 2# ## *# ## @brief xcb_render_pict_op_error_t# ### type# xcb_render_pict_op_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_render_glyph_set.# const# XCB_RENDER_GLYPH_SET* = 3# ## *# ## @brief xcb_render_glyph_set_error_t# ### type# xcb_render_glyph_set_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_render_glyph.# const# XCB_RENDER_GLYPH* = 4# ## *# ## @brief xcb_render_glyph_error_t# ### type# xcb_render_glyph_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## *# ## @brief xcb_render_directformat_t# ### type# xcb_render_directformat_t* {.bycopy.} = object# red_shift*: uint16# red_mask*: uint16# green_shift*: uint16# green_mask*: uint16# blue_shift*: uint16# blue_mask*: uint16# alpha_shift*: uint16# alpha_mask*: uint16# ## *# ## @brief xcb_render_directformat_iterator_t# ### type# xcb_render_directformat_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_directformat_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_pictforminfo_t# ### type# xcb_render_pictforminfo_t* {.bycopy.} = object# id*: xcb_render_pictformat_t# `type`*: uint8# depth*: uint8# pad0*: array[2, uint8]# direct*: xcb_render_directformat_t# colormap*: xcb_colormap_t# ## *# ## @brief xcb_render_pictforminfo_iterator_t# ### type# xcb_render_pictforminfo_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_pictforminfo_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_pictvisual_t# ### type# xcb_render_pictvisual_t* {.bycopy.} = object# visual*: xcb_visualid_t# format*: xcb_render_pictformat_t# ## *# ## @brief xcb_render_pictvisual_iterator_t# ### type# xcb_render_pictvisual_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_pictvisual_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_pictdepth_t# ### type# xcb_render_pictdepth_t* {.bycopy.} = object# depth*: uint8# pad0*: uint8# num_visuals*: uint16# pad1*: array[4, uint8]# ## *# ## @brief xcb_render_pictdepth_iterator_t# ### type# xcb_render_pictdepth_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_pictdepth_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_pictscreen_t# ### type# xcb_render_pictscreen_t* {.bycopy.} = object# num_depths*: uint32# fallback*: xcb_render_pictformat_t# ## *# ## @brief xcb_render_pictscreen_iterator_t# ### type# xcb_render_pictscreen_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_pictscreen_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_indexvalue_t# ### type# xcb_render_indexvalue_t* {.bycopy.} = object# pixel*: uint32# red*: uint16# green*: uint16# blue*: uint16# alpha*: uint16# ## *# ## @brief xcb_render_indexvalue_iterator_t# ### type# xcb_render_indexvalue_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_indexvalue_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_color_t# ### type# xcb_render_color_t* {.bycopy.} = object# red*: uint16# green*: uint16# blue*: uint16# alpha*: uint16# ## *# ## @brief xcb_render_color_iterator_t# ### type# xcb_render_color_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_color_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_pointfix_t# ### type# xcb_render_pointfix_t* {.bycopy.} = object# x*: xcb_render_fixed_t# y*: xcb_render_fixed_t# ## *# ## @brief xcb_render_pointfix_iterator_t# ### type# xcb_render_pointfix_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_pointfix_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_linefix_t# ### type# xcb_render_linefix_t* {.bycopy.} = object# p1*: xcb_render_pointfix_t# p2*: xcb_render_pointfix_t# ## *# ## @brief xcb_render_linefix_iterator_t# ### type# xcb_render_linefix_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_linefix_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_triangle_t# ### type# xcb_render_triangle_t* {.bycopy.} = object# p1*: xcb_render_pointfix_t# p2*: xcb_render_pointfix_t# p3*: xcb_render_pointfix_t# ## *# ## @brief xcb_render_triangle_iterator_t# ### type# xcb_render_triangle_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_triangle_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_trapezoid_t# ### type# xcb_render_trapezoid_t* {.bycopy.} = object# top*: xcb_render_fixed_t# bottom*: xcb_render_fixed_t# left*: xcb_render_linefix_t# right*: xcb_render_linefix_t# ## *# ## @brief xcb_render_trapezoid_iterator_t# ### type# xcb_render_trapezoid_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_trapezoid_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_glyphinfo_t# ### type# xcb_render_glyphinfo_t* {.bycopy.} = object# width*: uint16# height*: uint16# x*: int16# y*: int16# x_off*: int16# y_off*: int16# ## *# ## @brief xcb_render_glyphinfo_iterator_t# ### type# xcb_render_glyphinfo_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_glyphinfo_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_query_version_cookie_t# ### type# xcb_render_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_render_query_version.# const# XCB_RENDER_QUERY_VERSION* = 0# ## *# ## @brief xcb_render_query_version_request_t# ### type# xcb_render_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint32# client_minor_version*: uint32# ## *# ## @brief xcb_render_query_version_reply_t# ### type# xcb_render_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# pad1*: array[16, uint8]# ## *# ## @brief xcb_render_query_pict_formats_cookie_t# ### type# xcb_render_query_pict_formats_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_render_query_pict_formats.# const# XCB_RENDER_QUERY_PICT_FORMATS* = 1# ## *# ## @brief xcb_render_query_pict_formats_request_t# ### type# xcb_render_query_pict_formats_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_render_query_pict_formats_reply_t# ### type# xcb_render_query_pict_formats_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_formats*: uint32# num_screens*: uint32# num_depths*: uint32# num_visuals*: uint32# num_subpixel*: uint32# pad1*: array[4, uint8]# ## *# ## @brief xcb_render_query_pict_index_values_cookie_t# ### type# xcb_render_query_pict_index_values_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_render_query_pict_index_values.# const# XCB_RENDER_QUERY_PICT_INDEX_VALUES* = 2# ## *# ## @brief xcb_render_query_pict_index_values_request_t# ### type# xcb_render_query_pict_index_values_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# format*: xcb_render_pictformat_t# ## *# ## @brief xcb_render_query_pict_index_values_reply_t# ### type# xcb_render_query_pict_index_values_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_values*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_render_create_picture_value_list_t# ### type# xcb_render_create_picture_value_list_t* {.bycopy.} = object# repeat*: uint32# alphamap*: xcb_render_picture_t# alphaxorigin*: int32# alphayorigin*: int32# clipxorigin*: int32# clipyorigin*: int32# clipmask*: xcb_pixmap_t# graphicsexposure*: uint32# subwindowmode*: uint32# polyedge*: uint32# polymode*: uint32# dither*: xcb_atom_t# componentalpha*: uint32# ## * Opcode for xcb_render_create_picture.# const# XCB_RENDER_CREATE_PICTURE* = 4# ## *# ## @brief xcb_render_create_picture_request_t# ### type# xcb_render_create_picture_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# pid*: xcb_render_picture_t# drawable*: xcb_drawable_t# format*: xcb_render_pictformat_t# value_mask*: uint32# ## *# ## @brief xcb_render_change_picture_value_list_t# ### type# xcb_render_change_picture_value_list_t* {.bycopy.} = object# repeat*: uint32# alphamap*: xcb_render_picture_t# alphaxorigin*: int32# alphayorigin*: int32# clipxorigin*: int32# clipyorigin*: int32# clipmask*: xcb_pixmap_t# graphicsexposure*: uint32# subwindowmode*: uint32# polyedge*: uint32# polymode*: uint32# dither*: xcb_atom_t# componentalpha*: uint32# ## * Opcode for xcb_render_change_picture.# const# XCB_RENDER_CHANGE_PICTURE* = 5# ## *# ## @brief xcb_render_change_picture_request_t# ### type# xcb_render_change_picture_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# value_mask*: uint32# ## * Opcode for xcb_render_set_picture_clip_rectangles.# const# XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES* = 6# ## *# ## @brief xcb_render_set_picture_clip_rectangles_request_t# ### type# xcb_render_set_picture_clip_rectangles_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# clip_x_origin*: int16# clip_y_origin*: int16# ## * Opcode for xcb_render_free_picture.# const# XCB_RENDER_FREE_PICTURE* = 7# ## *# ## @brief xcb_render_free_picture_request_t# ### type# xcb_render_free_picture_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# ## * Opcode for xcb_render_composite.# const# XCB_RENDER_COMPOSITE* = 8# ## *# ## @brief xcb_render_composite_request_t# ### type# xcb_render_composite_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# mask*: xcb_render_picture_t# dst*: xcb_render_picture_t# src_x*: int16# src_y*: int16# mask_x*: int16# mask_y*: int16# dst_x*: int16# dst_y*: int16# width*: uint16# height*: uint16# ## * Opcode for xcb_render_trapezoids.# const# XCB_RENDER_TRAPEZOIDS* = 10# ## *# ## @brief xcb_render_trapezoids_request_t# ### type# xcb_render_trapezoids_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_triangles.# const# XCB_RENDER_TRIANGLES* = 11# ## *# ## @brief xcb_render_triangles_request_t# ### type# xcb_render_triangles_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_tri_strip.# const# XCB_RENDER_TRI_STRIP* = 12# ## *# ## @brief xcb_render_tri_strip_request_t# ### type# xcb_render_tri_strip_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_tri_fan.# const# XCB_RENDER_TRI_FAN* = 13# ## *# ## @brief xcb_render_tri_fan_request_t# ### type# xcb_render_tri_fan_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_create_glyph_set.# const# XCB_RENDER_CREATE_GLYPH_SET* = 17# ## *# ## @brief xcb_render_create_glyph_set_request_t# ### type# xcb_render_create_glyph_set_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# gsid*: xcb_render_glyphset_t# format*: xcb_render_pictformat_t# ## * Opcode for xcb_render_reference_glyph_set.# const# XCB_RENDER_REFERENCE_GLYPH_SET* = 18# ## *# ## @brief xcb_render_reference_glyph_set_request_t# ### type# xcb_render_reference_glyph_set_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# gsid*: xcb_render_glyphset_t# existing*: xcb_render_glyphset_t# ## * Opcode for xcb_render_free_glyph_set.# const# XCB_RENDER_FREE_GLYPH_SET* = 19# ## *# ## @brief xcb_render_free_glyph_set_request_t# ### type# xcb_render_free_glyph_set_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# glyphset*: xcb_render_glyphset_t# ## * Opcode for xcb_render_add_glyphs.# const# XCB_RENDER_ADD_GLYPHS* = 20# ## *# ## @brief xcb_render_add_glyphs_request_t# ### type# xcb_render_add_glyphs_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# glyphset*: xcb_render_glyphset_t# glyphs_len*: uint32# ## * Opcode for xcb_render_free_glyphs.# const# XCB_RENDER_FREE_GLYPHS* = 22# ## *# ## @brief xcb_render_free_glyphs_request_t# ### type# xcb_render_free_glyphs_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# glyphset*: xcb_render_glyphset_t# ## * Opcode for xcb_render_composite_glyphs_8.# const# XCB_RENDER_COMPOSITE_GLYPHS_8* = 23# ## *# ## @brief xcb_render_composite_glyphs_8_request_t# ### type# xcb_render_composite_glyphs_8_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# glyphset*: xcb_render_glyphset_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_composite_glyphs_16.# const# XCB_RENDER_COMPOSITE_GLYPHS_16* = 24# ## *# ## @brief xcb_render_composite_glyphs_16_request_t# ### type# xcb_render_composite_glyphs_16_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# glyphset*: xcb_render_glyphset_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_composite_glyphs_32.# const# XCB_RENDER_COMPOSITE_GLYPHS_32* = 25# ## *# ## @brief xcb_render_composite_glyphs_32_request_t# ### type# xcb_render_composite_glyphs_32_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# src*: xcb_render_picture_t# dst*: xcb_render_picture_t# mask_format*: xcb_render_pictformat_t# glyphset*: xcb_render_glyphset_t# src_x*: int16# src_y*: int16# ## * Opcode for xcb_render_fill_rectangles.# const# XCB_RENDER_FILL_RECTANGLES* = 26# ## *# ## @brief xcb_render_fill_rectangles_request_t# ### type# xcb_render_fill_rectangles_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# op*: uint8# pad0*: array[3, uint8]# dst*: xcb_render_picture_t# color*: xcb_render_color_t# ## * Opcode for xcb_render_create_cursor.# const# XCB_RENDER_CREATE_CURSOR* = 27# ## *# ## @brief xcb_render_create_cursor_request_t# ### type# xcb_render_create_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cid*: xcb_cursor_t# source*: xcb_render_picture_t# x*: uint16# y*: uint16# ## *# ## @brief xcb_render_transform_t# ### type# xcb_render_transform_t* {.bycopy.} = object# matrix11*: xcb_render_fixed_t# matrix12*: xcb_render_fixed_t# matrix13*: xcb_render_fixed_t# matrix21*: xcb_render_fixed_t# matrix22*: xcb_render_fixed_t# matrix23*: xcb_render_fixed_t# matrix31*: xcb_render_fixed_t# matrix32*: xcb_render_fixed_t# matrix33*: xcb_render_fixed_t# ## *# ## @brief xcb_render_transform_iterator_t# ### type# xcb_render_transform_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_transform_t# rem*: cint# index*: cint# ## * Opcode for xcb_render_set_picture_transform.# const# XCB_RENDER_SET_PICTURE_TRANSFORM* = 28# ## *# ## @brief xcb_render_set_picture_transform_request_t# ### type# xcb_render_set_picture_transform_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# transform*: xcb_render_transform_t# ## *# ## @brief xcb_render_query_filters_cookie_t# ### type# xcb_render_query_filters_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_render_query_filters.# const# XCB_RENDER_QUERY_FILTERS* = 29# ## *# ## @brief xcb_render_query_filters_request_t# ### type# xcb_render_query_filters_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## *# ## @brief xcb_render_query_filters_reply_t# ### type# xcb_render_query_filters_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_aliases*: uint32# num_filters*: uint32# pad1*: array[16, uint8]# ## * Opcode for xcb_render_set_picture_filter.# const# XCB_RENDER_SET_PICTURE_FILTER* = 30# ## *# ## @brief xcb_render_set_picture_filter_request_t# ### type# xcb_render_set_picture_filter_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# filter_len*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_render_animcursorelt_t# ### type# xcb_render_animcursorelt_t* {.bycopy.} = object# cursor*: xcb_cursor_t# delay*: uint32# ## *# ## @brief xcb_render_animcursorelt_iterator_t# ### type# xcb_render_animcursorelt_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_animcursorelt_t# rem*: cint# index*: cint# ## * Opcode for xcb_render_create_anim_cursor.# const# XCB_RENDER_CREATE_ANIM_CURSOR* = 31# ## *# ## @brief xcb_render_create_anim_cursor_request_t# ### type# xcb_render_create_anim_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cid*: xcb_cursor_t# ## *# ## @brief xcb_render_spanfix_t# ### type# xcb_render_spanfix_t* {.bycopy.} = object# l*: xcb_render_fixed_t# r*: xcb_render_fixed_t# y*: xcb_render_fixed_t# ## *# ## @brief xcb_render_spanfix_iterator_t# ### type# xcb_render_spanfix_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_spanfix_t# rem*: cint# index*: cint# ## *# ## @brief xcb_render_trap_t# ### type# xcb_render_trap_t* {.bycopy.} = object# top*: xcb_render_spanfix_t# bot*: xcb_render_spanfix_t# ## *# ## @brief xcb_render_trap_iterator_t# ### type# xcb_render_trap_iterator_t* {.bycopy.} = object# data*: ptr xcb_render_trap_t# rem*: cint# index*: cint# ## * Opcode for xcb_render_add_traps.# const# XCB_RENDER_ADD_TRAPS* = 32# ## *# ## @brief xcb_render_add_traps_request_t# ### type# xcb_render_add_traps_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# x_off*: int16# y_off*: int16# ## * Opcode for xcb_render_create_solid_fill.# const# XCB_RENDER_CREATE_SOLID_FILL* = 33# ## *# ## @brief xcb_render_create_solid_fill_request_t# ### type# xcb_render_create_solid_fill_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# color*: xcb_render_color_t# ## * Opcode for xcb_render_create_linear_gradient.# const# XCB_RENDER_CREATE_LINEAR_GRADIENT* = 34# ## *# ## @brief xcb_render_create_linear_gradient_request_t# ### type# xcb_render_create_linear_gradient_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# p1*: xcb_render_pointfix_t# p2*: xcb_render_pointfix_t# num_stops*: uint32# ## * Opcode for xcb_render_create_radial_gradient.# const# XCB_RENDER_CREATE_RADIAL_GRADIENT* = 35# ## *# ## @brief xcb_render_create_radial_gradient_request_t# ### type# xcb_render_create_radial_gradient_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# inner*: xcb_render_pointfix_t# outer*: xcb_render_pointfix_t# inner_radius*: xcb_render_fixed_t# outer_radius*: xcb_render_fixed_t# num_stops*: uint32# ## * Opcode for xcb_render_create_conical_gradient.# const# XCB_RENDER_CREATE_CONICAL_GRADIENT* = 36# ## *# ## @brief xcb_render_create_conical_gradient_request_t# ### type# xcb_render_create_conical_gradient_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# center*: xcb_render_pointfix_t# angle*: xcb_render_fixed_t# num_stops*: uint32# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_glyph_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_glyph_t)# ### proc xcb_render_glyph_next*(i: ptr xcb_render_glyph_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_glyph_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_glyph_end*(i: xcb_render_glyph_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_glyphset_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_glyphset_t)# ### proc xcb_render_glyphset_next*(i: ptr xcb_render_glyphset_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_glyphset_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_glyphset_end*(i: xcb_render_glyphset_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_picture_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_picture_t)# ### proc xcb_render_picture_next*(i: ptr xcb_render_picture_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_picture_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_picture_end*(i: xcb_render_picture_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_pictformat_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_pictformat_t)# ### proc xcb_render_pictformat_next*(i: ptr xcb_render_pictformat_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_pictformat_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_pictformat_end*(i: xcb_render_pictformat_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_fixed_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_fixed_t)# ### proc xcb_render_fixed_next*(i: ptr xcb_render_fixed_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_fixed_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_fixed_end*(i: xcb_render_fixed_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_directformat_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_directformat_t)# ### proc xcb_render_directformat_next*(i: ptr xcb_render_directformat_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_directformat_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_directformat_end*(i: xcb_render_directformat_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_pictforminfo_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_pictforminfo_t)# ### proc xcb_render_pictforminfo_next*(i: ptr xcb_render_pictforminfo_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_pictforminfo_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_pictforminfo_end*(i: xcb_render_pictforminfo_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_pictvisual_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_pictvisual_t)# ### proc xcb_render_pictvisual_next*(i: ptr xcb_render_pictvisual_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_pictvisual_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_pictvisual_end*(i: xcb_render_pictvisual_iterator_t): xcb_generic_iterator_t# proc xcb_render_pictdepth_sizeof*(_buffer: pointer): cint# proc xcb_render_pictdepth_visuals*(R: ptr xcb_render_pictdepth_t): ptr xcb_render_pictvisual_t# proc xcb_render_pictdepth_visuals_length*(R: ptr xcb_render_pictdepth_t): cint# proc xcb_render_pictdepth_visuals_iterator*(R: ptr xcb_render_pictdepth_t): xcb_render_pictvisual_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_pictdepth_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_pictdepth_t)# ### proc xcb_render_pictdepth_next*(i: ptr xcb_render_pictdepth_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_pictdepth_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_pictdepth_end*(i: xcb_render_pictdepth_iterator_t): xcb_generic_iterator_t# proc xcb_render_pictscreen_sizeof*(_buffer: pointer): cint# proc xcb_render_pictscreen_depths_length*(R: ptr xcb_render_pictscreen_t): cint# proc xcb_render_pictscreen_depths_iterator*(R: ptr xcb_render_pictscreen_t): xcb_render_pictdepth_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_pictscreen_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_pictscreen_t)# ### proc xcb_render_pictscreen_next*(i: ptr xcb_render_pictscreen_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_pictscreen_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_pictscreen_end*(i: xcb_render_pictscreen_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_indexvalue_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_indexvalue_t)# ### proc xcb_render_indexvalue_next*(i: ptr xcb_render_indexvalue_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_indexvalue_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_indexvalue_end*(i: xcb_render_indexvalue_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_color_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_color_t)# ### proc xcb_render_color_next*(i: ptr xcb_render_color_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_color_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_color_end*(i: xcb_render_color_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_pointfix_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_pointfix_t)# ### proc xcb_render_pointfix_next*(i: ptr xcb_render_pointfix_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_pointfix_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_pointfix_end*(i: xcb_render_pointfix_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_linefix_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_linefix_t)# ### proc xcb_render_linefix_next*(i: ptr xcb_render_linefix_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_linefix_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_linefix_end*(i: xcb_render_linefix_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_triangle_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_triangle_t)# ### proc xcb_render_triangle_next*(i: ptr xcb_render_triangle_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_triangle_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_triangle_end*(i: xcb_render_triangle_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_trapezoid_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_trapezoid_t)# ### proc xcb_render_trapezoid_next*(i: ptr xcb_render_trapezoid_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_trapezoid_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_trapezoid_end*(i: xcb_render_trapezoid_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_glyphinfo_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_glyphinfo_t)# ### proc xcb_render_glyphinfo_next*(i: ptr xcb_render_glyphinfo_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_glyphinfo_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_glyphinfo_end*(i: xcb_render_glyphinfo_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_query_version*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_render_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_render_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_render_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_render_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_render_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_version_reply_t# proc xcb_render_query_pict_formats_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_query_pict_formats*(c: ptr xcb_connection_t): xcb_render_query_pict_formats_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_render_query_pict_formats_unchecked*(c: ptr xcb_connection_t): xcb_render_query_pict_formats_cookie_t# proc xcb_render_query_pict_formats_formats*(# R: ptr xcb_render_query_pict_formats_reply_t): ptr xcb_render_pictforminfo_t# proc xcb_render_query_pict_formats_formats_length*(# R: ptr xcb_render_query_pict_formats_reply_t): cint# proc xcb_render_query_pict_formats_formats_iterator*(# R: ptr xcb_render_query_pict_formats_reply_t): xcb_render_pictforminfo_iterator_t# proc xcb_render_query_pict_formats_screens_length*(# R: ptr xcb_render_query_pict_formats_reply_t): cint# proc xcb_render_query_pict_formats_screens_iterator*(# R: ptr xcb_render_query_pict_formats_reply_t): xcb_render_pictscreen_iterator_t# proc xcb_render_query_pict_formats_subpixels*(# R: ptr xcb_render_query_pict_formats_reply_t): ptr uint32# proc xcb_render_query_pict_formats_subpixels_length*(# R: ptr xcb_render_query_pict_formats_reply_t): cint# proc xcb_render_query_pict_formats_subpixels_end*(# R: ptr xcb_render_query_pict_formats_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_render_query_pict_formats_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_render_query_pict_formats_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_pict_formats_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_pict_formats_reply_t# proc xcb_render_query_pict_index_values_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_query_pict_index_values*(c: ptr xcb_connection_t;# format: xcb_render_pictformat_t): xcb_render_query_pict_index_values_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_render_query_pict_index_values_unchecked*(c: ptr xcb_connection_t;# format: xcb_render_pictformat_t): xcb_render_query_pict_index_values_cookie_t# proc xcb_render_query_pict_index_values_values*(# R: ptr xcb_render_query_pict_index_values_reply_t): ptr xcb_render_indexvalue_t# proc xcb_render_query_pict_index_values_values_length*(# R: ptr xcb_render_query_pict_index_values_reply_t): cint# proc xcb_render_query_pict_index_values_values_iterator*(# R: ptr xcb_render_query_pict_index_values_reply_t): xcb_render_indexvalue_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_render_query_pict_index_values_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_render_query_pict_index_values_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_pict_index_values_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_pict_index_values_reply_t# proc xcb_render_create_picture_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_render_create_picture_value_list_t): cint# proc xcb_render_create_picture_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_render_create_picture_value_list_t): cint# proc xcb_render_create_picture_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_render_create_picture_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_picture_checked*(c: ptr xcb_connection_t;# pid: xcb_render_picture_t;# drawable: xcb_drawable_t;# format: xcb_render_pictformat_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_picture*(c: ptr xcb_connection_t; pid: xcb_render_picture_t;# drawable: xcb_drawable_t;# format: xcb_render_pictformat_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_picture_aux_checked*(c: ptr xcb_connection_t;# pid: xcb_render_picture_t; drawable: xcb_drawable_t;# format: xcb_render_pictformat_t; value_mask: uint32;# value_list: ptr xcb_render_create_picture_value_list_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_picture_aux*(c: ptr xcb_connection_t;# pid: xcb_render_picture_t;# drawable: xcb_drawable_t;# format: xcb_render_pictformat_t;# value_mask: uint32; value_list: ptr xcb_render_create_picture_value_list_t): xcb_void_cookie_t# proc xcb_render_create_picture_value_list*(# R: ptr xcb_render_create_picture_request_t): pointer# proc xcb_render_change_picture_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_render_change_picture_value_list_t): cint# proc xcb_render_change_picture_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_render_change_picture_value_list_t): cint# proc xcb_render_change_picture_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_render_change_picture_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_change_picture_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_change_picture*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_change_picture_aux_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; value_mask: uint32;# value_list: ptr xcb_render_change_picture_value_list_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_change_picture_aux*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# value_mask: uint32; value_list: ptr xcb_render_change_picture_value_list_t): xcb_void_cookie_t# proc xcb_render_change_picture_value_list*(# R: ptr xcb_render_change_picture_request_t): pointer# proc xcb_render_set_picture_clip_rectangles_sizeof*(_buffer: pointer;# rectangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_set_picture_clip_rectangles_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; clip_x_origin: int16; clip_y_origin: int16;# rectangles_len: uint32; rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_set_picture_clip_rectangles*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; clip_x_origin: int16; clip_y_origin: int16;# rectangles_len: uint32; rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_render_set_picture_clip_rectangles_rectangles*(# R: ptr xcb_render_set_picture_clip_rectangles_request_t): ptr xcb_rectangle_t# proc xcb_render_set_picture_clip_rectangles_rectangles_length*(# R: ptr xcb_render_set_picture_clip_rectangles_request_t): cint# proc xcb_render_set_picture_clip_rectangles_rectangles_iterator*(# R: ptr xcb_render_set_picture_clip_rectangles_request_t): xcb_rectangle_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_free_picture_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_free_picture*(c: ptr xcb_connection_t; picture: xcb_render_picture_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_composite_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# mask: xcb_render_picture_t;# dst: xcb_render_picture_t; src_x: int16;# src_y: int16; mask_x: int16; mask_y: int16;# dst_x: int16; dst_y: int16; width: uint16;# height: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_composite*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; mask: xcb_render_picture_t;# dst: xcb_render_picture_t; src_x: int16; src_y: int16;# mask_x: int16; mask_y: int16; dst_x: int16;# dst_y: int16; width: uint16; height: uint16): xcb_void_cookie_t# proc xcb_render_trapezoids_sizeof*(_buffer: pointer; traps_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_trapezoids_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# src_x: int16; src_y: int16;# traps_len: uint32;# traps: ptr xcb_render_trapezoid_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_trapezoids*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; src_x: int16;# src_y: int16; traps_len: uint32;# traps: ptr xcb_render_trapezoid_t): xcb_void_cookie_t# proc xcb_render_trapezoids_traps*(R: ptr xcb_render_trapezoids_request_t): ptr xcb_render_trapezoid_t# proc xcb_render_trapezoids_traps_length*(R: ptr xcb_render_trapezoids_request_t): cint# proc xcb_render_trapezoids_traps_iterator*(R: ptr xcb_render_trapezoids_request_t): xcb_render_trapezoid_iterator_t# proc xcb_render_triangles_sizeof*(_buffer: pointer; triangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_triangles_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# src_x: int16; src_y: int16;# triangles_len: uint32;# triangles: ptr xcb_render_triangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_triangles*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; src_x: int16;# src_y: int16; triangles_len: uint32;# triangles: ptr xcb_render_triangle_t): xcb_void_cookie_t# proc xcb_render_triangles_triangles*(R: ptr xcb_render_triangles_request_t): ptr xcb_render_triangle_t# proc xcb_render_triangles_triangles_length*(R: ptr xcb_render_triangles_request_t): cint# proc xcb_render_triangles_triangles_iterator*(# R: ptr xcb_render_triangles_request_t): xcb_render_triangle_iterator_t# proc xcb_render_tri_strip_sizeof*(_buffer: pointer; points_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_tri_strip_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# src_x: int16; src_y: int16;# points_len: uint32;# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_tri_strip*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; src_x: int16;# src_y: int16; points_len: uint32;# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t# proc xcb_render_tri_strip_points*(R: ptr xcb_render_tri_strip_request_t): ptr xcb_render_pointfix_t# proc xcb_render_tri_strip_points_length*(R: ptr xcb_render_tri_strip_request_t): cint# proc xcb_render_tri_strip_points_iterator*(R: ptr xcb_render_tri_strip_request_t): xcb_render_pointfix_iterator_t# proc xcb_render_tri_fan_sizeof*(_buffer: pointer; points_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_tri_fan_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# src_x: int16; src_y: int16;# points_len: uint32;# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_tri_fan*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; src_x: int16;# src_y: int16; points_len: uint32;# points: ptr xcb_render_pointfix_t): xcb_void_cookie_t# proc xcb_render_tri_fan_points*(R: ptr xcb_render_tri_fan_request_t): ptr xcb_render_pointfix_t# proc xcb_render_tri_fan_points_length*(R: ptr xcb_render_tri_fan_request_t): cint# proc xcb_render_tri_fan_points_iterator*(R: ptr xcb_render_tri_fan_request_t): xcb_render_pointfix_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_glyph_set_checked*(c: ptr xcb_connection_t;# gsid: xcb_render_glyphset_t; format: xcb_render_pictformat_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_glyph_set*(c: ptr xcb_connection_t;# gsid: xcb_render_glyphset_t;# format: xcb_render_pictformat_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_reference_glyph_set_checked*(c: ptr xcb_connection_t;# gsid: xcb_render_glyphset_t; existing: xcb_render_glyphset_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_reference_glyph_set*(c: ptr xcb_connection_t;# gsid: xcb_render_glyphset_t;# existing: xcb_render_glyphset_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_free_glyph_set_checked*(c: ptr xcb_connection_t;# glyphset: xcb_render_glyphset_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_free_glyph_set*(c: ptr xcb_connection_t;# glyphset: xcb_render_glyphset_t): xcb_void_cookie_t# proc xcb_render_add_glyphs_sizeof*(_buffer: pointer; data_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_add_glyphs_checked*(c: ptr xcb_connection_t;# glyphset: xcb_render_glyphset_t;# glyphs_len: uint32; glyphids: ptr uint32;# glyphs: ptr xcb_render_glyphinfo_t;# data_len: uint32; data: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_add_glyphs*(c: ptr xcb_connection_t;# glyphset: xcb_render_glyphset_t; glyphs_len: uint32;# glyphids: ptr uint32;# glyphs: ptr xcb_render_glyphinfo_t; data_len: uint32;# data: ptr uint8): xcb_void_cookie_t# proc xcb_render_add_glyphs_glyphids*(R: ptr xcb_render_add_glyphs_request_t): ptr uint32# proc xcb_render_add_glyphs_glyphids_length*(# R: ptr xcb_render_add_glyphs_request_t): cint# proc xcb_render_add_glyphs_glyphids_end*(R: ptr xcb_render_add_glyphs_request_t): xcb_generic_iterator_t# proc xcb_render_add_glyphs_glyphs*(R: ptr xcb_render_add_glyphs_request_t): ptr xcb_render_glyphinfo_t# proc xcb_render_add_glyphs_glyphs_length*(R: ptr xcb_render_add_glyphs_request_t): cint# proc xcb_render_add_glyphs_glyphs_iterator*(# R: ptr xcb_render_add_glyphs_request_t): xcb_render_glyphinfo_iterator_t# proc xcb_render_add_glyphs_data*(R: ptr xcb_render_add_glyphs_request_t): ptr uint8# proc xcb_render_add_glyphs_data_length*(R: ptr xcb_render_add_glyphs_request_t): cint# proc xcb_render_add_glyphs_data_end*(R: ptr xcb_render_add_glyphs_request_t): xcb_generic_iterator_t# proc xcb_render_free_glyphs_sizeof*(_buffer: pointer; glyphs_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_free_glyphs_checked*(c: ptr xcb_connection_t;# glyphset: xcb_render_glyphset_t;# glyphs_len: uint32;# glyphs: ptr xcb_render_glyph_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_free_glyphs*(c: ptr xcb_connection_t;# glyphset: xcb_render_glyphset_t; glyphs_len: uint32;# glyphs: ptr xcb_render_glyph_t): xcb_void_cookie_t# proc xcb_render_free_glyphs_glyphs*(R: ptr xcb_render_free_glyphs_request_t): ptr xcb_render_glyph_t# proc xcb_render_free_glyphs_glyphs_length*(# R: ptr xcb_render_free_glyphs_request_t): cint# proc xcb_render_free_glyphs_glyphs_end*(R: ptr xcb_render_free_glyphs_request_t): xcb_generic_iterator_t# proc xcb_render_composite_glyphs_8_sizeof*(_buffer: pointer;# glyphcmds_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_composite_glyphs_8_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; glyphset: xcb_render_glyphset_t;# src_x: int16; src_y: int16; glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_composite_glyphs_8*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# glyphset: xcb_render_glyphset_t;# src_x: int16; src_y: int16;# glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t# proc xcb_render_composite_glyphs_8_glyphcmds*(# R: ptr xcb_render_composite_glyphs_8_request_t): ptr uint8# proc xcb_render_composite_glyphs_8_glyphcmds_length*(# R: ptr xcb_render_composite_glyphs_8_request_t): cint# proc xcb_render_composite_glyphs_8_glyphcmds_end*(# R: ptr xcb_render_composite_glyphs_8_request_t): xcb_generic_iterator_t# proc xcb_render_composite_glyphs_16_sizeof*(_buffer: pointer;# glyphcmds_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_composite_glyphs_16_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; glyphset: xcb_render_glyphset_t;# src_x: int16; src_y: int16; glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_composite_glyphs_16*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# glyphset: xcb_render_glyphset_t;# src_x: int16; src_y: int16;# glyphcmds_len: uint32;# glyphcmds: ptr uint8): xcb_void_cookie_t# proc xcb_render_composite_glyphs_16_glyphcmds*(# R: ptr xcb_render_composite_glyphs_16_request_t): ptr uint8# proc xcb_render_composite_glyphs_16_glyphcmds_length*(# R: ptr xcb_render_composite_glyphs_16_request_t): cint# proc xcb_render_composite_glyphs_16_glyphcmds_end*(# R: ptr xcb_render_composite_glyphs_16_request_t): xcb_generic_iterator_t# proc xcb_render_composite_glyphs_32_sizeof*(_buffer: pointer;# glyphcmds_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_composite_glyphs_32_checked*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; glyphset: xcb_render_glyphset_t;# src_x: int16; src_y: int16; glyphcmds_len: uint32; glyphcmds: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_composite_glyphs_32*(c: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# glyphset: xcb_render_glyphset_t;# src_x: int16; src_y: int16;# glyphcmds_len: uint32;# glyphcmds: ptr uint8): xcb_void_cookie_t# proc xcb_render_composite_glyphs_32_glyphcmds*(# R: ptr xcb_render_composite_glyphs_32_request_t): ptr uint8# proc xcb_render_composite_glyphs_32_glyphcmds_length*(# R: ptr xcb_render_composite_glyphs_32_request_t): cint# proc xcb_render_composite_glyphs_32_glyphcmds_end*(# R: ptr xcb_render_composite_glyphs_32_request_t): xcb_generic_iterator_t# proc xcb_render_fill_rectangles_sizeof*(_buffer: pointer; rects_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_fill_rectangles_checked*(c: ptr xcb_connection_t; op: uint8;# dst: xcb_render_picture_t;# color: xcb_render_color_t;# rects_len: uint32;# rects: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_fill_rectangles*(c: ptr xcb_connection_t; op: uint8;# dst: xcb_render_picture_t;# color: xcb_render_color_t; rects_len: uint32;# rects: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_render_fill_rectangles_rects*(R: ptr xcb_render_fill_rectangles_request_t): ptr xcb_rectangle_t# proc xcb_render_fill_rectangles_rects_length*(# R: ptr xcb_render_fill_rectangles_request_t): cint# proc xcb_render_fill_rectangles_rects_iterator*(# R: ptr xcb_render_fill_rectangles_request_t): xcb_rectangle_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_cursor_checked*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# source: xcb_render_picture_t; x: uint16;# y: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# source: xcb_render_picture_t; x: uint16; y: uint16): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_transform_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_transform_t)# ### proc xcb_render_transform_next*(i: ptr xcb_render_transform_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_transform_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_transform_end*(i: xcb_render_transform_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_set_picture_transform_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; transform: xcb_render_transform_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_set_picture_transform*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# transform: xcb_render_transform_t): xcb_void_cookie_t# proc xcb_render_query_filters_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_query_filters*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_render_query_filters_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_render_query_filters_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t): xcb_render_query_filters_cookie_t# proc xcb_render_query_filters_aliases*(R: ptr xcb_render_query_filters_reply_t): ptr uint16# proc xcb_render_query_filters_aliases_length*(# R: ptr xcb_render_query_filters_reply_t): cint# proc xcb_render_query_filters_aliases_end*(# R: ptr xcb_render_query_filters_reply_t): xcb_generic_iterator_t# proc xcb_render_query_filters_filters_length*(# R: ptr xcb_render_query_filters_reply_t): cint# proc xcb_render_query_filters_filters_iterator*(# R: ptr xcb_render_query_filters_reply_t): xcb_str_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_render_query_filters_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_render_query_filters_reply*(c: ptr xcb_connection_t; cookie: xcb_render_query_filters_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_render_query_filters_reply_t# proc xcb_render_set_picture_filter_sizeof*(_buffer: pointer; values_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_set_picture_filter_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; filter_len: uint16; filter: cstring;# values_len: uint32; values: ptr xcb_render_fixed_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_set_picture_filter*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# filter_len: uint16; filter: cstring;# values_len: uint32;# values: ptr xcb_render_fixed_t): xcb_void_cookie_t# proc xcb_render_set_picture_filter_filter*(# R: ptr xcb_render_set_picture_filter_request_t): cstring# proc xcb_render_set_picture_filter_filter_length*(# R: ptr xcb_render_set_picture_filter_request_t): cint# proc xcb_render_set_picture_filter_filter_end*(# R: ptr xcb_render_set_picture_filter_request_t): xcb_generic_iterator_t# proc xcb_render_set_picture_filter_values*(# R: ptr xcb_render_set_picture_filter_request_t): ptr xcb_render_fixed_t# proc xcb_render_set_picture_filter_values_length*(# R: ptr xcb_render_set_picture_filter_request_t): cint# proc xcb_render_set_picture_filter_values_end*(# R: ptr xcb_render_set_picture_filter_request_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_animcursorelt_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_animcursorelt_t)# ### proc xcb_render_animcursorelt_next*(i: ptr xcb_render_animcursorelt_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_animcursorelt_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_animcursorelt_end*(i: xcb_render_animcursorelt_iterator_t): xcb_generic_iterator_t# proc xcb_render_create_anim_cursor_sizeof*(_buffer: pointer; cursors_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_anim_cursor_checked*(c: ptr xcb_connection_t;# cid: xcb_cursor_t; cursors_len: uint32;# cursors: ptr xcb_render_animcursorelt_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_anim_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# cursors_len: uint32;# cursors: ptr xcb_render_animcursorelt_t): xcb_void_cookie_t# proc xcb_render_create_anim_cursor_cursors*(# R: ptr xcb_render_create_anim_cursor_request_t): ptr xcb_render_animcursorelt_t# proc xcb_render_create_anim_cursor_cursors_length*(# R: ptr xcb_render_create_anim_cursor_request_t): cint# proc xcb_render_create_anim_cursor_cursors_iterator*(# R: ptr xcb_render_create_anim_cursor_request_t): xcb_render_animcursorelt_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_spanfix_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_spanfix_t)# ### proc xcb_render_spanfix_next*(i: ptr xcb_render_spanfix_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_spanfix_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_spanfix_end*(i: xcb_render_spanfix_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_render_trap_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_render_trap_t)# ### proc xcb_render_trap_next*(i: ptr xcb_render_trap_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_render_trap_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_render_trap_end*(i: xcb_render_trap_iterator_t): xcb_generic_iterator_t# proc xcb_render_add_traps_sizeof*(_buffer: pointer; traps_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_add_traps_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; x_off: int16;# y_off: int16; traps_len: uint32;# traps: ptr xcb_render_trap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_add_traps*(c: ptr xcb_connection_t; picture: xcb_render_picture_t;# x_off: int16; y_off: int16; traps_len: uint32;# traps: ptr xcb_render_trap_t): xcb_void_cookie_t# proc xcb_render_add_traps_traps*(R: ptr xcb_render_add_traps_request_t): ptr xcb_render_trap_t# proc xcb_render_add_traps_traps_length*(R: ptr xcb_render_add_traps_request_t): cint# proc xcb_render_add_traps_traps_iterator*(R: ptr xcb_render_add_traps_request_t): xcb_render_trap_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_solid_fill_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; color: xcb_render_color_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_solid_fill*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# color: xcb_render_color_t): xcb_void_cookie_t# proc xcb_render_create_linear_gradient_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_linear_gradient_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; p1: xcb_render_pointfix_t;# p2: xcb_render_pointfix_t; num_stops: uint32; stops: ptr xcb_render_fixed_t;# colors: ptr xcb_render_color_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_linear_gradient*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# p1: xcb_render_pointfix_t;# p2: xcb_render_pointfix_t;# num_stops: uint32;# stops: ptr xcb_render_fixed_t;# colors: ptr xcb_render_color_t): xcb_void_cookie_t# proc xcb_render_create_linear_gradient_stops*(# R: ptr xcb_render_create_linear_gradient_request_t): ptr xcb_render_fixed_t# proc xcb_render_create_linear_gradient_stops_length*(# R: ptr xcb_render_create_linear_gradient_request_t): cint# proc xcb_render_create_linear_gradient_stops_end*(# R: ptr xcb_render_create_linear_gradient_request_t): xcb_generic_iterator_t# proc xcb_render_create_linear_gradient_colors*(# R: ptr xcb_render_create_linear_gradient_request_t): ptr xcb_render_color_t# proc xcb_render_create_linear_gradient_colors_length*(# R: ptr xcb_render_create_linear_gradient_request_t): cint# proc xcb_render_create_linear_gradient_colors_iterator*(# R: ptr xcb_render_create_linear_gradient_request_t): xcb_render_color_iterator_t# proc xcb_render_create_radial_gradient_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_radial_gradient_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; inner: xcb_render_pointfix_t;# outer: xcb_render_pointfix_t; inner_radius: xcb_render_fixed_t;# outer_radius: xcb_render_fixed_t; num_stops: uint32;# stops: ptr xcb_render_fixed_t; colors: ptr xcb_render_color_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_radial_gradient*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# inner: xcb_render_pointfix_t;# outer: xcb_render_pointfix_t;# inner_radius: xcb_render_fixed_t;# outer_radius: xcb_render_fixed_t;# num_stops: uint32;# stops: ptr xcb_render_fixed_t;# colors: ptr xcb_render_color_t): xcb_void_cookie_t# proc xcb_render_create_radial_gradient_stops*(# R: ptr xcb_render_create_radial_gradient_request_t): ptr xcb_render_fixed_t# proc xcb_render_create_radial_gradient_stops_length*(# R: ptr xcb_render_create_radial_gradient_request_t): cint# proc xcb_render_create_radial_gradient_stops_end*(# R: ptr xcb_render_create_radial_gradient_request_t): xcb_generic_iterator_t# proc xcb_render_create_radial_gradient_colors*(# R: ptr xcb_render_create_radial_gradient_request_t): ptr xcb_render_color_t# proc xcb_render_create_radial_gradient_colors_length*(# R: ptr xcb_render_create_radial_gradient_request_t): cint# proc xcb_render_create_radial_gradient_colors_iterator*(# R: ptr xcb_render_create_radial_gradient_request_t): xcb_render_color_iterator_t# proc xcb_render_create_conical_gradient_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_render_create_conical_gradient_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; center: xcb_render_pointfix_t;# angle: xcb_render_fixed_t; num_stops: uint32; stops: ptr xcb_render_fixed_t;# colors: ptr xcb_render_color_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_render_create_conical_gradient*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# center: xcb_render_pointfix_t;# angle: xcb_render_fixed_t;# num_stops: uint32;# stops: ptr xcb_render_fixed_t;# colors: ptr xcb_render_color_t): xcb_void_cookie_t# proc xcb_render_create_conical_gradient_stops*(# R: ptr xcb_render_create_conical_gradient_request_t): ptr xcb_render_fixed_t# proc xcb_render_create_conical_gradient_stops_length*(# R: ptr xcb_render_create_conical_gradient_request_t): cint# proc xcb_render_create_conical_gradient_stops_end*(# R: ptr xcb_render_create_conical_gradient_request_t): xcb_generic_iterator_t# proc xcb_render_create_conical_gradient_colors*(# R: ptr xcb_render_create_conical_gradient_request_t): ptr xcb_render_color_t# proc xcb_render_create_conical_gradient_colors_length*(# R: ptr xcb_render_create_conical_gradient_request_t): cint# proc xcb_render_create_conical_gradient_colors_iterator*(# R: ptr xcb_render_create_conical_gradient_request_t): xcb_render_color_iterator_t# ## *# ## @}# ### ### ## This file generated automatically from res.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Res_API XCB Res API# ## @brief Res XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_RES_MAJOR_VERSION* = 1# XCB_RES_MINOR_VERSION* = 2# var xcb_res_id*: xcb_extension_t# ## *# ## @brief xcb_res_client_t# ### type# xcb_res_client_t* {.bycopy.} = object# resource_base*: uint32# resource_mask*: uint32# ## *# ## @brief xcb_res_client_iterator_t# ### type# xcb_res_client_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_client_t# rem*: cint# index*: cint# ## *# ## @brief xcb_res_type_t# ### type# xcb_res_type_t* {.bycopy.} = object# resource_type*: xcb_atom_t# count*: uint32# ## *# ## @brief xcb_res_type_iterator_t# ### type# xcb_res_type_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_type_t# rem*: cint# index*: cint# xcb_res_client_id_mask_t* = enum# XCB_RES_CLIENT_ID_MASK_CLIENT_XID = 1,# XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID = 2# ## *# ## @brief xcb_res_client_id_spec_t# ### type# xcb_res_client_id_spec_t* {.bycopy.} = object# client*: uint32# mask*: uint32# ## *# ## @brief xcb_res_client_id_spec_iterator_t# ### type# xcb_res_client_id_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_client_id_spec_t# rem*: cint# index*: cint# ## *# ## @brief xcb_res_client_id_value_t# ### type# xcb_res_client_id_value_t* {.bycopy.} = object# spec*: xcb_res_client_id_spec_t# length*: uint32# ## *# ## @brief xcb_res_client_id_value_iterator_t# ### type# xcb_res_client_id_value_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_client_id_value_t# rem*: cint# index*: cint# ## *# ## @brief xcb_res_resource_id_spec_t# ### type# xcb_res_resource_id_spec_t* {.bycopy.} = object# resource*: uint32# `type`*: uint32# ## *# ## @brief xcb_res_resource_id_spec_iterator_t# ### type# xcb_res_resource_id_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_resource_id_spec_t# rem*: cint# index*: cint# ## *# ## @brief xcb_res_resource_size_spec_t# ### type# xcb_res_resource_size_spec_t* {.bycopy.} = object# spec*: xcb_res_resource_id_spec_t# bytes*: uint32# ref_count*: uint32# use_count*: uint32# ## *# ## @brief xcb_res_resource_size_spec_iterator_t# ### type# xcb_res_resource_size_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_resource_size_spec_t# rem*: cint# index*: cint# ## *# ## @brief xcb_res_resource_size_value_t# ### type# xcb_res_resource_size_value_t* {.bycopy.} = object# size*: xcb_res_resource_size_spec_t# num_cross_references*: uint32# ## *# ## @brief xcb_res_resource_size_value_iterator_t# ### type# xcb_res_resource_size_value_iterator_t* {.bycopy.} = object# data*: ptr xcb_res_resource_size_value_t# rem*: cint# index*: cint# ## *# ## @brief xcb_res_query_version_cookie_t# ### type# xcb_res_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_res_query_version.# const# XCB_RES_QUERY_VERSION* = 0# ## *# ## @brief xcb_res_query_version_request_t# ### type# xcb_res_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major*: uint8# client_minor*: uint8# ## *# ## @brief xcb_res_query_version_reply_t# ### type# xcb_res_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# server_major*: uint16# server_minor*: uint16# ## *# ## @brief xcb_res_query_clients_cookie_t# ### type# xcb_res_query_clients_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_res_query_clients.# const# XCB_RES_QUERY_CLIENTS* = 1# ## *# ## @brief xcb_res_query_clients_request_t# ### type# xcb_res_query_clients_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_res_query_clients_reply_t# ### type# xcb_res_query_clients_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_clients*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_res_query_client_resources_cookie_t# ### type# xcb_res_query_client_resources_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_res_query_client_resources.# const# XCB_RES_QUERY_CLIENT_RESOURCES* = 2# ## *# ## @brief xcb_res_query_client_resources_request_t# ### type# xcb_res_query_client_resources_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# xid*: uint32# ## *# ## @brief xcb_res_query_client_resources_reply_t# ### type# xcb_res_query_client_resources_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_types*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_res_query_client_pixmap_bytes_cookie_t# ### type# xcb_res_query_client_pixmap_bytes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_res_query_client_pixmap_bytes.# const# XCB_RES_QUERY_CLIENT_PIXMAP_BYTES* = 3# ## *# ## @brief xcb_res_query_client_pixmap_bytes_request_t# ### type# xcb_res_query_client_pixmap_bytes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# xid*: uint32# ## *# ## @brief xcb_res_query_client_pixmap_bytes_reply_t# ### type# xcb_res_query_client_pixmap_bytes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# bytes*: uint32# bytes_overflow*: uint32# ## *# ## @brief xcb_res_query_client_ids_cookie_t# ### type# xcb_res_query_client_ids_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_res_query_client_ids.# const# XCB_RES_QUERY_CLIENT_IDS* = 4# ## *# ## @brief xcb_res_query_client_ids_request_t# ### type# xcb_res_query_client_ids_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# num_specs*: uint32# ## *# ## @brief xcb_res_query_client_ids_reply_t# ### type# xcb_res_query_client_ids_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_ids*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_res_query_resource_bytes_cookie_t# ### type# xcb_res_query_resource_bytes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_res_query_resource_bytes.# const# XCB_RES_QUERY_RESOURCE_BYTES* = 5# ## *# ## @brief xcb_res_query_resource_bytes_request_t# ### type# xcb_res_query_resource_bytes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client*: uint32# num_specs*: uint32# ## *# ## @brief xcb_res_query_resource_bytes_reply_t# ### type# xcb_res_query_resource_bytes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_sizes*: uint32# pad1*: array[20, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_client_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_client_t)# ### proc xcb_res_client_next*(i: ptr xcb_res_client_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_client_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_client_end*(i: xcb_res_client_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_type_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_type_t)# ### proc xcb_res_type_next*(i: ptr xcb_res_type_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_type_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_type_end*(i: xcb_res_type_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_client_id_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_client_id_spec_t)# ### proc xcb_res_client_id_spec_next*(i: ptr xcb_res_client_id_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_client_id_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_client_id_spec_end*(i: xcb_res_client_id_spec_iterator_t): xcb_generic_iterator_t# proc xcb_res_client_id_value_sizeof*(_buffer: pointer): cint# proc xcb_res_client_id_value_value*(R: ptr xcb_res_client_id_value_t): ptr uint32# proc xcb_res_client_id_value_value_length*(R: ptr xcb_res_client_id_value_t): cint# proc xcb_res_client_id_value_value_end*(R: ptr xcb_res_client_id_value_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_client_id_value_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_client_id_value_t)# ### proc xcb_res_client_id_value_next*(i: ptr xcb_res_client_id_value_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_client_id_value_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_client_id_value_end*(i: xcb_res_client_id_value_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_resource_id_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_resource_id_spec_t)# ### proc xcb_res_resource_id_spec_next*(i: ptr xcb_res_resource_id_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_resource_id_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_resource_id_spec_end*(i: xcb_res_resource_id_spec_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_resource_size_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_resource_size_spec_t)# ### proc xcb_res_resource_size_spec_next*(i: ptr xcb_res_resource_size_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_resource_size_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_resource_size_spec_end*(i: xcb_res_resource_size_spec_iterator_t): xcb_generic_iterator_t# proc xcb_res_resource_size_value_sizeof*(_buffer: pointer): cint# proc xcb_res_resource_size_value_cross_references*(# R: ptr xcb_res_resource_size_value_t): ptr xcb_res_resource_size_spec_t# proc xcb_res_resource_size_value_cross_references_length*(# R: ptr xcb_res_resource_size_value_t): cint# proc xcb_res_resource_size_value_cross_references_iterator*(# R: ptr xcb_res_resource_size_value_t): xcb_res_resource_size_spec_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_res_resource_size_value_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_res_resource_size_value_t)# ### proc xcb_res_resource_size_value_next*(i: ptr xcb_res_resource_size_value_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_res_resource_size_value_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_res_resource_size_value_end*(i: xcb_res_resource_size_value_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_res_query_version*(c: ptr xcb_connection_t; client_major: uint8;# client_minor: uint8): xcb_res_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_res_query_version_unchecked*(c: ptr xcb_connection_t;# client_major: uint8; client_minor: uint8): xcb_res_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_res_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_res_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_version_reply_t# proc xcb_res_query_clients_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_res_query_clients*(c: ptr xcb_connection_t): xcb_res_query_clients_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_res_query_clients_unchecked*(c: ptr xcb_connection_t): xcb_res_query_clients_cookie_t# proc xcb_res_query_clients_clients*(R: ptr xcb_res_query_clients_reply_t): ptr xcb_res_client_t# proc xcb_res_query_clients_clients_length*(R: ptr xcb_res_query_clients_reply_t): cint# proc xcb_res_query_clients_clients_iterator*(R: ptr xcb_res_query_clients_reply_t): xcb_res_client_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_res_query_clients_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_res_query_clients_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_clients_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_clients_reply_t# proc xcb_res_query_client_resources_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_res_query_client_resources*(c: ptr xcb_connection_t; xid: uint32): xcb_res_query_client_resources_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_res_query_client_resources_unchecked*(c: ptr xcb_connection_t;# xid: uint32): xcb_res_query_client_resources_cookie_t# proc xcb_res_query_client_resources_types*(# R: ptr xcb_res_query_client_resources_reply_t): ptr xcb_res_type_t# proc xcb_res_query_client_resources_types_length*(# R: ptr xcb_res_query_client_resources_reply_t): cint# proc xcb_res_query_client_resources_types_iterator*(# R: ptr xcb_res_query_client_resources_reply_t): xcb_res_type_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_res_query_client_resources_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_res_query_client_resources_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_client_resources_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_client_resources_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_res_query_client_pixmap_bytes*(c: ptr xcb_connection_t; xid: uint32): xcb_res_query_client_pixmap_bytes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_res_query_client_pixmap_bytes_unchecked*(c: ptr xcb_connection_t;# xid: uint32): xcb_res_query_client_pixmap_bytes_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_res_query_client_pixmap_bytes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_res_query_client_pixmap_bytes_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_client_pixmap_bytes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_client_pixmap_bytes_reply_t# proc xcb_res_query_client_ids_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_res_query_client_ids*(c: ptr xcb_connection_t; num_specs: uint32;# specs: ptr xcb_res_client_id_spec_t): xcb_res_query_client_ids_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_res_query_client_ids_unchecked*(c: ptr xcb_connection_t;# num_specs: uint32;# specs: ptr xcb_res_client_id_spec_t): xcb_res_query_client_ids_cookie_t# proc xcb_res_query_client_ids_ids_length*(R: ptr xcb_res_query_client_ids_reply_t): cint# proc xcb_res_query_client_ids_ids_iterator*(# R: ptr xcb_res_query_client_ids_reply_t): xcb_res_client_id_value_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_res_query_client_ids_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_res_query_client_ids_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_client_ids_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_client_ids_reply_t# proc xcb_res_query_resource_bytes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_res_query_resource_bytes*(c: ptr xcb_connection_t; client: uint32;# num_specs: uint32;# specs: ptr xcb_res_resource_id_spec_t): xcb_res_query_resource_bytes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_res_query_resource_bytes_unchecked*(c: ptr xcb_connection_t;# client: uint32; num_specs: uint32; specs: ptr xcb_res_resource_id_spec_t): xcb_res_query_resource_bytes_cookie_t# proc xcb_res_query_resource_bytes_sizes_length*(# R: ptr xcb_res_query_resource_bytes_reply_t): cint# proc xcb_res_query_resource_bytes_sizes_iterator*(# R: ptr xcb_res_query_resource_bytes_reply_t): xcb_res_resource_size_value_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_res_query_resource_bytes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_res_query_resource_bytes_reply*(c: ptr xcb_connection_t; cookie: xcb_res_query_resource_bytes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_res_query_resource_bytes_reply_t# ## *# ## @}# ### ### ## This file generated automatically from screensaver.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_ScreenSaver_API XCB ScreenSaver API# ## @brief ScreenSaver XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_SCREENSAVER_MAJOR_VERSION* = 1# XCB_SCREENSAVER_MINOR_VERSION* = 1# var xcb_screensaver_id*: xcb_extension_t# type# xcb_screensaver_kind_t* = enum# XCB_SCREENSAVER_KIND_BLANKED = 0, XCB_SCREENSAVER_KIND_INTERNAL = 1,# XCB_SCREENSAVER_KIND_EXTERNAL = 2# xcb_screensaver_event_t* = enum# XCB_SCREENSAVER_EVENT_NOTIFY_MASK = 1, XCB_SCREENSAVER_EVENT_CYCLE_MASK = 2# xcb_screensaver_state_t* = enum# XCB_SCREENSAVER_STATE_OFF = 0, XCB_SCREENSAVER_STATE_ON = 1,# XCB_SCREENSAVER_STATE_CYCLE = 2, XCB_SCREENSAVER_STATE_DISABLED = 3# ## *# ## @brief xcb_screensaver_query_version_cookie_t# ### type# xcb_screensaver_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_screensaver_query_version.# const# XCB_SCREENSAVER_QUERY_VERSION* = 0# ## *# ## @brief xcb_screensaver_query_version_request_t# ### type# xcb_screensaver_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint8# client_minor_version*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_screensaver_query_version_reply_t# ### type# xcb_screensaver_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# server_major_version*: uint16# server_minor_version*: uint16# pad1*: array[20, uint8]# ## *# ## @brief xcb_screensaver_query_info_cookie_t# ### type# xcb_screensaver_query_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_screensaver_query_info.# const# XCB_SCREENSAVER_QUERY_INFO* = 1# ## *# ## @brief xcb_screensaver_query_info_request_t# ### type# xcb_screensaver_query_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## *# ## @brief xcb_screensaver_query_info_reply_t# ### type# xcb_screensaver_query_info_reply_t* {.bycopy.} = object# response_type*: uint8# state*: uint8# sequence*: uint16# length*: uint32# saver_window*: xcb_window_t# ms_until_server*: uint32# ms_since_user_input*: uint32# event_mask*: uint32# kind*: uint8# pad0*: array[7, uint8]# ## * Opcode for xcb_screensaver_select_input.# const# XCB_SCREENSAVER_SELECT_INPUT* = 2# ## *# ## @brief xcb_screensaver_select_input_request_t# ### type# xcb_screensaver_select_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# event_mask*: uint32# ## *# ## @brief xcb_screensaver_set_attributes_value_list_t# ### type# xcb_screensaver_set_attributes_value_list_t* {.bycopy.} = object# background_pixmap*: xcb_pixmap_t# background_pixel*: uint32# border_pixmap*: xcb_pixmap_t# border_pixel*: uint32# bit_gravity*: uint32# win_gravity*: uint32# backing_store*: uint32# backing_planes*: uint32# backing_pixel*: uint32# override_redirect*: xcb_bool32_t# save_under*: xcb_bool32_t# event_mask*: uint32# do_not_propogate_mask*: uint32# colormap*: xcb_colormap_t# cursor*: xcb_cursor_t# ## * Opcode for xcb_screensaver_set_attributes.# const# XCB_SCREENSAVER_SET_ATTRIBUTES* = 3# ## *# ## @brief xcb_screensaver_set_attributes_request_t# ### type# xcb_screensaver_set_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# x*: int16# y*: int16# width*: uint16# height*: uint16# border_width*: uint16# _class*: uint8# depth*: uint8# visual*: xcb_visualid_t# value_mask*: uint32# ## * Opcode for xcb_screensaver_unset_attributes.# const# XCB_SCREENSAVER_UNSET_ATTRIBUTES* = 4# ## *# ## @brief xcb_screensaver_unset_attributes_request_t# ### type# xcb_screensaver_unset_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## * Opcode for xcb_screensaver_suspend.# const# XCB_SCREENSAVER_SUSPEND* = 5# ## *# ## @brief xcb_screensaver_suspend_request_t# ### type# xcb_screensaver_suspend_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# suspend*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_screensaver_notify.# const# XCB_SCREENSAVER_NOTIFY* = 0# ## *# ## @brief xcb_screensaver_notify_event_t# ### type# xcb_screensaver_notify_event_t* {.bycopy.} = object# response_type*: uint8# state*: uint8# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# window*: xcb_window_t# kind*: uint8# forced*: uint8# pad0*: array[14, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_query_version*(c: ptr xcb_connection_t;# client_major_version: uint8;# client_minor_version: uint8): xcb_screensaver_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_screensaver_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint8; client_minor_version: uint8): xcb_screensaver_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_screensaver_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_screensaver_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_screensaver_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_screensaver_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_query_info*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_screensaver_query_info_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_screensaver_query_info_unchecked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t): xcb_screensaver_query_info_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_screensaver_query_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_screensaver_query_info_reply*(c: ptr xcb_connection_t; cookie: xcb_screensaver_query_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_screensaver_query_info_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_screensaver_select_input_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_select_input*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; event_mask: uint32): xcb_void_cookie_t# proc xcb_screensaver_set_attributes_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_screensaver_set_attributes_value_list_t): cint# proc xcb_screensaver_set_attributes_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_screensaver_set_attributes_value_list_t): cint# proc xcb_screensaver_set_attributes_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_screensaver_set_attributes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_screensaver_set_attributes_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; x: int16; y: int16; width: uint16; height: uint16;# border_width: uint16; _class: uint8; depth: uint8; visual: xcb_visualid_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_set_attributes*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; x: int16;# y: int16; width: uint16; height: uint16;# border_width: uint16; _class: uint8;# depth: uint8; visual: xcb_visualid_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_screensaver_set_attributes_aux_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; x: int16; y: int16; width: uint16; height: uint16;# border_width: uint16; _class: uint8; depth: uint8; visual: xcb_visualid_t;# value_mask: uint32;# value_list: ptr xcb_screensaver_set_attributes_value_list_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_set_attributes_aux*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; x: int16;# y: int16; width: uint16;# height: uint16; border_width: uint16;# _class: uint8; depth: uint8;# visual: xcb_visualid_t;# value_mask: uint32; value_list: ptr xcb_screensaver_set_attributes_value_list_t): xcb_void_cookie_t# proc xcb_screensaver_set_attributes_value_list*(# R: ptr xcb_screensaver_set_attributes_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_screensaver_unset_attributes_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_unset_attributes*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_screensaver_suspend_checked*(c: ptr xcb_connection_t; suspend: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_screensaver_suspend*(c: ptr xcb_connection_t; suspend: uint8): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from shape.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Shape_API XCB Shape API# ## @brief Shape XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_SHAPE_MAJOR_VERSION* = 1# XCB_SHAPE_MINOR_VERSION* = 1# var xcb_shape_id*: xcb_extension_t# type# xcb_shape_op_t* = uint8# ## *# ## @brief xcb_shape_op_iterator_t# ### type# xcb_shape_op_iterator_t* {.bycopy.} = object# data*: ptr xcb_shape_op_t# rem*: cint# index*: cint# xcb_shape_kind_t* = uint8# ## *# ## @brief xcb_shape_kind_iterator_t# ### type# xcb_shape_kind_iterator_t* {.bycopy.} = object# data*: ptr xcb_shape_kind_t# rem*: cint# index*: cint# xcb_shape_so_t* = enum# XCB_SHAPE_SO_SET = 0, XCB_SHAPE_SO_UNION = 1, XCB_SHAPE_SO_INTERSECT = 2,# XCB_SHAPE_SO_SUBTRACT = 3, XCB_SHAPE_SO_INVERT = 4# xcb_shape_sk_t* = enum# XCB_SHAPE_SK_BOUNDING = 0, XCB_SHAPE_SK_CLIP = 1, XCB_SHAPE_SK_INPUT = 2# ## * Opcode for xcb_shape_notify.# const# XCB_SHAPE_NOTIFY* = 0# ## *# ## @brief xcb_shape_notify_event_t# ### type# xcb_shape_notify_event_t* {.bycopy.} = object# response_type*: uint8# shape_kind*: xcb_shape_kind_t# sequence*: uint16# affected_window*: xcb_window_t# extents_x*: int16# extents_y*: int16# extents_width*: uint16# extents_height*: uint16# server_time*: xcb_timestamp_t# shaped*: uint8# pad0*: array[11, uint8]# ## *# ## @brief xcb_shape_query_version_cookie_t# ### type# xcb_shape_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shape_query_version.# const# XCB_SHAPE_QUERY_VERSION* = 0# ## *# ## @brief xcb_shape_query_version_request_t# ### type# xcb_shape_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_shape_query_version_reply_t# ### type# xcb_shape_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint16# minor_version*: uint16# ## * Opcode for xcb_shape_rectangles.# const# XCB_SHAPE_RECTANGLES* = 1# ## *# ## @brief xcb_shape_rectangles_request_t# ### type# xcb_shape_rectangles_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# operation*: xcb_shape_op_t# destination_kind*: xcb_shape_kind_t# ordering*: uint8# pad0*: uint8# destination_window*: xcb_window_t# x_offset*: int16# y_offset*: int16# ## * Opcode for xcb_shape_mask.# const# XCB_SHAPE_MASK* = 2# ## *# ## @brief xcb_shape_mask_request_t# ### type# xcb_shape_mask_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# operation*: xcb_shape_op_t# destination_kind*: xcb_shape_kind_t# pad0*: array[2, uint8]# destination_window*: xcb_window_t# x_offset*: int16# y_offset*: int16# source_bitmap*: xcb_pixmap_t# ## * Opcode for xcb_shape_combine.# const# XCB_SHAPE_COMBINE* = 3# ## *# ## @brief xcb_shape_combine_request_t# ### type# xcb_shape_combine_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# operation*: xcb_shape_op_t# destination_kind*: xcb_shape_kind_t# source_kind*: xcb_shape_kind_t# pad0*: uint8# destination_window*: xcb_window_t# x_offset*: int16# y_offset*: int16# source_window*: xcb_window_t# ## * Opcode for xcb_shape_offset.# const# XCB_SHAPE_OFFSET* = 4# ## *# ## @brief xcb_shape_offset_request_t# ### type# xcb_shape_offset_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# destination_kind*: xcb_shape_kind_t# pad0*: array[3, uint8]# destination_window*: xcb_window_t# x_offset*: int16# y_offset*: int16# ## *# ## @brief xcb_shape_query_extents_cookie_t# ### type# xcb_shape_query_extents_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shape_query_extents.# const# XCB_SHAPE_QUERY_EXTENTS* = 5# ## *# ## @brief xcb_shape_query_extents_request_t# ### type# xcb_shape_query_extents_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# destination_window*: xcb_window_t# ## *# ## @brief xcb_shape_query_extents_reply_t# ### type# xcb_shape_query_extents_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# bounding_shaped*: uint8# clip_shaped*: uint8# pad1*: array[2, uint8]# bounding_shape_extents_x*: int16# bounding_shape_extents_y*: int16# bounding_shape_extents_width*: uint16# bounding_shape_extents_height*: uint16# clip_shape_extents_x*: int16# clip_shape_extents_y*: int16# clip_shape_extents_width*: uint16# clip_shape_extents_height*: uint16# ## * Opcode for xcb_shape_select_input.# const# XCB_SHAPE_SELECT_INPUT* = 6# ## *# ## @brief xcb_shape_select_input_request_t# ### type# xcb_shape_select_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# destination_window*: xcb_window_t# enable*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_shape_input_selected_cookie_t# ### type# xcb_shape_input_selected_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shape_input_selected.# const# XCB_SHAPE_INPUT_SELECTED* = 7# ## *# ## @brief xcb_shape_input_selected_request_t# ### type# xcb_shape_input_selected_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# destination_window*: xcb_window_t# ## *# ## @brief xcb_shape_input_selected_reply_t# ### type# xcb_shape_input_selected_reply_t* {.bycopy.} = object# response_type*: uint8# enabled*: uint8# sequence*: uint16# length*: uint32# ## *# ## @brief xcb_shape_get_rectangles_cookie_t# ### type# xcb_shape_get_rectangles_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shape_get_rectangles.# const# XCB_SHAPE_GET_RECTANGLES* = 8# ## *# ## @brief xcb_shape_get_rectangles_request_t# ### type# xcb_shape_get_rectangles_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# source_kind*: xcb_shape_kind_t# pad0*: array[3, uint8]# ## *# ## @brief xcb_shape_get_rectangles_reply_t# ### type# xcb_shape_get_rectangles_reply_t* {.bycopy.} = object# response_type*: uint8# ordering*: uint8# sequence*: uint16# length*: uint32# rectangles_len*: uint32# pad0*: array[20, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_shape_op_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_shape_op_t)# ### proc xcb_shape_op_next*(i: ptr xcb_shape_op_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_shape_op_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_shape_op_end*(i: xcb_shape_op_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_shape_kind_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_shape_kind_t)# ### proc xcb_shape_kind_next*(i: ptr xcb_shape_kind_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_shape_kind_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_shape_kind_end*(i: xcb_shape_kind_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_query_version*(c: ptr xcb_connection_t): xcb_shape_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shape_query_version_unchecked*(c: ptr xcb_connection_t): xcb_shape_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shape_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shape_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_query_version_reply_t# proc xcb_shape_rectangles_sizeof*(_buffer: pointer; rectangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shape_rectangles_checked*(c: ptr xcb_connection_t;# operation: xcb_shape_op_t;# destination_kind: xcb_shape_kind_t;# ordering: uint8;# destination_window: xcb_window_t;# x_offset: int16; y_offset: int16;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_rectangles*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;# destination_kind: xcb_shape_kind_t; ordering: uint8;# destination_window: xcb_window_t; x_offset: int16;# y_offset: int16; rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_shape_rectangles_rectangles*(R: ptr xcb_shape_rectangles_request_t): ptr xcb_rectangle_t# proc xcb_shape_rectangles_rectangles_length*(# R: ptr xcb_shape_rectangles_request_t): cint# proc xcb_shape_rectangles_rectangles_iterator*(# R: ptr xcb_shape_rectangles_request_t): xcb_rectangle_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shape_mask_checked*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;# destination_kind: xcb_shape_kind_t;# destination_window: xcb_window_t; x_offset: int16;# y_offset: int16; source_bitmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_mask*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;# destination_kind: xcb_shape_kind_t;# destination_window: xcb_window_t; x_offset: int16;# y_offset: int16; source_bitmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shape_combine_checked*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;# destination_kind: xcb_shape_kind_t;# source_kind: xcb_shape_kind_t;# destination_window: xcb_window_t;# x_offset: int16; y_offset: int16;# source_window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_combine*(c: ptr xcb_connection_t; operation: xcb_shape_op_t;# destination_kind: xcb_shape_kind_t;# source_kind: xcb_shape_kind_t;# destination_window: xcb_window_t; x_offset: int16;# y_offset: int16; source_window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shape_offset_checked*(c: ptr xcb_connection_t;# destination_kind: xcb_shape_kind_t;# destination_window: xcb_window_t; x_offset: int16;# y_offset: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_offset*(c: ptr xcb_connection_t; destination_kind: xcb_shape_kind_t;# destination_window: xcb_window_t; x_offset: int16;# y_offset: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_query_extents*(c: ptr xcb_connection_t;# destination_window: xcb_window_t): xcb_shape_query_extents_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shape_query_extents_unchecked*(c: ptr xcb_connection_t;# destination_window: xcb_window_t): xcb_shape_query_extents_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shape_query_extents_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shape_query_extents_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_query_extents_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_query_extents_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shape_select_input_checked*(c: ptr xcb_connection_t;# destination_window: xcb_window_t;# enable: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_select_input*(c: ptr xcb_connection_t;# destination_window: xcb_window_t; enable: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_input_selected*(c: ptr xcb_connection_t;# destination_window: xcb_window_t): xcb_shape_input_selected_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shape_input_selected_unchecked*(c: ptr xcb_connection_t;# destination_window: xcb_window_t): xcb_shape_input_selected_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shape_input_selected_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shape_input_selected_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_input_selected_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_input_selected_reply_t# proc xcb_shape_get_rectangles_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shape_get_rectangles*(c: ptr xcb_connection_t; window: xcb_window_t;# source_kind: xcb_shape_kind_t): xcb_shape_get_rectangles_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shape_get_rectangles_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t;# source_kind: xcb_shape_kind_t): xcb_shape_get_rectangles_cookie_t# proc xcb_shape_get_rectangles_rectangles*(R: ptr xcb_shape_get_rectangles_reply_t): ptr xcb_rectangle_t# proc xcb_shape_get_rectangles_rectangles_length*(# R: ptr xcb_shape_get_rectangles_reply_t): cint# proc xcb_shape_get_rectangles_rectangles_iterator*(# R: ptr xcb_shape_get_rectangles_reply_t): xcb_rectangle_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shape_get_rectangles_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shape_get_rectangles_reply*(c: ptr xcb_connection_t; cookie: xcb_shape_get_rectangles_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shape_get_rectangles_reply_t# ## *# ## @}# ### ### ## This file generated automatically from shm.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Shm_API XCB Shm API# ## @brief Shm XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_SHM_MAJOR_VERSION* = 1# XCB_SHM_MINOR_VERSION* = 2# var xcb_shm_id*: xcb_extension_t# type# xcb_shm_seg_t* = uint32# ## *# ## @brief xcb_shm_seg_iterator_t# ### type# xcb_shm_seg_iterator_t* {.bycopy.} = object# data*: ptr xcb_shm_seg_t# rem*: cint# index*: cint# ## * Opcode for xcb_shm_completion.# const# XCB_SHM_COMPLETION* = 0# ## *# ## @brief xcb_shm_completion_event_t# ### type# xcb_shm_completion_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# drawable*: xcb_drawable_t# minor_event*: uint16# major_event*: uint8# pad1*: uint8# shmseg*: xcb_shm_seg_t# offset*: uint32# ## * Opcode for xcb_shm_bad_seg.# const# XCB_SHM_BAD_SEG* = 0# type# xcb_shm_bad_seg_error_t* = xcb_value_error_t# ## *# ## @brief xcb_shm_query_version_cookie_t# ### type# xcb_shm_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shm_query_version.# const# XCB_SHM_QUERY_VERSION* = 0# ## *# ## @brief xcb_shm_query_version_request_t# ### type# xcb_shm_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_shm_query_version_reply_t# ### type# xcb_shm_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# shared_pixmaps*: uint8# sequence*: uint16# length*: uint32# major_version*: uint16# minor_version*: uint16# uid*: uint16# gid*: uint16# pixmap_format*: uint8# pad0*: array[15, uint8]# ## * Opcode for xcb_shm_attach.# const# XCB_SHM_ATTACH* = 1# ## *# ## @brief xcb_shm_attach_request_t# ### type# xcb_shm_attach_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# shmseg*: xcb_shm_seg_t# shmid*: uint32# read_only*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_shm_detach.# const# XCB_SHM_DETACH* = 2# ## *# ## @brief xcb_shm_detach_request_t# ### type# xcb_shm_detach_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# shmseg*: xcb_shm_seg_t# ## * Opcode for xcb_shm_put_image.# const# XCB_SHM_PUT_IMAGE* = 3# ## *# ## @brief xcb_shm_put_image_request_t# ### type# xcb_shm_put_image_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# total_width*: uint16# total_height*: uint16# src_x*: uint16# src_y*: uint16# src_width*: uint16# src_height*: uint16# dst_x*: int16# dst_y*: int16# depth*: uint8# format*: uint8# send_event*: uint8# pad0*: uint8# shmseg*: xcb_shm_seg_t# offset*: uint32# ## *# ## @brief xcb_shm_get_image_cookie_t# ### type# xcb_shm_get_image_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shm_get_image.# const# XCB_SHM_GET_IMAGE* = 4# ## *# ## @brief xcb_shm_get_image_request_t# ### type# xcb_shm_get_image_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# x*: int16# y*: int16# width*: uint16# height*: uint16# plane_mask*: uint32# format*: uint8# pad0*: array[3, uint8]# shmseg*: xcb_shm_seg_t# offset*: uint32# ## *# ## @brief xcb_shm_get_image_reply_t# ### type# xcb_shm_get_image_reply_t* {.bycopy.} = object# response_type*: uint8# depth*: uint8# sequence*: uint16# length*: uint32# visual*: xcb_visualid_t# size*: uint32# ## * Opcode for xcb_shm_create_pixmap.# const# XCB_SHM_CREATE_PIXMAP* = 5# ## *# ## @brief xcb_shm_create_pixmap_request_t# ### type# xcb_shm_create_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# pid*: xcb_pixmap_t# drawable*: xcb_drawable_t# width*: uint16# height*: uint16# depth*: uint8# pad0*: array[3, uint8]# shmseg*: xcb_shm_seg_t# offset*: uint32# ## * Opcode for xcb_shm_attach_fd.# const# XCB_SHM_ATTACH_FD* = 6# ## *# ## @brief xcb_shm_attach_fd_request_t# ### type# xcb_shm_attach_fd_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# shmseg*: xcb_shm_seg_t# read_only*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_shm_create_segment_cookie_t# ### type# xcb_shm_create_segment_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_shm_create_segment.# const# XCB_SHM_CREATE_SEGMENT* = 7# ## *# ## @brief xcb_shm_create_segment_request_t# ### type# xcb_shm_create_segment_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# shmseg*: xcb_shm_seg_t# size*: uint32# read_only*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_shm_create_segment_reply_t# ### type# xcb_shm_create_segment_reply_t* {.bycopy.} = object# response_type*: uint8# nfd*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_shm_seg_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_shm_seg_t)# ### proc xcb_shm_seg_next*(i: ptr xcb_shm_seg_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_shm_seg_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_shm_seg_end*(i: xcb_shm_seg_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_query_version*(c: ptr xcb_connection_t): xcb_shm_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shm_query_version_unchecked*(c: ptr xcb_connection_t): xcb_shm_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shm_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shm_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_shm_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shm_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shm_attach_checked*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;# shmid: uint32; read_only: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_attach*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t; shmid: uint32;# read_only: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shm_detach_checked*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_detach*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shm_put_image_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; total_width: uint16;# total_height: uint16; src_x: uint16;# src_y: uint16; src_width: uint16;# src_height: uint16; dst_x: int16; dst_y: int16;# depth: uint8; format: uint8; send_event: uint8;# shmseg: xcb_shm_seg_t; offset: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_put_image*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; total_width: uint16;# total_height: uint16; src_x: uint16; src_y: uint16;# src_width: uint16; src_height: uint16; dst_x: int16;# dst_y: int16; depth: uint8; format: uint8;# send_event: uint8; shmseg: xcb_shm_seg_t; offset: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_get_image*(c: ptr xcb_connection_t; drawable: xcb_drawable_t; x: int16;# y: int16; width: uint16; height: uint16;# plane_mask: uint32; format: uint8; shmseg: xcb_shm_seg_t;# offset: uint32): xcb_shm_get_image_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shm_get_image_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# x: int16; y: int16; width: uint16;# height: uint16; plane_mask: uint32;# format: uint8; shmseg: xcb_shm_seg_t;# offset: uint32): xcb_shm_get_image_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shm_get_image_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shm_get_image_reply*(c: ptr xcb_connection_t; cookie: xcb_shm_get_image_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shm_get_image_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shm_create_pixmap_checked*(c: ptr xcb_connection_t; pid: xcb_pixmap_t;# drawable: xcb_drawable_t; width: uint16;# height: uint16; depth: uint8;# shmseg: xcb_shm_seg_t; offset: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_create_pixmap*(c: ptr xcb_connection_t; pid: xcb_pixmap_t;# drawable: xcb_drawable_t; width: uint16;# height: uint16; depth: uint8; shmseg: xcb_shm_seg_t;# offset: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_shm_attach_fd_checked*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;# shm_fd: int32; read_only: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_attach_fd*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;# shm_fd: int32; read_only: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_shm_create_segment*(c: ptr xcb_connection_t; shmseg: xcb_shm_seg_t;# size: uint32; read_only: uint8): xcb_shm_create_segment_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_shm_create_segment_unchecked*(c: ptr xcb_connection_t;# shmseg: xcb_shm_seg_t; size: uint32;# read_only: uint8): xcb_shm_create_segment_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_shm_create_segment_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shm_create_segment_reply*(c: ptr xcb_connection_t; cookie: xcb_shm_create_segment_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_shm_create_segment_reply_t# ## *# ## Return the reply fds# ## @param c The connection# ## @param reply The reply# ### ## Returns the array of reply fds of the request asked by# ### ## The returned value must be freed by the caller using free().# ### proc xcb_shm_create_segment_reply_fds*(c: ptr xcb_connection_t; ## *<# reply: ptr xcb_shm_create_segment_reply_t): ptr cint# ## *# ## @}# ### ### ## This file generated automatically from sync.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Sync_API XCB Sync API# ## @brief Sync XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_SYNC_MAJOR_VERSION* = 3# XCB_SYNC_MINOR_VERSION* = 1# var xcb_sync_id*: xcb_extension_t# type# xcb_sync_alarm_t* = uint32# ## *# ## @brief xcb_sync_alarm_iterator_t# ### type# xcb_sync_alarm_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_alarm_t# rem*: cint# index*: cint# xcb_sync_alarmstate_t* = enum# XCB_SYNC_ALARMSTATE_ACTIVE = 0, XCB_SYNC_ALARMSTATE_INACTIVE = 1,# XCB_SYNC_ALARMSTATE_DESTROYED = 2# xcb_sync_counter_t* = uint32# ## *# ## @brief xcb_sync_counter_iterator_t# ### type# xcb_sync_counter_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_counter_t# rem*: cint# index*: cint# xcb_sync_fence_t* = uint32# ## *# ## @brief xcb_sync_fence_iterator_t# ### type# xcb_sync_fence_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_fence_t# rem*: cint# index*: cint# xcb_sync_testtype_t* = enum# XCB_SYNC_TESTTYPE_POSITIVE_TRANSITION = 0,# XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION = 1,# XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON = 2,# XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON = 3# xcb_sync_valuetype_t* = enum# XCB_SYNC_VALUETYPE_ABSOLUTE = 0, XCB_SYNC_VALUETYPE_RELATIVE = 1# xcb_sync_ca_t* = enum# XCB_SYNC_CA_COUNTER = 1, XCB_SYNC_CA_VALUE_TYPE = 2, XCB_SYNC_CA_VALUE = 4,# XCB_SYNC_CA_TEST_TYPE = 8, XCB_SYNC_CA_DELTA = 16, XCB_SYNC_CA_EVENTS = 32# ## *# ## @brief xcb_sync_int64_t# ### type# xcb_sync_int64_t* {.bycopy.} = object# hi*: int32# lo*: uint32# ## *# ## @brief xcb_sync_int64_iterator_t# ### type# xcb_sync_int64_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_int64_t# rem*: cint# index*: cint# ## *# ## @brief xcb_sync_systemcounter_t# ### type# xcb_sync_systemcounter_t* {.bycopy.} = object# counter*: xcb_sync_counter_t# resolution*: xcb_sync_int64_t# name_len*: uint16# ## *# ## @brief xcb_sync_systemcounter_iterator_t# ### type# xcb_sync_systemcounter_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_systemcounter_t# rem*: cint# index*: cint# ## *# ## @brief xcb_sync_trigger_t# ### type# xcb_sync_trigger_t* {.bycopy.} = object# counter*: xcb_sync_counter_t# wait_type*: uint32# wait_value*: xcb_sync_int64_t# test_type*: uint32# ## *# ## @brief xcb_sync_trigger_iterator_t# ### type# xcb_sync_trigger_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_trigger_t# rem*: cint# index*: cint# ## *# ## @brief xcb_sync_waitcondition_t# ### type# xcb_sync_waitcondition_t* {.bycopy.} = object# trigger*: xcb_sync_trigger_t# event_threshold*: xcb_sync_int64_t# ## *# ## @brief xcb_sync_waitcondition_iterator_t# ### type# xcb_sync_waitcondition_iterator_t* {.bycopy.} = object# data*: ptr xcb_sync_waitcondition_t# rem*: cint# index*: cint# ## * Opcode for xcb_sync_counter.# const# XCB_SYNC_COUNTER* = 0# ## *# ## @brief xcb_sync_counter_error_t# ### type# xcb_sync_counter_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# bad_counter*: uint32# minor_opcode*: uint16# major_opcode*: uint8# ## * Opcode for xcb_sync_alarm.# const# XCB_SYNC_ALARM* = 1# ## *# ## @brief xcb_sync_alarm_error_t# ### type# xcb_sync_alarm_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# bad_alarm*: uint32# minor_opcode*: uint16# major_opcode*: uint8# ## *# ## @brief xcb_sync_initialize_cookie_t# ### type# xcb_sync_initialize_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_sync_initialize.# const# XCB_SYNC_INITIALIZE* = 0# ## *# ## @brief xcb_sync_initialize_request_t# ### type# xcb_sync_initialize_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# desired_major_version*: uint8# desired_minor_version*: uint8# ## *# ## @brief xcb_sync_initialize_reply_t# ### type# xcb_sync_initialize_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint8# minor_version*: uint8# pad1*: array[22, uint8]# ## *# ## @brief xcb_sync_list_system_counters_cookie_t# ### type# xcb_sync_list_system_counters_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_sync_list_system_counters.# const# XCB_SYNC_LIST_SYSTEM_COUNTERS* = 1# ## *# ## @brief xcb_sync_list_system_counters_request_t# ### type# xcb_sync_list_system_counters_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_sync_list_system_counters_reply_t# ### type# xcb_sync_list_system_counters_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# counters_len*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_sync_create_counter.# const# XCB_SYNC_CREATE_COUNTER* = 2# ## *# ## @brief xcb_sync_create_counter_request_t# ### type# xcb_sync_create_counter_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# id*: xcb_sync_counter_t# initial_value*: xcb_sync_int64_t# ## * Opcode for xcb_sync_destroy_counter.# const# XCB_SYNC_DESTROY_COUNTER* = 6# ## *# ## @brief xcb_sync_destroy_counter_request_t# ### type# xcb_sync_destroy_counter_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# counter*: xcb_sync_counter_t# ## *# ## @brief xcb_sync_query_counter_cookie_t# ### type# xcb_sync_query_counter_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_sync_query_counter.# const# XCB_SYNC_QUERY_COUNTER* = 5# ## *# ## @brief xcb_sync_query_counter_request_t# ### type# xcb_sync_query_counter_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# counter*: xcb_sync_counter_t# ## *# ## @brief xcb_sync_query_counter_reply_t# ### type# xcb_sync_query_counter_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# counter_value*: xcb_sync_int64_t# ## * Opcode for xcb_sync_await.# const# XCB_SYNC_AWAIT* = 7# ## *# ## @brief xcb_sync_await_request_t# ### type# xcb_sync_await_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## * Opcode for xcb_sync_change_counter.# const# XCB_SYNC_CHANGE_COUNTER* = 4# ## *# ## @brief xcb_sync_change_counter_request_t# ### type# xcb_sync_change_counter_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# counter*: xcb_sync_counter_t# amount*: xcb_sync_int64_t# ## * Opcode for xcb_sync_set_counter.# const# XCB_SYNC_SET_COUNTER* = 3# ## *# ## @brief xcb_sync_set_counter_request_t# ### type# xcb_sync_set_counter_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# counter*: xcb_sync_counter_t# value*: xcb_sync_int64_t# ## *# ## @brief xcb_sync_create_alarm_value_list_t# ### type# xcb_sync_create_alarm_value_list_t* {.bycopy.} = object# counter*: xcb_sync_counter_t# valueType*: uint32# value*: xcb_sync_int64_t# testType*: uint32# delta*: xcb_sync_int64_t# events*: uint32# ## * Opcode for xcb_sync_create_alarm.# const# XCB_SYNC_CREATE_ALARM* = 8# ## *# ## @brief xcb_sync_create_alarm_request_t# ### type# xcb_sync_create_alarm_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# id*: xcb_sync_alarm_t# value_mask*: uint32# ## *# ## @brief xcb_sync_change_alarm_value_list_t# ### type# xcb_sync_change_alarm_value_list_t* {.bycopy.} = object# counter*: xcb_sync_counter_t# valueType*: uint32# value*: xcb_sync_int64_t# testType*: uint32# delta*: xcb_sync_int64_t# events*: uint32# ## * Opcode for xcb_sync_change_alarm.# const# XCB_SYNC_CHANGE_ALARM* = 9# ## *# ## @brief xcb_sync_change_alarm_request_t# ### type# xcb_sync_change_alarm_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# id*: xcb_sync_alarm_t# value_mask*: uint32# ## * Opcode for xcb_sync_destroy_alarm.# const# XCB_SYNC_DESTROY_ALARM* = 11# ## *# ## @brief xcb_sync_destroy_alarm_request_t# ### type# xcb_sync_destroy_alarm_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# alarm*: xcb_sync_alarm_t# ## *# ## @brief xcb_sync_query_alarm_cookie_t# ### type# xcb_sync_query_alarm_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_sync_query_alarm.# const# XCB_SYNC_QUERY_ALARM* = 10# ## *# ## @brief xcb_sync_query_alarm_request_t# ### type# xcb_sync_query_alarm_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# alarm*: xcb_sync_alarm_t# ## *# ## @brief xcb_sync_query_alarm_reply_t# ### type# xcb_sync_query_alarm_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# trigger*: xcb_sync_trigger_t# delta*: xcb_sync_int64_t# events*: uint8# state*: uint8# pad1*: array[2, uint8]# ## * Opcode for xcb_sync_set_priority.# const# XCB_SYNC_SET_PRIORITY* = 12# ## *# ## @brief xcb_sync_set_priority_request_t# ### type# xcb_sync_set_priority_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# id*: uint32# priority*: int32# ## *# ## @brief xcb_sync_get_priority_cookie_t# ### type# xcb_sync_get_priority_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_sync_get_priority.# const# XCB_SYNC_GET_PRIORITY* = 13# ## *# ## @brief xcb_sync_get_priority_request_t# ### type# xcb_sync_get_priority_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# id*: uint32# ## *# ## @brief xcb_sync_get_priority_reply_t# ### type# xcb_sync_get_priority_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# priority*: int32# ## * Opcode for xcb_sync_create_fence.# const# XCB_SYNC_CREATE_FENCE* = 14# ## *# ## @brief xcb_sync_create_fence_request_t# ### type# xcb_sync_create_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# fence*: xcb_sync_fence_t# initially_triggered*: uint8# ## * Opcode for xcb_sync_trigger_fence.# const# XCB_SYNC_TRIGGER_FENCE* = 15# ## *# ## @brief xcb_sync_trigger_fence_request_t# ### type# xcb_sync_trigger_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# fence*: xcb_sync_fence_t# ## * Opcode for xcb_sync_reset_fence.# const# XCB_SYNC_RESET_FENCE* = 16# ## *# ## @brief xcb_sync_reset_fence_request_t# ### type# xcb_sync_reset_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# fence*: xcb_sync_fence_t# ## * Opcode for xcb_sync_destroy_fence.# const# XCB_SYNC_DESTROY_FENCE* = 17# ## *# ## @brief xcb_sync_destroy_fence_request_t# ### type# xcb_sync_destroy_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# fence*: xcb_sync_fence_t# ## *# ## @brief xcb_sync_query_fence_cookie_t# ### type# xcb_sync_query_fence_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_sync_query_fence.# const# XCB_SYNC_QUERY_FENCE* = 18# ## *# ## @brief xcb_sync_query_fence_request_t# ### type# xcb_sync_query_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# fence*: xcb_sync_fence_t# ## *# ## @brief xcb_sync_query_fence_reply_t# ### type# xcb_sync_query_fence_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# triggered*: uint8# pad1*: array[23, uint8]# ## * Opcode for xcb_sync_await_fence.# const# XCB_SYNC_AWAIT_FENCE* = 19# ## *# ## @brief xcb_sync_await_fence_request_t# ### type# xcb_sync_await_fence_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## * Opcode for xcb_sync_counter_notify.# const# XCB_SYNC_COUNTER_NOTIFY* = 0# ## *# ## @brief xcb_sync_counter_notify_event_t# ### type# xcb_sync_counter_notify_event_t* {.bycopy.} = object# response_type*: uint8# kind*: uint8# sequence*: uint16# counter*: xcb_sync_counter_t# wait_value*: xcb_sync_int64_t# counter_value*: xcb_sync_int64_t# timestamp*: xcb_timestamp_t# count*: uint16# destroyed*: uint8# pad0*: uint8# ## * Opcode for xcb_sync_alarm_notify.# const# XCB_SYNC_ALARM_NOTIFY* = 1# ## *# ## @brief xcb_sync_alarm_notify_event_t# ### type# xcb_sync_alarm_notify_event_t* {.bycopy.} = object# response_type*: uint8# kind*: uint8# sequence*: uint16# alarm*: xcb_sync_alarm_t# counter_value*: xcb_sync_int64_t# alarm_value*: xcb_sync_int64_t# timestamp*: xcb_timestamp_t# state*: uint8# pad0*: array[3, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_alarm_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_alarm_t)# ### proc xcb_sync_alarm_next*(i: ptr xcb_sync_alarm_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_alarm_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_alarm_end*(i: xcb_sync_alarm_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_counter_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_counter_t)# ### proc xcb_sync_counter_next*(i: ptr xcb_sync_counter_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_counter_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_counter_end*(i: xcb_sync_counter_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_fence_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_fence_t)# ### proc xcb_sync_fence_next*(i: ptr xcb_sync_fence_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_fence_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_fence_end*(i: xcb_sync_fence_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_int64_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_int64_t)# ### proc xcb_sync_int64_next*(i: ptr xcb_sync_int64_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_int64_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_int64_end*(i: xcb_sync_int64_iterator_t): xcb_generic_iterator_t# proc xcb_sync_systemcounter_sizeof*(_buffer: pointer): cint# proc xcb_sync_systemcounter_name*(R: ptr xcb_sync_systemcounter_t): cstring# proc xcb_sync_systemcounter_name_length*(R: ptr xcb_sync_systemcounter_t): cint# proc xcb_sync_systemcounter_name_end*(R: ptr xcb_sync_systemcounter_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_systemcounter_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_systemcounter_t)# ### proc xcb_sync_systemcounter_next*(i: ptr xcb_sync_systemcounter_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_systemcounter_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_systemcounter_end*(i: xcb_sync_systemcounter_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_trigger_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_trigger_t)# ### proc xcb_sync_trigger_next*(i: ptr xcb_sync_trigger_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_trigger_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_trigger_end*(i: xcb_sync_trigger_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_sync_waitcondition_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_sync_waitcondition_t)# ### proc xcb_sync_waitcondition_next*(i: ptr xcb_sync_waitcondition_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_sync_waitcondition_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_sync_waitcondition_end*(i: xcb_sync_waitcondition_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_initialize*(c: ptr xcb_connection_t; desired_major_version: uint8;# desired_minor_version: uint8): xcb_sync_initialize_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_sync_initialize_unchecked*(c: ptr xcb_connection_t;# desired_major_version: uint8;# desired_minor_version: uint8): xcb_sync_initialize_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_sync_initialize_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_sync_initialize_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_initialize_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_initialize_reply_t# proc xcb_sync_list_system_counters_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_list_system_counters*(c: ptr xcb_connection_t): xcb_sync_list_system_counters_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_sync_list_system_counters_unchecked*(c: ptr xcb_connection_t): xcb_sync_list_system_counters_cookie_t# proc xcb_sync_list_system_counters_counters_length*(# R: ptr xcb_sync_list_system_counters_reply_t): cint# proc xcb_sync_list_system_counters_counters_iterator*(# R: ptr xcb_sync_list_system_counters_reply_t): xcb_sync_systemcounter_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_sync_list_system_counters_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_sync_list_system_counters_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_list_system_counters_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_list_system_counters_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_create_counter_checked*(c: ptr xcb_connection_t;# id: xcb_sync_counter_t;# initial_value: xcb_sync_int64_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_create_counter*(c: ptr xcb_connection_t; id: xcb_sync_counter_t;# initial_value: xcb_sync_int64_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_destroy_counter_checked*(c: ptr xcb_connection_t;# counter: xcb_sync_counter_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_destroy_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_query_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t): xcb_sync_query_counter_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_sync_query_counter_unchecked*(c: ptr xcb_connection_t;# counter: xcb_sync_counter_t): xcb_sync_query_counter_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_sync_query_counter_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_sync_query_counter_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_query_counter_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_query_counter_reply_t# proc xcb_sync_await_sizeof*(_buffer: pointer; wait_list_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_await_checked*(c: ptr xcb_connection_t; wait_list_len: uint32;# wait_list: ptr xcb_sync_waitcondition_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_await*(c: ptr xcb_connection_t; wait_list_len: uint32;# wait_list: ptr xcb_sync_waitcondition_t): xcb_void_cookie_t# proc xcb_sync_await_wait_list*(R: ptr xcb_sync_await_request_t): ptr xcb_sync_waitcondition_t# proc xcb_sync_await_wait_list_length*(R: ptr xcb_sync_await_request_t): cint# proc xcb_sync_await_wait_list_iterator*(R: ptr xcb_sync_await_request_t): xcb_sync_waitcondition_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_change_counter_checked*(c: ptr xcb_connection_t;# counter: xcb_sync_counter_t;# amount: xcb_sync_int64_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_change_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t;# amount: xcb_sync_int64_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_set_counter_checked*(c: ptr xcb_connection_t;# counter: xcb_sync_counter_t;# value: xcb_sync_int64_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_set_counter*(c: ptr xcb_connection_t; counter: xcb_sync_counter_t;# value: xcb_sync_int64_t): xcb_void_cookie_t# proc xcb_sync_create_alarm_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_sync_create_alarm_value_list_t): cint# proc xcb_sync_create_alarm_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_sync_create_alarm_value_list_t): cint# proc xcb_sync_create_alarm_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_sync_create_alarm_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_create_alarm_checked*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_create_alarm*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_create_alarm_aux_checked*(c: ptr xcb_connection_t;# id: xcb_sync_alarm_t; value_mask: uint32;# value_list: ptr xcb_sync_create_alarm_value_list_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_create_alarm_aux*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;# value_mask: uint32; value_list: ptr xcb_sync_create_alarm_value_list_t): xcb_void_cookie_t# proc xcb_sync_create_alarm_value_list*(R: ptr xcb_sync_create_alarm_request_t): pointer# proc xcb_sync_change_alarm_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_sync_change_alarm_value_list_t): cint# proc xcb_sync_change_alarm_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_sync_change_alarm_value_list_t): cint# proc xcb_sync_change_alarm_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_sync_change_alarm_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_change_alarm_checked*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_change_alarm*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_change_alarm_aux_checked*(c: ptr xcb_connection_t;# id: xcb_sync_alarm_t; value_mask: uint32;# value_list: ptr xcb_sync_change_alarm_value_list_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_change_alarm_aux*(c: ptr xcb_connection_t; id: xcb_sync_alarm_t;# value_mask: uint32; value_list: ptr xcb_sync_change_alarm_value_list_t): xcb_void_cookie_t# proc xcb_sync_change_alarm_value_list*(R: ptr xcb_sync_change_alarm_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_destroy_alarm_checked*(c: ptr xcb_connection_t;# alarm: xcb_sync_alarm_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_destroy_alarm*(c: ptr xcb_connection_t; alarm: xcb_sync_alarm_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_query_alarm*(c: ptr xcb_connection_t; alarm: xcb_sync_alarm_t): xcb_sync_query_alarm_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_sync_query_alarm_unchecked*(c: ptr xcb_connection_t;# alarm: xcb_sync_alarm_t): xcb_sync_query_alarm_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_sync_query_alarm_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_sync_query_alarm_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_query_alarm_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_query_alarm_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_set_priority_checked*(c: ptr xcb_connection_t; id: uint32;# priority: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_set_priority*(c: ptr xcb_connection_t; id: uint32; priority: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_get_priority*(c: ptr xcb_connection_t; id: uint32): xcb_sync_get_priority_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_sync_get_priority_unchecked*(c: ptr xcb_connection_t; id: uint32): xcb_sync_get_priority_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_sync_get_priority_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_sync_get_priority_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_get_priority_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_get_priority_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_create_fence_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t;# fence: xcb_sync_fence_t;# initially_triggered: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_create_fence*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# fence: xcb_sync_fence_t; initially_triggered: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_trigger_fence_checked*(c: ptr xcb_connection_t;# fence: xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_trigger_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_reset_fence_checked*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_reset_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_destroy_fence_checked*(c: ptr xcb_connection_t;# fence: xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_destroy_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_query_fence*(c: ptr xcb_connection_t; fence: xcb_sync_fence_t): xcb_sync_query_fence_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_sync_query_fence_unchecked*(c: ptr xcb_connection_t;# fence: xcb_sync_fence_t): xcb_sync_query_fence_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_sync_query_fence_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_sync_query_fence_reply*(c: ptr xcb_connection_t; cookie: xcb_sync_query_fence_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_sync_query_fence_reply_t# proc xcb_sync_await_fence_sizeof*(_buffer: pointer; fence_list_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_sync_await_fence_checked*(c: ptr xcb_connection_t;# fence_list_len: uint32;# fence_list: ptr xcb_sync_fence_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_sync_await_fence*(c: ptr xcb_connection_t; fence_list_len: uint32;# fence_list: ptr xcb_sync_fence_t): xcb_void_cookie_t# proc xcb_sync_await_fence_fence_list*(R: ptr xcb_sync_await_fence_request_t): ptr xcb_sync_fence_t# proc xcb_sync_await_fence_fence_list_length*(# R: ptr xcb_sync_await_fence_request_t): cint# proc xcb_sync_await_fence_fence_list_end*(R: ptr xcb_sync_await_fence_request_t): xcb_generic_iterator_t# ## *# ## @}# ### proc xcb_atom_name_by_screen*(base: cstring; screen: uint8): cstring# proc xcb_atom_name_by_resource*(base: cstring; resource: uint32): cstring# proc xcb_atom_name_unique*(base: cstring; id: uint32): cstring# proc xcb_aux_get_depth*(c: ptr xcb_connection_t; screen: ptr xcb_screen_t): uint8# proc xcb_aux_get_depth_of_visual*(screen: ptr xcb_screen_t; id: xcb_visualid_t): uint8# proc xcb_aux_get_screen*(c: ptr xcb_connection_t; screen: cint): ptr xcb_screen_t# proc xcb_aux_get_visualtype*(c: ptr xcb_connection_t; screen: cint;# vid: xcb_visualid_t): ptr xcb_visualtype_t# proc xcb_aux_find_visual_by_id*(screen: ptr xcb_screen_t; id: xcb_visualid_t): ptr xcb_visualtype_t# proc xcb_aux_find_visual_by_attrs*(screen: ptr xcb_screen_t; class_: int8;# depth: int8): ptr xcb_visualtype_t# proc xcb_aux_sync*(c: ptr xcb_connection_t)# ## internal helper macro for XCB_AUX_ADD_PARAM# ## It gives the offset of the field 'param' in the structure pointed to by# ## 'paramsp' in multiples of an uint32's size.# template XCB_AUX_INTERNAL_OFFSETOF*(paramsp, param: untyped): untyped =# (cast[ptr uint32]((addr(((paramsp).param)))) - cast[ptr uint32]((paramsp)))# ## add an optional parameter to an xcb_params_* structure# ## parameters:# ## maskp: pointer to bitmask whos bits mark used parameters# ## paramsp: pointer to structure with parameters# ## param: parameter to set# ## value: value to set the parameter to# ### template XCB_AUX_ADD_PARAM*(maskp, paramsp, param, value: untyped): untyped =# (# ((maskp)[] = (maskp)[] or 1 shl XCB_AUX_INTERNAL_OFFSETOF((paramsp), param))# ((paramsp).param = (value)))# type# xcb_params_cw_t* {.bycopy.} = object# back_pixmap*: uint32# back_pixel*: uint32# border_pixmap*: uint32# border_pixel*: uint32# bit_gravity*: uint32# win_gravity*: uint32# backing_store*: uint32# backing_planes*: uint32# backing_pixel*: uint32# override_redirect*: uint32# save_under*: uint32# event_mask*: uint32# dont_propagate*: uint32# colormap*: uint32# cursor*: uint32# proc xcb_aux_create_window*(c: ptr xcb_connection_t; depth: uint8;# wid: xcb_window_t; parent: xcb_window_t; x: int16;# y: int16; width: uint16; height: uint16;# border_width: uint16; class_: uint16;# visual: xcb_visualid_t; mask: uint32;# params: ptr xcb_params_cw_t): xcb_void_cookie_t# proc xcb_aux_create_window_checked*(c: ptr xcb_connection_t; depth: uint8;# wid: xcb_window_t; parent: xcb_window_t;# x: int16; y: int16; width: uint16;# height: uint16; border_width: uint16;# class_: uint16; visual: xcb_visualid_t;# mask: uint32; params: ptr xcb_params_cw_t): xcb_void_cookie_t# proc xcb_aux_change_window_attributes*(c: ptr xcb_connection_t;# window: xcb_window_t; mask: uint32;# params: ptr xcb_params_cw_t): xcb_void_cookie_t# proc xcb_aux_change_window_attributes_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; mask: uint32; params: ptr xcb_params_cw_t): xcb_void_cookie_t# type# xcb_params_configure_window_t* {.bycopy.} = object# x*: int32# y*: int32# width*: uint32# height*: uint32# border_width*: uint32# sibling*: uint32# stack_mode*: uint32# proc xcb_aux_configure_window*(c: ptr xcb_connection_t; window: xcb_window_t;# mask: uint16;# params: ptr xcb_params_configure_window_t): xcb_void_cookie_t# type# xcb_params_gc_t* {.bycopy.} = object# function*: uint32# plane_mask*: uint32# foreground*: uint32# background*: uint32# line_width*: uint32# line_style*: uint32# cap_style*: uint32# join_style*: uint32# fill_style*: uint32# fill_rule*: uint32# tile*: uint32# stipple*: uint32# tile_stipple_origin_x*: uint32# tile_stipple_origin_y*: uint32# font*: uint32# subwindow_mode*: uint32# graphics_exposures*: uint32# clip_originX*: uint32# clip_originY*: uint32# mask*: uint32# dash_offset*: uint32# dash_list*: uint32# arc_mode*: uint32# proc xcb_aux_create_gc*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;# drawable: xcb_drawable_t; mask: uint32;# params: ptr xcb_params_gc_t): xcb_void_cookie_t# proc xcb_aux_create_gc_checked*(c: ptr xcb_connection_t; gid: xcb_gcontext_t;# drawable: xcb_drawable_t; mask: uint32;# params: ptr xcb_params_gc_t): xcb_void_cookie_t# proc xcb_aux_change_gc*(c: ptr xcb_connection_t; gc: xcb_gcontext_t; mask: uint32;# params: ptr xcb_params_gc_t): xcb_void_cookie_t# proc xcb_aux_change_gc_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# mask: uint32; params: ptr xcb_params_gc_t): xcb_void_cookie_t# type# xcb_params_keyboard_t* {.bycopy.} = object# key_click_percent*: uint32# bell_percent*: uint32# bell_pitch*: uint32# bell_duration*: uint32# led*: uint32# led_mode*: uint32# key*: uint32# auto_repeat_mode*: uint32# proc xcb_aux_change_keyboard_control*(c: ptr xcb_connection_t; mask: uint32;# params: ptr xcb_params_keyboard_t): xcb_void_cookie_t# proc xcb_aux_parse_color*(color_name: cstring; red: ptr uint16; green: ptr uint16;# blue: ptr uint16): cint# proc xcb_aux_set_line_attributes_checked*(dpy: ptr xcb_connection_t;# gc: xcb_gcontext_t; linewidth: uint16; linestyle: int32; capstyle: int32;# joinstyle: int32): xcb_void_cookie_t# proc xcb_aux_clear_window*(dpy: ptr xcb_connection_t; w: xcb_window_t): xcb_void_cookie_t# ## Copyright (C) 2007 Bart Massey# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### ## *# ## @defgroup xcb__bitops XCB Bit Operations# ### ## Inline functions for common bit ops used in XCB and elsewhere.# ### ## @{# ### ## *# ## Create a low-order bitmask.# ## @param n Mask size.# ## @return Mask.# ### ## Create a bitmask with the lower @p n bits set and the# ## rest of the word clear.# ## @ingroup xcb__bitops# ### proc xcb_mask*(n: uint32): uint32 =# return if n == 32: not 0 else: (1 shl n) - 1# ## *# ## Population count.# ## @param n Integer representing a bitset.# ## @return Number of 1 bits in the bitset.# ### ## This is a reasonably fast algorithm for counting the bits# ## in a 32-bit word. Currently a classic binary# ## divide-and-conquer popcount: popcount_2() from# ## http://en.wikipedia.org/wiki/Hamming_weight.# ## @ingroup xcb__bitops# ### ## 15 ops, 3 long immediates, 14 stages, 9 alu ops, 9 alu stages# proc xcb_popcount*(x: uint32): uint32 =# var m1: uint32 = 0x55555555# var m2: uint32 = 0x33333333# var m4: uint32 = 0x0F0F0F0F# dec(x, (x shr 1) and m1)# x = (x and m2) + ((x shr 2) and m2)# x = (x + (x shr 4)) and m4# inc(x, x shr 8)# return (x + (x shr 16)) and 0x0000003F# ## *# ## Round up to the next power-of-two unit size.# ## @param base Number to be rounded up.# ## @param pad Multiple to be rounded to; must be a power of two.# ## @return Rounded-up number.# ### ## Rounds @p base up to a multiple of @p pad, where @p pad# ## is a power of two. The more general case is handled by# ## xcb_roundup().# ## @ingroup xcb__bitops# ### proc xcb_roundup_2*(base: uint32; pad: uint32): uint32 =# return (base + pad - 1) and -pad# ## *# ## Round down to the next power-of-two unit size.# ## @param base Number to be rounded down.# ## @param pad Multiple to be rounded to; must be a power of two.# ## @return Rounded-down number.# ### ## Rounds @p base down to a multiple of @p pad, where @p pad# ## is a power of two. The more general case is handled by# ## xcb_rounddown().# ## @ingroup xcb__bitops# ### proc xcb_rounddown_2*(base: uint32; pad: uint32): uint32 =# return base and -pad# ## *# ## Round up to the next unit size.# ## @param base Number to be rounded up.# ## @param pad Multiple to be rounded to.# ## @return Rounded-up number.# ### ## This is a general routine for rounding @p base up# ## to a multiple of @p pad. If you know that @p pad# ## is a power of two, you should probably call xcb_roundup_2()# ## instead.# ## @ingroup xcb__bitops# ### proc xcb_roundup*(base: uint32; pad: uint32): uint32 =# var b: uint32 = base + pad - 1# ## faster if pad is a power of two# if ((pad - 1) and pad) == 0:# return b and -pad# return b - b mod pad# ## *# ## Round down to the next unit size.# ## @param base Number to be rounded down.# ## @param pad Multiple to be rounded to.# ## @return Rounded-down number.# ### ## This is a general routine for rounding @p base down# ## to a multiple of @p pad. If you know that @p pad# ## is a power of two, you should probably call xcb_rounddown_2()# ## instead.# ## @ingroup xcb__bitops# ### proc xcb_rounddown*(base: uint32; pad: uint32): uint32 =# ## faster if pad is a power of two# if ((pad - 1) and pad) == 0:# return base and -pad# return base - base mod pad# ## *# ## Reverse bits of word.# ## @param x Target word.# ## @param n Number of low-order bits to reverse.# ## @return Word with low @p n bits reversed, all others 0.# ### ## Reverses the bottom @p n bits of @p x.# ## @ingroup xcb__bitops# ### proc xcb_bit_reverse*(x: uint32; n: uint8): uint32 =# var m1: uint32 = 0x00FF00FF# var m2: uint32 = 0x0F0F0F0F# var m3: uint32 = 0x33333333# var m4: uint32 = 0x55555555# x = ((x shl 16) or (x shr 16))# x = ((x and m1) shl 8) or ((x shr 8) and m1)# x = ((x and m2) shl 4) or ((x shr 4) and m2)# x = ((x and m3) shl 2) or ((x shr 2) and m3)# x = ((x and m4) shl 1) or ((x shr 1) and m4)# x = x shr (32 - n)# return x# ## *# ## Host byte order.# ## @return The byte order of the host.# ### ## Tests the host's byte order and returns either# ## XCB_IMAGE_ORDER_MSB_FIRST or XCB_IMAGE_ORDER_LSB_FIRST# ## as appropriate.# ## @ingroup xcb__bitops# ### proc xcb_host_byte_order*(): xcb_image_order_t =# var endian_test: uint32 = 0x01020304# case cast[cstring](addr(endian_test))[]# of 0x00000001:# return XCB_IMAGE_ORDER_MSB_FIRST# of 0x00000004:# return XCB_IMAGE_ORDER_LSB_FIRST# assert(0)# ## Copyright © 2013 Michael Stapelberg# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### ## *# ## @defgroup xcb__cursor_context_t XCB Cursor Functions# ### ## These functions are the equivalent of libXcursor, but re-implemented for# ## XCB. They respect the user’s configured cursor theme when loading cursors,# ## specified by the X resources setting "Xcursor.theme".# ### ## Here is how you would use these functions to change the X11 root window# ## cursor to "watch":# ## @code# ## int screennr;# ## xcb_connection_t *conn = xcb_connect(NULL, &screennr);# ## if (conn == NULL || xcb_connection_has_error(conn))# ## err(EXIT_FAILURE, "Could not connect to X11");# ### ## xcb_screen_t *screen = xcb_aux_get_screen(conn, screennr);# ## xcb_cursor_context_t *ctx;# ## if (xcb_cursor_context_new(conn, screen, &ctx) < 0)# ## err(EXIT_FAILURE, "Could not initialize xcb-cursor");# ### ## xcb_cursor_t cid = xcb_cursor_load_cursor(ctx, "watch");# ### ## xcb_screen_t *screen = xcb_setup_roots_iterator(xcb_get_setup(conn)).data;# ## xcb_change_window_attributes(conn, screen->root, XCB_CW_CURSOR, (uint32[]){ cid });# ## xcb_flush(conn);# ### ## xcb_cursor_context_free(ctx);# ## xcb_disconnect(conn);# ## @endcode# ### ## @{# ### ## *# ## @struct xcb_cursor_context_t# ## Describes a context for using this library.# ### ## Create a context with @ref xcb_cursor_context_new (), then load one or more# ## cursors with @ref xcb_cursor_load_cursor () and destroy the context with @ref# ## xcb_cursor_context_free ().# ### ## *# ## Create a new @ref xcb_cursor_context_t.# ### ## @param conn A working XCB connection, which will be used until you destroy# ## the context with @ref xcb_cursor_context_free ().# ## @param screen The xcb_screen_t to use (e.g. for getting the RESOURCE_MANAGER# ## contents, for creating cursors on, for using the size as fallback when# ## calculating the best cursor size).# ## @param ctx A pointer to an xcb_cursor_context_t* which will be modified to# ## refer to the newly created context.# ## @return 0 on success, a negative error code otherwise.# ### ## @ingroup xcb_cursor_context_t# ### proc xcb_cursor_context_new*(conn: ptr xcb_connection_t; screen: ptr xcb_screen_t;# ctx: ptr ptr xcb_cursor_context_t): cint# ## *# ## Loads the specified cursor, either from the cursor theme or by falling back# ## to the X11 "cursor" font.# ### ## @param ctx A cursor context, created with @ref xcb_cursor_context_new ()# ## @param name The name of the cursor to load, e.g. "watch".# ## @returns The ID of the created cursor. When you are done using it, use# ## xcb_free_cursor. Calling @ref xcb_cursor_context_free () will NOT free the# ## created cursor.# ### ### proc xcb_cursor_load_cursor*(ctx: ptr xcb_cursor_context_t; name: cstring): xcb_cursor_t# ## *# ## Frees the @ref xcb_cursor_context_t.# ### ## @param ctx The context to free.# ### ### proc xcb_cursor_context_free*(ctx: ptr xcb_cursor_context_t)# ## *# ## @}# ### ### ## Copyright (C) 2008-2009 Julien Danjou <julien@danjou.info># ### ## Permission is hereby granted, free of charge, to any person# ## obtaining a copy of this software and associated documentation# ## files (the "Software"), to deal in the Software without# ## restriction, including without limitation the rights to use, copy,# ## modify, merge, publish, distribute, sublicense, and/or sell copies# ## of the Software, and to permit persons to whom the Software is# ## furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be# ## included in all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,# ## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF# ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND# ## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY# ## CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF# ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION# ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or# ## their institutions shall not be used in advertising or otherwise to# ## promote the sale, use or other dealings in this Software without# ## prior written authorization from the authors.# ### ## *# ## @defgroup xcb__event_t XCB Event Functions# ### ## These functions ease the handling of X events received.# ### ## @{# ### ## *# ## @brief Bit mask to find event type regardless of event source.# ### ## Each event in the X11 protocol contains an 8-bit type code.# ## The most-significant bit in this code is set if the event was# ## generated from a SendEvent request. This mask can be used to# ## determine the type of event regardless of how the event was# ## generated. See the X11R6 protocol specification for details.# ### const# XCB_EVENT_RESPONSE_TYPE_MASK* = (0x0000007F)# template XCB_EVENT_RESPONSE_TYPE*(e: untyped): untyped =# (e.response_type and XCB_EVENT_RESPONSE_TYPE_MASK)# template XCB_EVENT_SENT*(e: untyped): untyped =# (e.response_type and not XCB_EVENT_RESPONSE_TYPE_MASK)# ## *# ## @brief Convert an event response type to a label.# ## @param type The event type.# ## @return A string with the event name, or NULL if unknown.# ### proc xcb_event_get_label*(`type`: uint8): cstring# ## *# ## @brief Convert an event error type to a label.# ## @param type The error type.# ## @return A string with the event name, or NULL if unknown or if the event is# ## not an error.# ### proc xcb_event_get_error_label*(`type`: uint8): cstring# ## *# ## @brief Convert an event request type to a label.# ## @param type The request type.# ## @return A string with the event name, or NULL if unknown or if the event is# ## not an error.# ### proc xcb_event_get_request_label*(`type`: uint8): cstring# ## *# ## @}# ### ### ## Copyright (C) 2009-2011 Arnaud Fontaine <arnau@debian.org># ### ## Permission is hereby granted, free of charge, to any person# ## obtaining a copy of this software and associated documentation# ## files (the "Software"), to deal in the Software without# ## restriction, including without limitation the rights to use, copy,# ## modify, merge, publish, distribute, sublicense, and/or sell copies# ## of the Software, and to permit persons to whom the Software is# ## furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be# ## included in all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,# ## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF# ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND# ## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY# ## CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF# ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION# ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or# ## their institutions shall not be used in advertising or otherwise to# ## promote the sale, use or other dealings in this Software without# ## prior written authorization from the authors.# ### ## *# ## @defgroup xcb__ewmh_t XCB EWMH Functions# ### ## These functions allow easy handling of the protocol described in# ## the Extended Window Manager Hints specification. The list of Atoms# ## is stored as an M4 file (atomlist.m4) where each Atom is stored as# ## a variable defined in the header.# ### ## Replies of requests generating a list of pointers (such as list of# ## windows, atoms and UTF-8 strings) are simply stored as a structure# ## holding the XCB reply which should (usually) never be accessed# ## directly and has to be wipe afterwards. This structure provides a# ## convenient access to the list given in the reply itself.# ### ## @{# ### ## *# ## @brief Hold EWMH information specific to a screen# ### type# xcb_ewmh_connection_t* {.bycopy.} = object# connection*: ptr xcb_connection_t ## * The X connection# ## * The screens on this connection# screens*: ptr ptr xcb_screen_t# nb_screens*: cint ## * _NET_WM_CM_Sn atoms depending on the number of screens# _NET_WM_CM_Sn*: ptr xcb_atom_t ## * The EWMH atoms of this connection# _NET_SUPPORTED*: xcb_atom_t# _NET_CLIENT_LIST*: xcb_atom_t# _NET_CLIENT_LIST_STACKING*: xcb_atom_t# _NET_NUMBER_OF_DESKTOPS*: xcb_atom_t# _NET_DESKTOP_GEOMETRY*: xcb_atom_t# _NET_DESKTOP_VIEWPORT*: xcb_atom_t# _NET_CURRENT_DESKTOP*: xcb_atom_t# _NET_DESKTOP_NAMES*: xcb_atom_t# _NET_ACTIVE_WINDOW*: xcb_atom_t# _NET_WORKAREA*: xcb_atom_t# _NET_SUPPORTING_WM_CHECK*: xcb_atom_t# _NET_VIRTUAL_ROOTS*: xcb_atom_t# _NET_DESKTOP_LAYOUT*: xcb_atom_t# _NET_SHOWING_DESKTOP*: xcb_atom_t# _NET_CLOSE_WINDOW*: xcb_atom_t# _NET_MOVERESIZE_WINDOW*: xcb_atom_t# _NET_WM_MOVERESIZE*: xcb_atom_t# _NET_RESTACK_WINDOW*: xcb_atom_t# _NET_REQUEST_FRAME_EXTENTS*: xcb_atom_t# _NET_WM_NAME*: xcb_atom_t# _NET_WM_VISIBLE_NAME*: xcb_atom_t# _NET_WM_ICON_NAME*: xcb_atom_t# _NET_WM_VISIBLE_ICON_NAME*: xcb_atom_t# _NET_WM_DESKTOP*: xcb_atom_t# _NET_WM_WINDOW_TYPE*: xcb_atom_t# _NET_WM_STATE*: xcb_atom_t# _NET_WM_ALLOWED_ACTIONS*: xcb_atom_t# _NET_WM_STRUT*: xcb_atom_t# _NET_WM_STRUT_PARTIAL*: xcb_atom_t# _NET_WM_ICON_GEOMETRY*: xcb_atom_t# _NET_WM_ICON*: xcb_atom_t# _NET_WM_PID*: xcb_atom_t# _NET_WM_HANDLED_ICONS*: xcb_atom_t# _NET_WM_USER_TIME*: xcb_atom_t# _NET_WM_USER_TIME_WINDOW*: xcb_atom_t# _NET_FRAME_EXTENTS*: xcb_atom_t# _NET_WM_PING*: xcb_atom_t# _NET_WM_SYNC_REQUEST*: xcb_atom_t# _NET_WM_SYNC_REQUEST_COUNTER*: xcb_atom_t# _NET_WM_FULLSCREEN_MONITORS*: xcb_atom_t# _NET_WM_FULL_PLACEMENT*: xcb_atom_t# UTF8_STRING*: xcb_atom_t# WM_PROTOCOLS*: xcb_atom_t# MANAGER*: xcb_atom_t# _NET_WM_WINDOW_TYPE_DESKTOP*: xcb_atom_t# _NET_WM_WINDOW_TYPE_DOCK*: xcb_atom_t# _NET_WM_WINDOW_TYPE_TOOLBAR*: xcb_atom_t# _NET_WM_WINDOW_TYPE_MENU*: xcb_atom_t# _NET_WM_WINDOW_TYPE_UTILITY*: xcb_atom_t# _NET_WM_WINDOW_TYPE_SPLASH*: xcb_atom_t# _NET_WM_WINDOW_TYPE_DIALOG*: xcb_atom_t# _NET_WM_WINDOW_TYPE_DROPDOWN_MENU*: xcb_atom_t# _NET_WM_WINDOW_TYPE_POPUP_MENU*: xcb_atom_t# _NET_WM_WINDOW_TYPE_TOOLTIP*: xcb_atom_t# _NET_WM_WINDOW_TYPE_NOTIFICATION*: xcb_atom_t# _NET_WM_WINDOW_TYPE_COMBO*: xcb_atom_t# _NET_WM_WINDOW_TYPE_DND*: xcb_atom_t# _NET_WM_WINDOW_TYPE_NORMAL*: xcb_atom_t# _NET_WM_STATE_MODAL*: xcb_atom_t# _NET_WM_STATE_STICKY*: xcb_atom_t# _NET_WM_STATE_MAXIMIZED_VERT*: xcb_atom_t# _NET_WM_STATE_MAXIMIZED_HORZ*: xcb_atom_t# _NET_WM_STATE_SHADED*: xcb_atom_t# _NET_WM_STATE_SKIP_TASKBAR*: xcb_atom_t# _NET_WM_STATE_SKIP_PAGER*: xcb_atom_t# _NET_WM_STATE_HIDDEN*: xcb_atom_t# _NET_WM_STATE_FULLSCREEN*: xcb_atom_t# _NET_WM_STATE_ABOVE*: xcb_atom_t# _NET_WM_STATE_BELOW*: xcb_atom_t# _NET_WM_STATE_DEMANDS_ATTENTION*: xcb_atom_t# _NET_WM_ACTION_MOVE*: xcb_atom_t# _NET_WM_ACTION_RESIZE*: xcb_atom_t# _NET_WM_ACTION_MINIMIZE*: xcb_atom_t# _NET_WM_ACTION_SHADE*: xcb_atom_t# _NET_WM_ACTION_STICK*: xcb_atom_t# _NET_WM_ACTION_MAXIMIZE_HORZ*: xcb_atom_t# _NET_WM_ACTION_MAXIMIZE_VERT*: xcb_atom_t# _NET_WM_ACTION_FULLSCREEN*: xcb_atom_t# _NET_WM_ACTION_CHANGE_DESKTOP*: xcb_atom_t# _NET_WM_ACTION_CLOSE*: xcb_atom_t# _NET_WM_ACTION_ABOVE*: xcb_atom_t# _NET_WM_ACTION_BELOW*: xcb_atom_t# ## *# ## @brief Hold a GetProperty reply containing a list of Atoms# ### type# xcb_ewmh_get_atoms_reply_t* {.bycopy.} = object# atoms_len*: uint32 ## * The number of Atoms# ## * The list of Atoms# atoms*: ptr xcb_atom_t ## * The actual GetProperty reply# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Hold a GetProperty reply containing a list of Windows# ### type# xcb_ewmh_get_windows_reply_t* {.bycopy.} = object# windows_len*: uint32 ## * The number of Windows# ## * The list of Windows# windows*: ptr xcb_window_t ## * The actual GetProperty reply# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Hold a GetProperty reply containg a list of UTF-8 strings# ### type# xcb_ewmh_get_utf8_strings_reply_t* {.bycopy.} = object# strings_len*: uint32 ## * The number of UTF-8 strings# ## * The list of UTF-8 strings# strings*: cstring ## * The actual GetProperty reply# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Coordinates Property values# ### type# xcb_ewmh_coordinates_t* {.bycopy.} = object# x*: uint32 ## * The x coordinate# ## * The y coordinate# y*: uint32# ## *# ## @brief Hold reply of _NET_DESKTOP_VIEWPORT GetProperty# ### type# xcb_ewmh_get_desktop_viewport_reply_t* {.bycopy.} = object# desktop_viewport_len*: uint32 ## * The number of desktop viewports# ## * The desktop viewports# desktop_viewport*: ptr xcb_ewmh_coordinates_t ## * The actual GetProperty reply# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Geometry Property values# ### type# xcb_ewmh_geometry_t* {.bycopy.} = object# x*: uint32 ## * The x coordinate# ## * The y coordinate# y*: uint32 ## * The width# width*: uint32 ## * The height# height*: uint32# ## *# ## @brief Hold reply of a _NET_WORKAREA GetProperty# ### type# xcb_ewmh_get_workarea_reply_t* {.bycopy.} = object# workarea_len*: uint32 ## * The number of desktop workarea# ## * The list of desktop workarea# workarea*: ptr xcb_ewmh_geometry_t ## * The actual GetProperty reply# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Source indication in requests# ### type ## * No source at all (for clients supporting an older version of# ## EWMH specification)# xcb_ewmh_client_source_type_t* = enum# XCB_EWMH_CLIENT_SOURCE_TYPE_NONE = 0, ## * Normal application# XCB_EWMH_CLIENT_SOURCE_TYPE_NORMAL = 1, ## * Pagers and other clients that represent direct user actions# XCB_EWMH_CLIENT_SOURCE_TYPE_OTHER = 2# ## *# ## @brief _NET_DESKTOP_LAYOUT orientation# ### type ## * Horizontal orientation (desktops laid out in rows)# xcb_ewmh_desktop_layout_orientation_t* = enum# XCB_EWMH_WM_ORIENTATION_HORZ = 0, ## * Vertical orientation (desktops laid out in columns)# XCB_EWMH_WM_ORIENTATION_VERT = 1# ## *# ## @brief _NET_DESKTOP_LAYOUT starting corner# ### type ## * Starting corner on the top left# xcb_ewmh_desktop_layout_starting_corner_t* = enum# XCB_EWMH_WM_TOPLEFT = 0, ## * Starting corner on the top right# XCB_EWMH_WM_TOPRIGHT = 1, ## * Starting corner on the bottom right# XCB_EWMH_WM_BOTTOMRIGHT = 2, ## * Starting corner on the bottom left# XCB_EWMH_WM_BOTTOMLEFT = 3# ## *# ## @brief Hold reply of a _NET_DESKTOP_LAYOUT GetProperty# ## @see xcb_ewmh_desktop_layout_orientation_t# ## @see xcb_ewmh_desktop_layout_starting_corner_t# ### type# xcb_ewmh_get_desktop_layout_reply_t* {.bycopy.} = object# orientation*: uint32 ## * The desktops orientation# ## * The number of columns# columns*: uint32 ## * The number of rows# rows*: uint32 ## * The desktops starting corner# starting_corner*: uint32# ## *# ## @brief _NET_WM_MOVERESIZE value when moving via keyboard# ## @see xcb_ewmh_moveresize_direction_t# ### type ## * The window x coordinate# xcb_ewmh_moveresize_window_opt_flags_t* = enum# XCB_EWMH_MOVERESIZE_WINDOW_X = (1 shl 8), ## * The window y coordinate# XCB_EWMH_MOVERESIZE_WINDOW_Y = (1 shl 9), ## * The window width# XCB_EWMH_MOVERESIZE_WINDOW_WIDTH = (1 shl 10), ## * The window height# XCB_EWMH_MOVERESIZE_WINDOW_HEIGHT = (1 shl 11)# ## *# ## @brief _NET_WM_MOVERESIZE window movement or resizing# ### type ## * Resizing applied on the top left edge# xcb_ewmh_moveresize_direction_t* = enum# XCB_EWMH_WM_MOVERESIZE_SIZE_TOPLEFT = 0, ## * Resizing applied on the top edge# XCB_EWMH_WM_MOVERESIZE_SIZE_TOP = 1, ## * Resizing applied on the top right edge# XCB_EWMH_WM_MOVERESIZE_SIZE_TOPRIGHT = 2, ## * Resizing applied on the right edge# XCB_EWMH_WM_MOVERESIZE_SIZE_RIGHT = 3, ## * Resizing applied on the bottom right edge# XCB_EWMH_WM_MOVERESIZE_SIZE_BOTTOMRIGHT = 4, ## * Resizing applied on the bottom edge# XCB_EWMH_WM_MOVERESIZE_SIZE_BOTTOM = 5, ## * Resizing applied on the bottom left edge# XCB_EWMH_WM_MOVERESIZE_SIZE_BOTTOMLEFT = 6, ## * Resizing applied on the left edge# XCB_EWMH_WM_MOVERESIZE_SIZE_LEFT = 7, ## Movement only# XCB_EWMH_WM_MOVERESIZE_MOVE = 8, ## Size via keyboard# XCB_EWMH_WM_MOVERESIZE_SIZE_KEYBOARD = 9, ## Move via keyboard# XCB_EWMH_WM_MOVERESIZE_MOVE_KEYBOARD = 10, ## Cancel operation# XCB_EWMH_WM_MOVERESIZE_CANCEL = 11# ## *# ## @brief Action on the _NET_WM_STATE property# ### type ## Remove/unset property# xcb_ewmh_wm_state_action_t* = enum# XCB_EWMH_WM_STATE_REMOVE = 0, ## Add/set property# XCB_EWMH_WM_STATE_ADD = 1, ## Toggle property# XCB_EWMH_WM_STATE_TOGGLE = 2# ## *# ## @brief Hold reply of _NET_WM_STRUT_PARTIAL GetProperty# ### type# xcb_ewmh_wm_strut_partial_t* {.bycopy.} = object# left*: uint32 ## * Reserved space on the left border of the screen# ## * Reserved space on the right border of the screen# right*: uint32 ## * Reserved space on the top border of the screen# top*: uint32 ## * Reserved space on the bottom border of the screen# bottom*: uint32 ## * Beginning y coordinate of the left strut# left_start_y*: uint32 ## * Ending y coordinate of the left strut# left_end_y*: uint32 ## * Beginning y coordinate of the right strut# right_start_y*: uint32 ## * Ending y coordinate of the right strut# right_end_y*: uint32 ## * Beginning x coordinate of the top strut# top_start_x*: uint32 ## * Ending x coordinate of the top strut# top_end_x*: uint32 ## * Beginning x coordinate of the bottom strut# bottom_start_x*: uint32 ## * Ending x coordinate of the bottom strut# bottom_end_x*: uint32# ## *# ## @brief Hold a single icon from reply of _NET_WM_ICON GetProperty# ### type# xcb_ewmh_wm_icon_iterator_t* {.bycopy.} = object# width*: uint32 ## * Icon width# ## * Icon height# height*: uint32 ## * Rows, left to right and top to bottom of the CARDINAL ARGB# data*: ptr uint32 ## * Number of icons remaining# rem*: uint8 ## * Index of the current icon in the array of icons# index*: uint8# ## *# ## @brief Hold reply of _NET_WM_ICON GetProperty# ### type# xcb_ewmh_get_wm_icon_reply_t* {.bycopy.} = object# num_icons*: uint8 ## * Number of icons# ## * The actual GetProperty reply# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Hold reply of _NET_REQUEST_FRAME_EXTENTS GetProperty# ### type# xcb_ewmh_get_extents_reply_t* {.bycopy.} = object# left*: uint32 ## * Width of the left border# ## * Width of the right border# right*: uint32 ## * Width of the top border# top*: uint32 ## * Width of the bottom border# bottom*: uint32# ## *# ## @brief Hold reply of _NET_WM_FULLSCREEN_MONITORS GetProperty# ### type# xcb_ewmh_get_wm_fullscreen_monitors_reply_t* {.bycopy.} = object# top*: uint32 ## * Monitor whose top edge defines the top edge of the fullscreen# ## window# ## * Monitor whose bottom edge defines the bottom edge of the# ## fullscreen window# bottom*: uint32 ## * Monitor whose left edge defines the left edge of the fullscreen# ## window# left*: uint32 ## * Monitor whose right edge defines the right edge of the# ## fullscreen window# right*: uint32# ## *# ## @brief Send InternAtom requests for the EWMH atoms and its required atoms# ### ## @param c The connection to the X server# ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The cookies corresponding to EWMH atoms# ### proc xcb_ewmh_connection_wipe*(ewmh: ptr xcb_ewmh_connection_t) {.inline.} =# free(ewmh.screens)# free(ewmh._NET_WM_CM_Sn)# ## *# ## @brief Send a SendEvent request containing a ClientMessage event# ### ## This function is called by all the xcb_ewmh_request* functions# ## whose should be used instead of calling directly this function# ### ## @param c The X connection# ## @param window The window where the action will be applied# ## @param dest The destination window (usually the root window)# ## @param atom The type of the message# ## @param data_len The length of data to be sent# ## @param data The data to be sent# ## @return The cookie associated with the SendEvent request# ### proc xcb_ewmh_send_client_message*(c: ptr xcb_connection_t; window: xcb_window_t;# dest: xcb_window_t; atom: xcb_atom_t;# data_len: uint32; data: ptr uint32): xcb_void_cookie_t# proc xcb_ewmh_get_window_from_reply*(window: ptr xcb_window_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_window_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# window: ptr xcb_window_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_get_cardinal_from_reply*(cardinal: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_cardinal_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# cardinal: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Get a list of atoms from a given GetProperty reply whose# ## type is ATOM# ### ## This function is called by all the xcb_ewmh_get_*_from_reply# ## functions whose should be used instead of calling it directly.# ## Indeed, The GetProperty request has been previously sent by the# ## corresponding xcb_ewmh_get_*.# ### ## @param atoms The atoms list# ## @param r The reply to get the atoms list from# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_atoms_from_reply*(atoms: ptr xcb_ewmh_get_atoms_reply_t;# r: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Get a list of atoms from the reply of a GetProperty request# ## whose type is ATOM# ### ## This function is called by all the xcb_ewmh_get_*_reply functions# ## whose should be used instead of calling it directly. The# ## GetProperty request has been previously sent by the corresponding# ## xcb_ewmh_get_*.# ### ## @param ewmh The per-screen EWMH specific information# ## @param cookie The GetProperty cookie# ## @param atoms The atoms list# ## @param e The error if any# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_atoms_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# atoms: ptr xcb_ewmh_get_atoms_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe the Atoms list reply# ### ## This function must be called to free the memory allocated for atoms# ## when the reply is requested in *_reply functions.# ### ## @param data The X reply to be freed# ### proc xcb_ewmh_get_atoms_reply_wipe*(data: ptr xcb_ewmh_get_atoms_reply_t)# ## *# ## @brief Get a list of atoms from a given GetProperty reply whose# ## type is WINDOW# ### ## This function is called by all the xcb_ewmh_get_*_from_reply# ## functions whose should be used instead of calling it directly.# ## Indeed, The GetProperty request has been previously sent by the# ## corresponding xcb_ewmh_get_*.# ### ## @param atoms The atoms list# ## @param r The reply to get the atoms list from# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_windows_from_reply*(atoms: ptr xcb_ewmh_get_windows_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_utf8_strings_from_reply*(ewmh: ptr xcb_ewmh_connection_t;# data: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_utf8_strings_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Get a list of atoms from the reply of a GetProperty request# ## whose type is WINDOW# ### ## This function is called by all the xcb_ewmh_get_*_reply functions# ## whose should be used instead of calling it directly. The# ## GetProperty request has been previously sent by the corresponding# ## xcb_ewmh_get_*.# ### ## @param ewmh The per-screen EWMH specific information# ## @param cookie The GetProperty cookie# ## @param atoms The atoms list# ## @param e The error if any# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_windows_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# atoms: ptr xcb_ewmh_get_windows_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe the windows list reply# ### ## This function must be called to the free the memory allocated for# ## windows when the reply is requested in '_reply' functions.# ### ## @param data The X reply to be freed# ### proc xcb_ewmh_get_windows_reply_wipe*(data: ptr xcb_ewmh_get_windows_reply_t)# ## *# ## @brief Wipe the UTF-8 strings list reply# ### ## This function must be called to the free the memory allocated for# ## UTF-8 strings when the reply is requested in '_reply' functions.# ### ## @param data The X reply to be freed# ### proc xcb_ewmh_get_utf8_strings_reply_wipe*(# data: ptr xcb_ewmh_get_utf8_strings_reply_t)# ## *# ## @brief Send a ChangeProperty request for _NET_SUPPORTED# ### ## _NET_SUPPORTED, ATOM[]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param list_len The number of Atoms supported by the WM# ## @param list The Atoms supported by the WM# ## @return Cookie associated with the ChangeProperty _NET_SUPPORTED request# ### proc xcb_ewmh_set_supported*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_supported# ### proc xcb_ewmh_set_supported_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32;# list: ptr xcb_atom_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_SUPPORTED root window# ## property# ### ## _NET_SUPPORTED, ATOM[]/32# ### ## This property MUST be set by the Window Manager to indicate which# ## hints it supports. For example: considering _NET_WM_STATE both this# ## atom and all supported states e.g. _NET_WM_STATE_MODAL,# ## _NET_WM_STATE_STICKY, would be listed. This assumes that backwards# ## incompatible changes will not be made to the hints (without being# ## renamed).# ### ## This form can be used only if the request will cause a reply to be# ## generated. Any returned error will be placed in the event queue.# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_SUPPORTED cookie of the GetProperty request# ### proc xcb_ewmh_get_supported_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_supported_unchecked# ### proc xcb_ewmh_get_supported*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the list of supported atoms# ### ## @param supported The list of atoms contained in the reply# ## @param r GetProperty _NET_SUPPORTED reply# ### proc xcb_ewmh_get_supported_from_reply*(supported: ptr xcb_ewmh_get_atoms_reply_t;# r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_atoms_from_reply(supported, r)# ## *# ## @brief Get reply from the GetProperty _NET_SUPPORTED cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_window_supported_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_SUPPORTED GetProperty request cookie# ## @param supported The reply to be filled# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_supported_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# supported: ptr xcb_ewmh_get_atoms_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_atoms_reply(ewmh, cookie, supported, e)# ## *# ## @brief Send a ChangeProperty request for _NET_CLIENT_LIST# ### ## _NET_CLIENT_LIST, WINDOW[]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param list_len The number of Atoms supported by the WM# ## @param list The Atoms supported by the WM# ## @return Cookie associated with the ChangeProperty _NET_CLIENT_LIST request# ### proc xcb_ewmh_set_client_list*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_client_list# ### proc xcb_ewmh_set_client_list_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32;# list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_CLIENT_LIST root window# ## property# ### ## This array contains all X Windows managed by the Window# ## Manager. _NET_CLIENT_LIST has initial mapping order, starting with# ## the oldest window. This property SHOULD be set and updated by the# ## Window Manager.# ### ## @param ewmh The information relative to EWMH.# ## @return The _NET_CLIENT_LIST cookie of the GetProperty request.# ### proc xcb_ewmh_get_client_list_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_CLIENT_LIST root window# ## property# ### ## @see xcb_ewmh_get_client_list_unchecked# ## @param ewmh The information relative to EWMH.# ## @return The _NET_CLIENT_LIST cookie of the GetProperty request.# ### proc xcb_ewmh_get_client_list*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the list of client windows from a GetProperty# ## _NET_CLIENT_LIST reply# ### ## @param clients The list of clients contained in the reply# ## @param r GetProperty _NET_CLIENT_LIST reply# ### proc xcb_ewmh_get_client_list_from_reply*(# clients: ptr xcb_ewmh_get_windows_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_windows_from_reply(clients, r)# ## *# ## @brief Get reply from the GetProperty _NET_CLIENT_LIST cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_window_client_list_unchecked() is used. Otherwise, it# ## stores the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_CLIENT_LIST GetProperty request cookie# ## @param clients The list of clients to be filled# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_client_list_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# clients: ptr xcb_ewmh_get_windows_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_windows_reply(ewmh, cookie, clients, e)# ## *# ## @brief Send a ChangeProperty request for _NET_CLIENT_LIST_STACKING# ### ## _NET_CLIENT_LIST_STACKING, WINDOW[]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param list_len The number of Atoms supported by the WM# ## @param list The Atoms supported by the WM# ## @return Cookie associated with the ChangeProperty _NET_CLIENT_LIST_STACKING request# ### proc xcb_ewmh_set_client_list_stacking*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32;# list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_client_list_stacking# ### proc xcb_ewmh_set_client_list_stacking_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_CLIENT_LIST_STACKING# ## root window property# ### ## This array contains all X Windows managed by the Window# ## Manager. _NET_CLIENT_LIST_STACKING has initial mapping order,# ## starting with the oldest window. This property SHOULD be set and# ## updated by the Window Manager.# ### ## @param ewmh The information relative to EWMH# ## @return The _NET_CLIENT_LIST_STACKING cookie of the GetProperty request# ### proc xcb_ewmh_get_client_list_stacking_unchecked*(# ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_client_list_unchecked# ### proc xcb_ewmh_get_client_list_stacking*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the list of client windows from a GetProperty# ## _NET_CLIENT_LIST_STACKING reply# ### ## @param clients The list of clients contained in the reply# ## @param r GetProperty _NET_CLIENT_LIST_STACKING reply# ### proc xcb_ewmh_get_client_list_stacking_from_reply*(# clients: ptr xcb_ewmh_get_windows_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_windows_from_reply(clients, r)# ## *# ## @brief Get reply from the GetProperty _NET_CLIENT_LIST_STACKING# ## cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_window_client_list_stacking_unchecked() is used.# ## Otherwise, it stores the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_CLIENT_LIST_STACKING GetProperty request cookie# ## @param clients The list of clients to be filled# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_client_list_stacking_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; clients: ptr xcb_ewmh_get_windows_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_windows_reply(ewmh, cookie, clients, e)# ## *# ## @brief Send a ChangeProperty request for _NET_NUMBER_OF_DESKTOPS# ### ## _NET_NUMBER_OF_DESKTOPS? CARDINAL/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param number_of_desktops The number of desktops# ## @return Cookie associated with the ChangeProperty _NET_NUMBER_OF_DESKTOPS request# ### proc xcb_ewmh_set_number_of_desktops*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# number_of_desktops: uint32): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_number_of_desktops# ### proc xcb_ewmh_set_number_of_desktops_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; number_of_desktops: uint32): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_NUMBER_OF_DESKTOPS root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_NUMBER_OF_DESKTOPS cookie of the GetProperty request.# ### proc xcb_ewmh_get_number_of_desktops_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_number_of_desktops_unchecked# ### proc xcb_ewmh_get_number_of_desktops*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the list of client windows from a GetProperty# ## _NET_NUMBER_OF_DESKTOPS reply# ### ## @param clients The list of clients contained in the reply# ## @param r GetProperty _NET_NUMBER_OF_DESKTOPS reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_number_of_desktops_from_reply*(# number_of_desktops: ptr uint32; r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_from_reply(number_of_desktops, r)# ## *# ## @brief Get reply from the GetProperty _NET_NUMBER_OF_DESKTOPS cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_window_number_of_desktops_unchecked() is used. Otherwise,# ## it stores the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_NUMBER_OF_DESKTOPS GetProperty request cookie# ## @param supported The reply to be filled# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_number_of_desktops_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; number_of_desktops: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, number_of_desktops, e)# proc xcb_ewmh_request_change_number_of_desktops*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_number_of_desktops: uint32): xcb_void_cookie_t {.inline.} =# return xcb_ewmh_send_client_message(ewmh.connection, XCB_NONE,# ewmh.screens[screen_nbr].root,# ewmh._NET_NUMBER_OF_DESKTOPS,# sizeof((new_number_of_desktops)),# addr(new_number_of_desktops))# ## *# ## @brief Send a ChangeProperty request for _NET_DESKTOP_GEOMETRY# ### ## _NET_DESKTOP_GEOMETRY width, height, CARDINAL[2]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param new_width The new desktop width# ## @param new_height The new desktop height# ## @return Cookie associated with the ChangeProperty _NET_DESKTOP_GEOMETRY request# ### proc xcb_ewmh_set_desktop_geometry*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_width: uint32;# new_height: uint32): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_desktop_geometry# ### proc xcb_ewmh_set_desktop_geometry_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_width: uint32; new_height: uint32): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_DESKTOP_GEOMETRY root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_DESKTOP_GEOMETRY cookie of the GetProperty request# ### proc xcb_ewmh_get_desktop_geometry_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_desktop_geometry_unchecked# ### proc xcb_ewmh_get_desktop_geometry*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Send ClientMessage requesting to change the _NET_DESKTOP_GEOMETRY# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param new_width The new desktop width# ## @param new_height The new desktop height# ## @return The SendEvent cookie# ### proc xcb_ewmh_request_change_desktop_geometry*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_width: uint32; new_height: uint32): xcb_void_cookie_t# ## *# ## @brief Get the desktop geometry from a GetProperty# ## _NET_DESKTOP_GEOMETRY reply# ### ## @param width The current desktop width# ## @param height The current desktop height# ## @param r GetProperty _NET_DESKTOP_GEOMETRY reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_desktop_geometry_from_reply*(width: ptr uint32;# height: ptr uint32; r: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Get reply from the GetProperty _NET_DESKTOP_GEOMETRY cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_desktop_geometry_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_DESKTOP_GEOMETRY GetProperty request cookie# ## @param width The current desktop width# ## @param width The current desktop height# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_desktop_geometry_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; width: ptr uint32; height: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Send a ChangeProperty request for _NET_DESKTOP_VIEWPORT# ### ## _NET_DESKTOP_VIEWPORT x, y, CARDINAL[][2]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param list_len The number of desktop viewports# ## @param list The desktop viewports# ## @return Cookie associated with the ChangeProperty _NET_DESKTOP_VIEWPORT request# ### proc xcb_ewmh_set_desktop_viewport*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32;# list: ptr xcb_ewmh_coordinates_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_desktop_viewport# ### proc xcb_ewmh_set_desktop_viewport_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32; list: ptr xcb_ewmh_coordinates_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_DESKTOP_VIEWPORT root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_DESKTOP_VIEWPORT cookie of the GetProperty request# ### proc xcb_ewmh_get_desktop_viewport_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_desktop_viewport_unchecked# ### proc xcb_ewmh_get_desktop_viewport*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Send ClientMessage requesting to change the _NET_DESKTOP_VIEWPORT# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param new_x The new x coordinate# ## @param new_y The new y coordinate# ## @return The SendEvent cookie# ### proc xcb_ewmh_request_change_desktop_viewport*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; x: uint32; y: uint32): xcb_void_cookie_t# ## *# ## @brief Get the desktop geometry from a GetProperty# ## _NET_DESKTOP_VIEWPORT reply# ### ## @param vp The current desktop viewports# ## @param r GetProperty _NET_DESKTOP_VIEWPORT reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_desktop_viewport_from_reply*(# vp: ptr xcb_ewmh_get_desktop_viewport_reply_t; r: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Get reply from the GetProperty _NET_DESKTOP_VIEWPORT cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_desktop_viewport_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_DESKTOP_VIEWPORT GetProperty request cookie# ## @param vp The current desktop viewports# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_desktop_viewport_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# vp: ptr xcb_ewmh_get_desktop_viewport_reply_t; e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe the desktop viewports list reply# ### ## This function must be called to free the memory allocated for atoms# ## when the reply is requested in xcb_ewmh_get_desktop_viewport_reply# ## function.# ### ## @param r The X reply to be freed# ### proc xcb_ewmh_get_desktop_viewport_reply_wipe*(# r: ptr xcb_ewmh_get_desktop_viewport_reply_t)# ## *# ## @brief Send a ChangeProperty request for _NET_CURRENT_DESKTOP# ### ## _NET_CURRENT_DESKTOP desktop, CARDINAL/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param new_current_desktop The new current desktop# ## @return Cookie associated with the ChangeProperty _NET_CURRENT_DESKTOP request# ### proc xcb_ewmh_set_current_desktop*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_current_desktop: uint32): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_current_desktop# ### proc xcb_ewmh_set_current_desktop_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_current_desktop: uint32): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_CURRENT_DESKTOP root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_CURRENT_DESKTOP cookie of the GetProperty request# ### proc xcb_ewmh_get_current_desktop_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_current_desktop_unchecked# ### proc xcb_ewmh_get_current_desktop*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Send ClientMessage requesting to change the _NET_CURRENT_DESKTOP# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param new_desktop The new current desktop# ## @param timestamp The request timestamp# ## @return The SendEvent cookie# ### proc xcb_ewmh_request_change_current_desktop*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; new_desktop: uint32; timestamp: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief Get the desktop geometry from a GetProperty# ## _NET_CURRENT_DESKTOP reply# ### ## @param current_desktop The current desktop# ## @param r GetProperty _NET_CURRENT_DESKTOP reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_current_desktop_from_reply*(current_desktop: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_from_reply(current_desktop, r)# ## *# ## @brief Get reply from the GetProperty _NET_CURRENT_DESKTOP cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_current_desktop_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_CURRENT_DESKTOP GetProperty request cookie# ## @param vp The current desktop# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_current_desktop_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# current_desktop: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, current_desktop, e)# ## *# ## @brief Send a ChangeProperty request for _NET_DESKTOP_NAMES# ### ## _NET_DESKTOP_NAMES, UTF8_STRING[]# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param strings_len The number of desktop names# ## @param strings The desktop names# ## @return Cookie associated with the ChangeProperty _NET_DESKTOP_NAMES request# ### proc xcb_ewmh_set_desktop_names*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# strings_len: uint32; strings: cstring): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_desktop_names# ### proc xcb_ewmh_set_desktop_names_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; strings_len: uint32;# strings: cstring): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_DESKTOP_NAMES root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @return The _NET_DESKTOP_NAMES cookie of the GetProperty request# ### proc xcb_ewmh_get_desktop_names_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_desktop_names_unchecked# ### proc xcb_ewmh_get_desktop_names*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the desktop geometry from a GetProperty# ## _NET_DESKTOP_NAMES reply# ### ## @param ewmh The information relative to EWMH# ## @param names The desktop names# ## @param r GetProperty _NET_DESKTOP_NAMES reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_desktop_names_from_reply*(ewmh: ptr xcb_ewmh_connection_t;# names: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, names, r)# ## *# ## @brief Get reply from the GetProperty _NET_DESKTOP_NAMES cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_desktop_names_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_DESKTOP_NAMES GetProperty request cookie# ## @param names The desktop names# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_desktop_names_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; names: ptr xcb_ewmh_get_utf8_strings_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, names, e)# ## *# ## @brief Send a ChangeProperty request for _NET_ACTIVE_WINDOW# ### ## _NET_ACTIVE_WINDOW, WINDOW/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param new_active_window The window to make active# ## @return Cookie associated with the ChangeProperty _NET_ACTIVE_WINDOW request# ### proc xcb_ewmh_set_active_window*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# new_active_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_active_window# ### proc xcb_ewmh_set_active_window_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# new_active_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send ClientMessage requesting to change the _NET_ACTIVE_WINDOW# ### ## The window ID of the currently active window or None if no window# ## has the focus. This is a read-only property set by the Window# ## Manager. If a Client wants to activate another window, it MUST send# ## a _NET_ACTIVE_WINDOW client message to the root window. The# ## timestamp is Client's last user activity timestamp at the time of# ## the request, and the currently active window is the Client's active# ## toplevel window, if any (the Window Manager may be e.g. more likely# ## to obey the request if it will mean transferring focus from one# ## active window to another).# ### ## @see xcb_ewmh_client_source_type_t# ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @param window_to_active The window ID to activate# ## @param source_indication The source indication# ## @param timestamp The client's last user activity timestamp# ## @param current_active_window The currently active window or None# ### proc xcb_ewmh_request_change_active_window*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; window_to_activate: xcb_window_t;# source_indication: xcb_ewmh_client_source_type_t; timestamp: xcb_timestamp_t;# current_active_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_ACTIVE_WINDOW root# ## window property# ### ## The window ID of the currently active window or None if no window# ## has the focus. This is a read-only property set by the Window# ## Manager. This property SHOULD be set and updated by the Window# ## Manager.# ### ## This form can be used only if the request will cause a reply to be# ## generated. Any returned error will be placed in the event queue.# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_ACTIVE_WINDOW cookie of the GetProperty request# ### proc xcb_ewmh_get_active_window_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_ACTIVE_WINDOW root# ## window property# ### ## @see xcb_ewmh_get_active_window_unchecked# ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_ACTIVE_WINDOW cookie of the GetProperty request# ### proc xcb_ewmh_get_active_window*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the list of client windows from a GetProperty# ## _NET_ACTIVE_WINDOW reply# ### ## @param active_window The current active window# ## @param r GetProperty _NET_ACTIVE_WINDOW_OF_DESKTOPS reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_active_window_from_reply*(active_window: ptr xcb_window_t;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_window_from_reply(active_window, r)# ## *# ## @brief Get reply from the GetProperty _NET_ACTIVE_WINDOW cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_active_window_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH.# ## @param cookie The _NET_ACTIVE_WINDOW GetProperty request cookie.# ## @param active_window The reply to be filled.# ## @param The xcb_generic_error_t supplied.# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_ewmh_get_active_window_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# active_window: ptr xcb_window_t;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_window_reply(ewmh, cookie, active_window, e)# ## *# ## @brief Send a ChangeProperty request for _NET_WORKAREA# ### ## _NET_WORKAREA, x, y, width, height CARDINAL[][4]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param list_len The number of desktops workareas# ## @param list The desktops workareas# ## @return Cookie associated with the ChangeProperty _NET_WORKAREA request# ### proc xcb_ewmh_set_workarea*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# list_len: uint32; list: ptr xcb_ewmh_geometry_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_workarea# ### proc xcb_ewmh_set_workarea_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32;# list: ptr xcb_ewmh_geometry_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_WORKAREA root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_WORKAREA cookie of the GetProperty request# ### proc xcb_ewmh_get_workarea_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_virtual_roots_unchecked# ### ## *# ## @brief Wipe the workarea list reply# ### ## This function must be called to free the memory allocated for atoms# ## when the reply is requested in xcb_ewmh_get_workarea_reply# ## function.# ### ## @param r The X reply to be freed# ### proc xcb_ewmh_get_workarea_reply_wipe*(r: ptr xcb_ewmh_get_workarea_reply_t)# ## *# ## @brief Send a ChangeProperty request for _NET_SUPPORTING_WM_CHECK# ### ## _NET_SUPPORTING_WM_CHECK, WINDOW/32# ### ## @param ewmh The per-screen EWMH information# ## @param parent_window The root window or child window created by the WM# ## @param child_window The child window created by the WM# ## @return Cookie associated with the ChangeProperty _NET_SUPPORTING_WM_CHECK request# ### proc xcb_ewmh_set_supporting_wm_check*(ewmh: ptr xcb_ewmh_connection_t;# parent_window: xcb_window_t;# child_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_supporting_wm_check# ### proc xcb_ewmh_set_supporting_wm_check_checked*(ewmh: ptr xcb_ewmh_connection_t;# parent_window: xcb_window_t; child_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_SUPPORTING_WM_CHECK# ## root window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_SUPPORTING_WM_CHECK cookie of the GetProperty request# ### proc xcb_ewmh_get_supporting_wm_check_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_supporting_wm_check_unchecked# ### proc xcb_ewmh_get_supporting_wm_check*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Get the list of client windows from a GetProperty# ## _NET_SUPPORTING_WM_CHECK reply# ### ## @param window The child window created by the WM# ## @param r GetProperty _NET_SUPPORTING_WM_CHECK reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_supporting_wm_check_from_reply*(window: ptr xcb_window_t;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_window_from_reply(window, r)# ## *# ## @brief Get reply from the GetProperty _NET_SUPPORTING_WM_CHECK# ## cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_supporting_wm_check_unchecked() is used. Otherwise, it# ## stores the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_SUPPORTING_WM_CHECK GetProperty request cookie# ## @param window The reply to be filled# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_supporting_wm_check_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; window: ptr xcb_window_t;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_window_reply(ewmh, cookie, window, e)# ## *# ## @brief Send a ChangeProperty request for _NET_VIRTUAL_ROOTS# ### ## _NET_VIRTUAL_ROOTS, WINDOW[]/32# ### ## @param ewmh The per-screen EWMH information# ## @param screen_nbr The screen number# ## @param list_len The number of virtual root windows# ## @param list The virtual root windows# ## @return Cookie associated with the ChangeProperty _NET_VIRTUAL_ROOTS request# ### proc xcb_ewmh_set_virtual_roots*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_virtual_roots# ### proc xcb_ewmh_set_virtual_roots_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; list_len: uint32;# list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_VIRTUAL_ROOTS root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_VIRTUAL_ROOTS cookie of the GetProperty request# ### proc xcb_ewmh_get_virtual_roots_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_virtual_roots_unchecked# ### proc xcb_ewmh_get_virtual_roots*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @brief Get the desktop geometry from a GetProperty _NET_WORKAREA# ## reply# ### ## @param virtual_roots The current virtual root windows# ## @param r GetProperty _NET_VIRTUAL_ROOTS reply# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_virtual_roots_from_reply*(# virtual_roots: ptr xcb_ewmh_get_windows_reply_t;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_windows_from_reply(virtual_roots, r)# ## *# ## @brief Get reply from the GetProperty _NET_VIRTUAL_ROOTS cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_virtual_roots_unchecked() is used. Otherwise, it stores# ## the error if any.# ### ## @param ewmh The information relative to EWMH# ## @param cookie The _NET_VIRTUAL_ROOTS GetProperty request cookie# ## @param virtual_roots The current virtual root windows# ## @param The xcb_generic_error_t supplied# ## @return Return 1 on success, 0 otherwise# ### proc xcb_ewmh_get_virtual_roots_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# virtual_roots: ptr xcb_ewmh_get_windows_reply_t; e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_windows_reply(ewmh, cookie, virtual_roots, e)# proc xcb_ewmh_set_desktop_layout*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# orientation: xcb_ewmh_desktop_layout_orientation_t; columns: uint32;# rows: uint32; starting_corner: xcb_ewmh_desktop_layout_starting_corner_t): xcb_void_cookie_t# proc xcb_ewmh_set_desktop_layout_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; orientation: xcb_ewmh_desktop_layout_orientation_t;# columns: uint32; rows: uint32;# starting_corner: xcb_ewmh_desktop_layout_starting_corner_t): xcb_void_cookie_t# ## *# ## @brief Send GetProperty request to get _NET_DESKTOP_LAYOUT root# ## window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_DESKTOP_LAYOUT cookie of the GetProperty request# ### proc xcb_ewmh_get_desktop_layout_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# ## *# ## @see xcb_ewmh_get_desktop_layout_unchecked# ### proc xcb_ewmh_get_desktop_layout*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# proc xcb_ewmh_get_desktop_layout_from_reply*(# desktop_layouts: ptr xcb_ewmh_get_desktop_layout_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_desktop_layout_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# desktop_layouts: ptr xcb_ewmh_get_desktop_layout_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_set_showing_desktop*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; desktop: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_showing_desktop_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; desktop: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_showing_desktop_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_property_cookie_t# proc xcb_ewmh_get_showing_desktop*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t# proc xcb_ewmh_get_showing_desktop_from_reply*(desktop: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_from_reply(desktop, r)# proc xcb_ewmh_get_showing_desktop_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# desktop: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, desktop, e)# proc xcb_ewmh_request_change_showing_desktop*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; enter: uint32): xcb_void_cookie_t {.inline.} =# return xcb_ewmh_send_client_message(ewmh.connection, XCB_NONE,# ewmh.screens[screen_nbr].root,# ewmh._NET_SHOWING_DESKTOP, sizeof((enter)),# addr(enter))# proc xcb_ewmh_request_close_window*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# window_to_close: xcb_window_t;# timestamp: xcb_timestamp_t; source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t# proc xcb_ewmh_request_moveresize_window*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# moveresize_window: xcb_window_t;# gravity: xcb_gravity_t; source_indication: xcb_ewmh_client_source_type_t;# flags: xcb_ewmh_moveresize_window_opt_flags_t; x: uint32; y: uint32;# width: uint32; height: uint32): xcb_void_cookie_t# proc xcb_ewmh_request_wm_moveresize*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# moveresize_window: xcb_window_t;# x_root: uint32; y_root: uint32;# direction: xcb_ewmh_moveresize_direction_t;# button: xcb_button_index_t; source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t# proc xcb_ewmh_request_restack_window*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# window_to_restack: xcb_window_t;# sibling_window: xcb_window_t;# detail: xcb_stack_mode_t): xcb_void_cookie_t# proc xcb_ewmh_request_frame_extents*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; client_window: xcb_window_t): xcb_void_cookie_t {.# inline.} =# return xcb_ewmh_send_client_message(ewmh.connection, client_window,# ewmh.screens[screen_nbr].root,# ewmh._NET_REQUEST_FRAME_EXTENTS, 0, nil)# proc xcb_ewmh_set_wm_name*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# strings_len: uint32; strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_set_wm_name_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; strings_len: uint32;# strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_get_wm_name_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_name*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_name_from_reply*(ewmh: ptr xcb_ewmh_connection_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;# r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)# proc xcb_ewmh_get_wm_name_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# data: ptr xcb_ewmh_get_utf8_strings_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)# proc xcb_ewmh_set_wm_visible_name*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; strings_len: uint32;# strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_set_wm_visible_name_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; strings_len: uint32; strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_get_wm_visible_name_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_visible_name*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_visible_name_from_reply*(ewmh: ptr xcb_ewmh_connection_t;# data: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)# proc xcb_ewmh_get_wm_visible_name_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)# proc xcb_ewmh_set_wm_icon_name*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; strings_len: uint32;# strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_set_wm_icon_name_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t;# strings_len: uint32; strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_get_wm_icon_name_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_icon_name*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_icon_name_from_reply*(ewmh: ptr xcb_ewmh_connection_t;# data: ptr xcb_ewmh_get_utf8_strings_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)# proc xcb_ewmh_get_wm_icon_name_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)# proc xcb_ewmh_set_wm_visible_icon_name*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t;# strings_len: uint32; strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_set_wm_visible_icon_name_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; strings_len: uint32; strings: cstring): xcb_void_cookie_t# proc xcb_ewmh_get_wm_visible_icon_name_unchecked*(# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_visible_icon_name*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_visible_icon_name_from_reply*(# ewmh: ptr xcb_ewmh_connection_t; data: ptr xcb_ewmh_get_utf8_strings_reply_t;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_utf8_strings_from_reply(ewmh, data, r)# proc xcb_ewmh_get_wm_visible_icon_name_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# data: ptr xcb_ewmh_get_utf8_strings_reply_t; e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_utf8_strings_reply(ewmh, cookie, data, e)# proc xcb_ewmh_set_wm_desktop*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# desktop: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_desktop_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; desktop: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_desktop_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_desktop*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_desktop_from_reply*(desktop: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_from_reply(desktop, r)# proc xcb_ewmh_get_wm_desktop_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# desktop: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, desktop, e)# proc xcb_ewmh_request_change_wm_desktop*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# client_window: xcb_window_t;# new_desktop: uint32; source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_window_type*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; list_len: uint32;# list: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_window_type_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_ewmh_get_wm_window_type_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_window_type*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_window_type_from_reply*(# wtypes: ptr xcb_ewmh_get_atoms_reply_t; r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_window_type_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# name: ptr xcb_ewmh_get_atoms_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_set_wm_state*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_state_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; list_len: uint32;# list: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_ewmh_get_wm_state_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_state*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_state_from_reply*(wtypes: ptr xcb_ewmh_get_atoms_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_state_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# name: ptr xcb_ewmh_get_atoms_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_request_change_wm_state*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint;# client_window: xcb_window_t;# action: xcb_ewmh_wm_state_action_t;# first_property: xcb_atom_t;# second_property: xcb_atom_t;# source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_allowed_actions*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; list_len: uint32;# list: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_allowed_actions_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_ewmh_get_wm_allowed_actions_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_allowed_actions*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_allowed_actions_from_reply*(# wtypes: ptr xcb_ewmh_get_atoms_reply_t; r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_allowed_actions_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; name: ptr xcb_ewmh_get_atoms_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_set_wm_strut*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# left: uint32; right: uint32; top: uint32;# bottom: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_strut_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; left: uint32;# right: uint32; top: uint32; bottom: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_strut_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_strut*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_strut_from_reply*(struts: ptr xcb_ewmh_get_extents_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_strut_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# struts: ptr xcb_ewmh_get_extents_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_set_wm_strut_partial*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t;# wm_strut: xcb_ewmh_wm_strut_partial_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_strut_partial_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; wm_strut: xcb_ewmh_wm_strut_partial_t): xcb_void_cookie_t# proc xcb_ewmh_get_wm_strut_partial_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_strut_partial*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_strut_partial_from_reply*(# struts: ptr xcb_ewmh_wm_strut_partial_t; r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_strut_partial_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; struts: ptr xcb_ewmh_wm_strut_partial_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_set_wm_icon_geometry*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; left: uint32;# right: uint32; top: uint32; bottom: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_icon_geometry_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; left: uint32; right: uint32; top: uint32;# bottom: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_icon_geometry_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_icon_geometry*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_icon_geometry_from_reply*(icons: ptr xcb_ewmh_geometry_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_icon_geometry_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; icons: ptr xcb_ewmh_geometry_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Send ChangeProperty request to set _NET_WM_ICON window# ## property. The given data is considered to be already# ## prepared, namely that it is an array such as: WIDTH1,# ## HEIGHT1, IMG1, WIDTH2, HEIGHT2, IMG2.# ### ## If you only want to add or append a single icon, you may# ## consider using xcb_ewmh_append_wm_icon_checked which is far# ## easier to use.# ### ## _NET_WM_ICON CARDINAL[][2+n]/32# ### ## @param ewmh The information relative to EWMH# ## @param mode ChangeProperty mode (xcb_prop_mode_t)# ## @param window The window to set the property on# ## @param data_len Length of the data# ## @param data The data# ### proc xcb_ewmh_set_wm_icon_checked*(ewmh: ptr xcb_ewmh_connection_t; mode: uint8;# window: xcb_window_t; data_len: uint32;# data: ptr uint32): xcb_void_cookie_t {.inline.} =# return xcb_change_property_checked(ewmh.connection, mode, window,# ewmh._NET_WM_ICON, XCB_ATOM_CARDINAL, 32,# data_len, data)# ## *# ## @see xcb_ewmh_set_wm_icon_checked# ### proc xcb_ewmh_set_wm_icon*(ewmh: ptr xcb_ewmh_connection_t; mode: uint8;# window: xcb_window_t; data_len: uint32;# data: ptr uint32): xcb_void_cookie_t {.inline.} =# return xcb_change_property(ewmh.connection, mode, window, ewmh._NET_WM_ICON,# XCB_ATOM_CARDINAL, 32, data_len, data)# proc xcb_ewmh_append_wm_icon_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; width: uint32;# height: uint32; img_len: uint32;# img: ptr uint32): xcb_void_cookie_t# proc xcb_ewmh_append_wm_icon*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# width: uint32; height: uint32; img_len: uint32;# img: ptr uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_icon_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_icon*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_icon_from_reply*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_icon_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_get_wm_icon_iterator*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t): xcb_ewmh_wm_icon_iterator_t# proc xcb_ewmh_get_wm_icon_length*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t): uint8# proc xcb_ewmh_get_wm_icon_next*(`iterator`: ptr xcb_ewmh_wm_icon_iterator_t)# proc xcb_ewmh_get_wm_icon_reply_wipe*(wm_icon: ptr xcb_ewmh_get_wm_icon_reply_t)# proc xcb_ewmh_set_wm_pid*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# pid: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_pid_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; pid: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_pid_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_pid*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_pid_from_reply*(pid: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_from_reply(pid, r)# proc xcb_ewmh_get_wm_pid_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# pid: ptr uint32; e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, pid, e)# proc xcb_ewmh_set_wm_handled_icons*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; handled_icons: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_handled_icons_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; handled_icons: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_handled_icons_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_handled_icons*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_handled_icons_from_reply*(handled_icons: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_from_reply(handled_icons, r)# proc xcb_ewmh_get_wm_handled_icons_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; handled_icons: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, handled_icons, e)# proc xcb_ewmh_set_wm_user_time*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; xtime: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_user_time_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; pid: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_user_time_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_user_time*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_user_time_from_reply*(xtime: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_from_reply(xtime, r)# proc xcb_ewmh_get_wm_user_time_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# xtime: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.# inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, xtime, e)# proc xcb_ewmh_set_wm_user_time_window*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; xtime: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_user_time_window_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; pid: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_user_time_window_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_user_time_window*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_user_time_window_from_reply*(xtime: ptr uint32;# r: ptr xcb_get_property_reply_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_from_reply(xtime, r)# proc xcb_ewmh_get_wm_user_time_window_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; xtime: ptr uint32;# e: ptr ptr xcb_generic_error_t): uint8 {.inline.} =# return xcb_ewmh_get_cardinal_reply(ewmh, cookie, xtime, e)# proc xcb_ewmh_set_frame_extents*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; left: uint32;# right: uint32; top: uint32; bottom: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_frame_extents_checked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; left: uint32;# right: uint32; top: uint32;# bottom: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_frame_extents_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_frame_extents*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_frame_extents_from_reply*(# frame_extents: ptr xcb_ewmh_get_extents_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_frame_extents_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# frame_extents: ptr xcb_ewmh_get_extents_reply_t; e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_send_wm_ping*(ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# timestamp: xcb_timestamp_t): xcb_void_cookie_t# proc xcb_ewmh_set_wm_sync_request_counter*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; wm_sync_request_counter_atom: xcb_atom_t; low: uint32;# high: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_sync_request_counter_checked*(# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t;# wm_sync_request_counter_atom: xcb_atom_t; low: uint32; high: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_sync_request_counter_unchecked*(# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_sync_request_counter*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_sync_request_counter_from_reply*(counter: ptr uint64;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_sync_request_counter_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t; counter: ptr uint64;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_send_wm_sync_request*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t;# wm_protocols_atom: xcb_atom_t;# wm_sync_request_atom: xcb_atom_t;# timestamp: xcb_timestamp_t; counter: uint64): xcb_void_cookie_t# proc xcb_ewmh_set_wm_fullscreen_monitors*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t; top: uint32; bottom: uint32; left: uint32;# right: uint32): xcb_void_cookie_t# proc xcb_ewmh_set_wm_fullscreen_monitors_checked*(# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t; top: uint32;# bottom: uint32; left: uint32; right: uint32): xcb_void_cookie_t# proc xcb_ewmh_get_wm_fullscreen_monitors_unchecked*(# ewmh: ptr xcb_ewmh_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_fullscreen_monitors*(ewmh: ptr xcb_ewmh_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# proc xcb_ewmh_get_wm_fullscreen_monitors_from_reply*(# monitors: ptr xcb_ewmh_get_wm_fullscreen_monitors_reply_t;# r: ptr xcb_get_property_reply_t): uint8# proc xcb_ewmh_get_wm_fullscreen_monitors_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_property_cookie_t;# monitors: ptr xcb_ewmh_get_wm_fullscreen_monitors_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# proc xcb_ewmh_request_change_wm_fullscreen_monitors*(# ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint; window: xcb_window_t;# top: uint32; bottom: uint32; left: uint32; right: uint32;# source_indication: xcb_ewmh_client_source_type_t): xcb_void_cookie_t# ## *# ## @brief Set _NET_WM_CM_Sn ownership to the given window# ### ## For each screen they manage, compositing manager MUST acquire# ## ownership of a selection named _NET_WM_CM_Sn, where n is the screen# ## number.# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @param owner The new owner of _NET_WM_CM_Sn selection# ## @param timestamp The client's last user activity timestamp# ## @param selection_data1 Optional data described by ICCCM# ## @param selection_data2 Optional data described by ICCCM# ### proc xcb_ewmh_set_wm_cm_owner*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint;# owner: xcb_window_t; timestamp: xcb_timestamp_t;# selection_data1: uint32; selection_data2: uint32): xcb_void_cookie_t# ## *# ## @see xcb_ewmh_set_wm_cm_owner# ### proc xcb_ewmh_set_wm_cm_owner_checked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint; owner: xcb_window_t;# timestamp: xcb_timestamp_t;# selection_data1: uint32;# selection_data2: uint32): xcb_void_cookie_t# ## *# ## @brief Send GetSelectOwner request to get the owner of# ## _NET_WM_CM_Sn root window property# ### ## @param ewmh The information relative to EWMH# ## @param screen_nbr The screen number# ## @return The _NET_WM_CM_Sn cookie of the GetSelectionOwner request# ### proc xcb_ewmh_get_wm_cm_owner_unchecked*(ewmh: ptr xcb_ewmh_connection_t;# screen_nbr: cint): xcb_get_selection_owner_cookie_t# ## *# ## @see xcb_ewmh_get_wm_cm_owner_unchecked# ### proc xcb_ewmh_get_wm_cm_owner*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_selection_owner_cookie_t# proc xcb_ewmh_get_wm_cm_owner_from_reply*(owner: ptr xcb_window_t;# r: ptr xcb_get_selection_owner_reply_t): uint8# ## *# ## @brief Get reply from the GetProperty _NET_CLIENT_LIST cookie# ### ## The parameter e supplied to this function must be NULL if# ## xcb_get_window_client_list_unchecked() is used. Otherwise, it# ## stores the error if any.# ### ## @param ewmh The information relative to EWMH.# ## @param cookie The _NET_WM_CM_Sn GetSelectionOwner request cookie.# ## @param owner The window ID which owns the selection or None.# ## @param The xcb_generic_error_t supplied.# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_ewmh_get_wm_cm_owner_reply*(ewmh: ptr xcb_ewmh_connection_t;# cookie: xcb_get_selection_owner_cookie_t;# owner: ptr xcb_window_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @}# ### ### ## Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.# ## All Rights Reserved.# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### ## xcb_ext.c# ## xcb_out.c# type# xcb_protocol_request_t* {.bycopy.} = object# count*: csize# ext*: ptr xcb_extension_t# opcode*: uint8# isvoid*: uint8# xcb_send_request_flags_t* = enum# XCB_REQUEST_CHECKED = 1 shl 0, XCB_REQUEST_RAW = 1 shl 1,# XCB_REQUEST_DISCARD_REPLY = 1 shl 2, XCB_REQUEST_REPLY_FDS = 1 shl 3# ## *# ## @brief Send a request to the server.# ## @param c The connection to the X server.# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.# ## @param vector Data to send; must have two iovecs before start for internal use.# ## @param request Information about the request to be sent.# ## @return The request's sequence number on success, 0 otherwise.# ### ## This function sends a new request to the X server. The data of the request is# ## given as an array of @c iovecs in the @p vector argument. The length of that# ## array and the necessary management information are given in the @p request# ## argument.# ### ## When this function returns, the request might or might not be sent already.# ## Use xcb_flush() to make sure that it really was sent.# ### ## Please note that this function is not the preferred way for sending requests.# ## It's better to use the generated wrapper functions.# ### ## Please note that xcb might use index -1 and -2 of the @p vector array internally,# ## so they must be valid!# ### proc xcb_send_request*(c: ptr xcb_connection_t; flags: cint; vector: ptr iovec;# request: ptr xcb_protocol_request_t): uint8# ## *# ## @brief Send a request to the server.# ## @param c The connection to the X server.# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.# ## @param vector Data to send; must have two iovecs before start for internal use.# ## @param request Information about the request to be sent.# ## @param num_fds Number of additional file descriptors to send to the server# ## @param fds Additional file descriptors that should be send to the server.# ## @return The request's sequence number on success, 0 otherwise.# ### ## This function sends a new request to the X server. The data of the request is# ## given as an array of @c iovecs in the @p vector argument. The length of that# ## array and the necessary management information are given in the @p request# ## argument.# ### ## If @p num_fds is non-zero, @p fds points to an array of file descriptors that# ## will be sent to the X server along with this request. After this function# ## returns, all file descriptors sent are owned by xcb and will be closed# ## eventually.# ### ## When this function returns, the request might or might not be sent already.# ## Use xcb_flush() to make sure that it really was sent.# ### ## Please note that this function is not the preferred way for sending requests.# ### ## Please note that xcb might use index -1 and -2 of the @p vector array internally,# ## so they must be valid!# ### proc xcb_send_request_with_fds*(c: ptr xcb_connection_t; flags: cint;# vector: ptr iovec;# request: ptr xcb_protocol_request_t; num_fds: uint8;# fds: ptr cint): uint8# ## *# ## @brief Send a request to the server, with 64-bit sequence number returned.# ## @param c The connection to the X server.# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.# ## @param vector Data to send; must have two iovecs before start for internal use.# ## @param request Information about the request to be sent.# ## @return The request's sequence number on success, 0 otherwise.# ### ## This function sends a new request to the X server. The data of the request is# ## given as an array of @c iovecs in the @p vector argument. The length of that# ## array and the necessary management information are given in the @p request# ## argument.# ### ## When this function returns, the request might or might not be sent already.# ## Use xcb_flush() to make sure that it really was sent.# ### ## Please note that this function is not the preferred way for sending requests.# ## It's better to use the generated wrapper functions.# ### ## Please note that xcb might use index -1 and -2 of the @p vector array internally,# ## so they must be valid!# ### proc xcb_send_request64*(c: ptr xcb_connection_t; flags: cint; vector: ptr iovec;# request: ptr xcb_protocol_request_t): uint64# ## *# ## @brief Send a request to the server, with 64-bit sequence number returned.# ## @param c The connection to the X server.# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.# ## @param vector Data to send; must have two iovecs before start for internal use.# ## @param request Information about the request to be sent.# ## @param num_fds Number of additional file descriptors to send to the server# ## @param fds Additional file descriptors that should be send to the server.# ## @return The request's sequence number on success, 0 otherwise.# ### ## This function sends a new request to the X server. The data of the request is# ## given as an array of @c iovecs in the @p vector argument. The length of that# ## array and the necessary management information are given in the @p request# ## argument.# ### ## If @p num_fds is non-zero, @p fds points to an array of file descriptors that# ## will be sent to the X server along with this request. After this function# ## returns, all file descriptors sent are owned by xcb and will be closed# ## eventually.# ### ## When this function returns, the request might or might not be sent already.# ## Use xcb_flush() to make sure that it really was sent.# ### ## Please note that this function is not the preferred way for sending requests.# ## It's better to use the generated wrapper functions.# ### ## Please note that xcb might use index -1 and -2 of the @p vector array internally,# ## so they must be valid!# ### proc xcb_send_request_with_fds64*(c: ptr xcb_connection_t; flags: cint;# vector: ptr iovec;# request: ptr xcb_protocol_request_t;# num_fds: uint8; fds: ptr cint): uint64# ## *# ## @brief Send a file descriptor to the server in the next call to xcb_send_request.# ## @param c The connection to the X server.# ## @param fd The file descriptor to send.# ### ## After this function returns, the file descriptor given is owned by xcb and# ## will be closed eventually.# ### ## @deprecated This function cannot be used in a thread-safe way. Two threads# ## that run xcb_send_fd(); xcb_send_request(); could mix up their file# ## descriptors. Instead, xcb_send_request_with_fds() should be used.# ### proc xcb_send_fd*(c: ptr xcb_connection_t; fd: cint)# ## *# ## @brief Take over the write side of the socket# ## @param c The connection to the X server.# ## @param return_socket Callback function that will be called when xcb wants# ## to use the socket again.# ## @param closure Argument to the callback function.# ## @param flags A combination of flags from the xcb_send_request_flags_t enumeration.# ## @param sent Location to the sequence number of the last sequence request.# ## Must not be NULL.# ## @return 1 on success, else 0.# ### ## xcb_take_socket allows external code to ask XCB for permission to# ## take over the write side of the socket and send raw data with# ## xcb_writev. xcb_take_socket provides the sequence number of the last# ## request XCB sent. The caller of xcb_take_socket must supply a# ## callback which XCB can call when it wants the write side of the# ## socket back to make a request. This callback synchronizes with the# ## external socket owner and flushes any output queues if appropriate.# ## If you are sending requests which won't cause a reply, please note the# ## comment for xcb_writev which explains some sequence number wrap issues.# ### ## All replies that are generated while the socket is owned externally have# ## @p flags applied to them. For example, use XCB_REQUEST_CHECK if you don't# ## want errors to go to xcb's normal error handling, but instead having to be# ## picked up via xcb_wait_for_reply(), xcb_poll_for_reply() or# ## xcb_request_check().# ### proc xcb_take_socket*(c: ptr xcb_connection_t;# return_socket: proc (closure: pointer); closure: pointer;# flags: cint; sent: ptr uint64): cint# ## *# ## @brief Send raw data to the X server.# ## @param c The connection to the X server.# ## @param vector Array of data to be sent.# ## @param count Number of entries in @p vector.# ## @param requests Number of requests that are being sent.# ## @return 1 on success, else 0.# ### ## You must own the write-side of the socket (you've called# ## xcb_take_socket, and haven't returned from return_socket yet) to call# ## xcb_writev. Also, the iovec must have at least 1 byte of data in it.# ## You have to make sure that xcb can detect sequence number wraps correctly.# ## This means that the first request you send after xcb_take_socket must cause a# ## reply (e.g. just insert a GetInputFocus request). After every (1 << 16) - 1# ## requests without a reply, you have to insert a request which will cause a# ## reply. You can again use GetInputFocus for this. You do not have to wait for# ## any of the GetInputFocus replies, but can instead handle them via# ## xcb_discard_reply().# ### proc xcb_writev*(c: ptr xcb_connection_t; vector: ptr iovec; count: cint;# requests: uint64): cint# ## xcb_in.c# ## *# ## @brief Wait for the reply of a given request.# ## @param c The connection to the X server.# ## @param request Sequence number of the request as returned by xcb_send_request().# ## @param e Location to store errors in, or NULL. Ignored for unchecked requests.# ### ## Returns the reply to the given request or returns null in the event of# ## errors. Blocks until the reply or error for the request arrives, or an I/O# ## error occurs.# ### proc xcb_wait_for_reply*(c: ptr xcb_connection_t; request: uint8;# e: ptr ptr xcb_generic_error_t): pointer# ## *# ## @brief Wait for the reply of a given request, with 64-bit sequence number# ## @param c The connection to the X server.# ## @param request 64-bit sequence number of the request as returned by xcb_send_request64().# ## @param e Location to store errors in, or NULL. Ignored for unchecked requests.# ### ## Returns the reply to the given request or returns null in the event of# ## errors. Blocks until the reply or error for the request arrives, or an I/O# ## error occurs.# ### ## Unlike its xcb_wait_for_reply() counterpart, the given sequence number is not# ## automatically "widened" to 64-bit.# ### proc xcb_wait_for_reply64*(c: ptr xcb_connection_t; request: uint64;# e: ptr ptr xcb_generic_error_t): pointer# ## *# ## @brief Poll for the reply of a given request.# ## @param c The connection to the X server.# ## @param request Sequence number of the request as returned by xcb_send_request().# ## @param reply Location to store the reply in, must not be NULL.# ## @param error Location to store errors in, or NULL. Ignored for unchecked requests.# ## @return 1 when the reply to the request was returned, else 0.# ### ## Checks if the reply to the given request already received. Does not block.# ### proc xcb_poll_for_reply*(c: ptr xcb_connection_t; request: uint8; reply: ptr pointer;# error: ptr ptr xcb_generic_error_t): cint# ## *# ## @brief Poll for the reply of a given request, with 64-bit sequence number.# ## @param c The connection to the X server.# ## @param request 64-bit sequence number of the request as returned by xcb_send_request().# ## @param reply Location to store the reply in, must not be NULL.# ## @param error Location to store errors in, or NULL. Ignored for unchecked requests.# ## @return 1 when the reply to the request was returned, else 0.# ### ## Checks if the reply to the given request already received. Does not block.# ### ## Unlike its xcb_poll_for_reply() counterpart, the given sequence number is not# ## automatically "widened" to 64-bit.# ### proc xcb_poll_for_reply64*(c: ptr xcb_connection_t; request: uint64;# reply: ptr pointer; error: ptr ptr xcb_generic_error_t): cint# ## *# ## @brief Don't use this, only needed by the generated code.# ## @param c The connection to the X server.# ## @param reply A reply that was received from the server# ## @param replylen The size of the reply.# ## @return Pointer to the location where received file descriptors are stored.# ### proc xcb_get_reply_fds*(c: ptr xcb_connection_t; reply: pointer; replylen: csize): ptr cint# ## xcb_util.c# ## *# ## @param mask The mask to check# ## @return The number of set bits in the mask# ### proc xcb_popcount*(mask: uint32): cint# ## *# ## @param list The base of an array# ## @param len The length of the array# ## @return The sum of all entries in the array.# ### proc xcb_sumof*(list: ptr uint8; len: cint): cint# ### ## Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.# ## All Rights Reserved.# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### when defined(__solaris__):# else:# when not defined(_WIN32):# else:# import# xcb_windefs# ## *# ## @file xcb.h# ### const# XCB_PACKED* = __attribute__((__packed__))# ## *# ## @defgroup XCB_Core_API XCB Core API# ## @brief Core API of the XCB library.# ### ## @{# ### ## Pre-defined constants# ## * Current protocol version# const# X_PROTOCOL* = 11# ## * Current minor version# const# X_PROTOCOL_REVISION* = 0# ## * X_TCP_PORT + display number = server port for TCP transport# const# X_TCP_PORT* = 6000# ## * xcb connection errors because of socket, pipe and other stream errors.# const# XCB_CONN_ERROR* = 1# ## * xcb connection shutdown because of extension not supported# const# XCB_CONN_CLOSED_EXT_NOTSUPPORTED* = 2# ## * malloc(), calloc() and realloc() error upon failure, for eg ENOMEM# const# XCB_CONN_CLOSED_MEM_INSUFFICIENT* = 3# ## * Connection closed, exceeding request length that server accepts.# const# XCB_CONN_CLOSED_REQ_LEN_EXCEED* = 4# ## * Connection closed, error during parsing display string.# const# XCB_CONN_CLOSED_PARSE_ERR* = 5# ## * Connection closed because the server does not have a screen matching the display.# const# XCB_CONN_CLOSED_INVALID_SCREEN* = 6# ## * Connection closed because some FD passing operation failed# const# XCB_CONN_CLOSED_FDPASSING_FAILED* = 7# template XCB_TYPE_PAD*(T, I: untyped): untyped =# (-(I) and (if sizeof((T)) > 4: 3 else: sizeof((T)) - 1))# ## Opaque structures# ## *# ## @brief XCB Connection structure.# ### ## A structure that contain all data that XCB needs to communicate with an X server.# ### ## *< Opaque structure containing all data that XCB needs to communicate with an X server.# ## Other types# ## *# ## @brief Generic iterator.# ### ## A generic iterator structure.# ### type# xcb_generic_iterator_t* {.bycopy.} = object# data*: pointer ## *< Data of the current iterator# rem*: cint ## *< remaining elements# index*: cint ## *< index of the current iterator# ## *# ## @brief Generic reply.# ### ## A generic reply structure.# ### type# xcb_generic_reply_t* {.bycopy.} = object# response_type*: uint8 ## *< Type of the response# pad0*: uint8 ## *< Padding# sequence*: uint16 ## *< Sequence number# length*: uint32 ## *< Length of the response# ## *# ## @brief Generic event.# ### ## A generic event structure.# ### type# xcb_generic_event_t* {.bycopy.} = object# response_type*: uint8 ## *< Type of the response# pad0*: uint8 ## *< Padding# sequence*: uint16 ## *< Sequence number# pad*: array[7, uint32] ## *< Padding# full_sequence*: uint32 ## *< full sequence# ## *# ## @brief Raw Generic event.# ### ## A generic event structure as used on the wire, i.e., without the full_sequence field# ### type# xcb_raw_generic_event_t* {.bycopy.} = object# response_type*: uint8 ## *< Type of the response# pad0*: uint8 ## *< Padding# sequence*: uint16 ## *< Sequence number# pad*: array[7, uint32] ## *< Padding# ## *# ## @brief GE event# ### ## An event as sent by the XGE extension. The length field specifies the# ## number of 4-byte blocks trailing the struct.# ### ## @deprecated Since some fields in this struct have unfortunate names, it is# ## recommended to use xcb_ge_generic_event_t instead.# ### type# xcb_ge_event_t* {.bycopy.} = object# response_type*: uint8 ## *< Type of the response# pad0*: uint8 ## *< Padding# sequence*: uint16 ## *< Sequence number# length*: uint32# event_type*: uint16# pad1*: uint16# pad*: array[5, uint32] ## *< Padding# full_sequence*: uint32 ## *< full sequence# ## *# ## @brief Generic error.# ### ## A generic error structure.# ### type# xcb_generic_error_t* {.bycopy.} = object# response_type*: uint8 ## *< Type of the response# error_code*: uint8 ## *< Error code# sequence*: uint16 ## *< Sequence number# resource_id*: uint32 ## * < Resource ID for requests with side effects only# minor_code*: uint16 ## * < Minor opcode of the failed request# major_code*: uint8 ## * < Major opcode of the failed request# pad0*: uint8# pad*: array[5, uint32] ## *< Padding# full_sequence*: uint32 ## *< full sequence# ## *# ## @brief Generic cookie.# ### ## A generic cookie structure.# ### type# xcb_void_cookie_t* {.bycopy.} = object# sequence*: uint8 ## *< Sequence number# ## Include the generated xproto header.# import# xproto# ## * XCB_NONE is the universal null resource or null atom parameter value for many core X requests# const# XCB_NONE* = 0# ## * XCB_COPY_FROM_PARENT can be used for many xcb_create_window parameters# const# XCB_COPY_FROM_PARENT* = 0# ## * XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_t# const# XCB_CURRENT_TIME* = 0# ## * XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tables# const# XCB_NO_SYMBOL* = 0# ## xcb_auth.c# ## *# ## @brief Container for authorization information.# ### ## A container for authorization information to be sent to the X server.# ### type# xcb_auth_info_t* {.bycopy.} = object# namelen*: cint ## *< Length of the string name (as returned by strlen).# name*: cstring ## *< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1".# datalen*: cint ## *< Length of the data member.# data*: cstring ## *< Data interpreted in a protocol-specific manner.# ## xcb_out.c# ## *# ## @brief Forces any buffered output to be written to the server.# ## @param c The connection to the X server.# ## @return > @c 0 on success, <= @c 0 otherwise.# ### ## Forces any buffered output to be written to the server. Blocks# ## until the write is complete.# ### proc xcb_flush*(c: ptr xcb_connection_t): cint# ## *# ## @brief Returns the maximum request length that this server accepts.# ## @param c The connection to the X server.# ## @return The maximum request length field.# ### ## In the absence of the BIG-REQUESTS extension, returns the# ## maximum request length field from the connection setup data, which# ## may be as much as 65535. If the server supports BIG-REQUESTS, then# ## the maximum request length field from the reply to the# ## BigRequestsEnable request will be returned instead.# ### ## Note that this length is measured in four-byte units, making the# ## theoretical maximum lengths roughly 256kB without BIG-REQUESTS and# ## 16GB with.# ### proc xcb_get_maximum_request_length*(c: ptr xcb_connection_t): uint32# ## *# ## @brief Prefetch the maximum request length without blocking.# ## @param c The connection to the X server.# ### ## Without blocking, does as much work as possible toward computing# ## the maximum request length accepted by the X server.# ### ## Invoking this function may cause a call to xcb_big_requests_enable,# ## but will not block waiting for the reply.# ## xcb_get_maximum_request_length will return the prefetched data# ## after possibly blocking while the reply is retrieved.# ### ## Note that in order for this function to be fully non-blocking, the# ## application must previously have called# ## xcb_prefetch_extension_data(c, &xcb_big_requests_id) and the reply# ## must have already arrived.# ### proc xcb_prefetch_maximum_request_length*(c: ptr xcb_connection_t)# ## xcb_in.c# ## *# ## @brief Returns the next event or error from the server.# ## @param c The connection to the X server.# ## @return The next event from the server.# ### ## Returns the next event or error from the server, or returns null in# ## the event of an I/O error. Blocks until either an event or error# ## arrive, or an I/O error occurs.# ### proc xcb_wait_for_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t# ## *# ## @brief Returns the next event or error from the server.# ## @param c The connection to the X server.# ## @return The next event from the server.# ### ## Returns the next event or error from the server, if one is# ## available, or returns @c NULL otherwise. If no event is available, that# ## might be because an I/O error like connection close occurred while# ## attempting to read the next event, in which case the connection is# ## shut down when this function returns.# ### proc xcb_poll_for_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t# ## *# ## @brief Returns the next event without reading from the connection.# ## @param c The connection to the X server.# ## @return The next already queued event from the server.# ### ## This is a version of xcb_poll_for_event that only examines the# ## event queue for new events. The function doesn't try to read new# ## events from the connection if no queued events are found.# ### ## This function is useful for callers that know in advance that all# ## interesting events have already been read from the connection. For# ## example, callers might use xcb_wait_for_reply and be interested# ## only of events that preceded a specific reply.# ### type# xcb_special_event_t* = xcb_special_event# ## *# ## @brief Returns the next event from a special queue# ### proc xcb_poll_for_special_event*(c: ptr xcb_connection_t;# se: ptr xcb_special_event_t): ptr xcb_generic_event_t# ## *# ## @brief Returns the next event from a special queue, blocking until one arrives# ### proc xcb_wait_for_special_event*(c: ptr xcb_connection_t;# se: ptr xcb_special_event_t): ptr xcb_generic_event_t# ## *# ## @typedef typedef struct xcb_extension_t xcb_extension_t# ### ## *< Opaque structure used as key for xcb_get_extension_data_t.# ## *# ## @brief Listen for a special event# ### proc xcb_register_for_special_xge*(c: ptr xcb_connection_t;# ext: ptr xcb_extension_t; eid: uint32;# stamp: ptr uint32): ptr xcb_special_event_t# ## *# ## @brief Stop listening for a special event# ### proc xcb_unregister_for_special_event*(c: ptr xcb_connection_t;# se: ptr xcb_special_event_t)# ## *# ## @brief Return the error for a request, or NULL if none can ever arrive.# ## @param c The connection to the X server.# ## @param cookie The request cookie.# ## @return The error for the request, or NULL if none can ever arrive.# ### ## The xcb_void_cookie_t cookie supplied to this function must have resulted# ## from a call to xcb_[request_name]_checked(). This function will block# ## until one of two conditions happens. If an error is received, it will be# ## returned. If a reply to a subsequent request has already arrived, no error# ## can arrive for this request, so this function will return NULL.# ### ## Note that this function will perform a sync if needed to ensure that the# ## sequence number will advance beyond that provided in cookie; this is a# ## convenience to avoid races in determining whether the sync is needed.# ### proc xcb_request_check*(c: ptr xcb_connection_t; cookie: xcb_void_cookie_t): ptr xcb_generic_error_t# ## *# ## @brief Discards the reply for a request.# ## @param c The connection to the X server.# ## @param sequence The request sequence number from a cookie.# ### ## Discards the reply for a request. Additionally, any error generated# ## by the request is also discarded (unless it was an _unchecked request# ## and the error has already arrived).# ### ## This function will not block even if the reply is not yet available.# ### ## Note that the sequence really does have to come from an xcb cookie;# ## this function is not designed to operate on socket-handoff replies.# ### proc xcb_discard_reply*(c: ptr xcb_connection_t; sequence: uint8)# ## *# ## @brief Discards the reply for a request, given by a 64bit sequence number# ## @param c The connection to the X server.# ## @param sequence 64-bit sequence number as returned by xcb_send_request64().# ### ## Discards the reply for a request. Additionally, any error generated# ## by the request is also discarded (unless it was an _unchecked request# ## and the error has already arrived).# ### ## This function will not block even if the reply is not yet available.# ### ## Note that the sequence really does have to come from xcb_send_request64();# ## the cookie sequence number is defined as "unsigned" int and therefore# ## not 64-bit on all platforms.# ## This function is not designed to operate on socket-handoff replies.# ### ## Unlike its xcb_discard_reply() counterpart, the given sequence number is not# ## automatically "widened" to 64-bit.# ### proc xcb_discard_reply64*(c: ptr xcb_connection_t; sequence: uint64)# ## xcb_ext.c# ## *# ## @brief Caches reply information from QueryExtension requests.# ## @param c The connection.# ## @param ext The extension data.# ## @return A pointer to the xcb_query_extension_reply_t for the extension.# ### ## This function is the primary interface to the "extension cache",# ## which caches reply information from QueryExtension# ## requests. Invoking this function may cause a call to# ## xcb_query_extension to retrieve extension information from the# ## server, and may block until extension data is received from the# ## server.# ### ## The result must not be freed. This storage is managed by the cache# ## itself.# ### proc xcb_get_setup*(c: ptr xcb_connection_t): ptr xcb_setup_t# ## *# ## @brief Access the file descriptor of the connection.# ## @param c The connection.# ## @return The file descriptor.# ### ## Accessor for the file descriptor that was passed to the# ## xcb_connect_to_fd call that returned @p c.# ### proc xcb_get_file_descriptor*(c: ptr xcb_connection_t): cint# ## *# ## @brief Test whether the connection has shut down due to a fatal error.# ## @param c The connection.# ## @return > 0 if the connection is in an error state; 0 otherwise.# ### ## Some errors that occur in the context of an xcb_connection_t# ## are unrecoverable. When such an error occurs, the# ## connection is shut down and further operations on the# ## xcb_connection_t have no effect, but memory will not be freed until# ## xcb_disconnect() is called on the xcb_connection_t.# ### ## @return XCB_CONN_ERROR, because of socket errors, pipe errors or other stream errors.# ## @return XCB_CONN_CLOSED_EXT_NOTSUPPORTED, when extension not supported.# ## @return XCB_CONN_CLOSED_MEM_INSUFFICIENT, when memory not available.# ## @return XCB_CONN_CLOSED_REQ_LEN_EXCEED, exceeding request length that server accepts.# ## @return XCB_CONN_CLOSED_PARSE_ERR, error during parsing display string.# ## @return XCB_CONN_CLOSED_INVALID_SCREEN, because the server does not have a screen matching the display.# ### proc xcb_connection_has_error*(c: ptr xcb_connection_t): cint# ## *# ## @brief Connects to the X server.# ## @param fd The file descriptor.# ## @param auth_info Authentication data.# ## @return A newly allocated xcb_connection_t structure.# ### ## Connects to an X server, given the open socket @p fd and the# ## xcb_auth_info_t @p auth_info. The file descriptor @p fd is# ## bidirectionally connected to an X server. If the connection# ## should be unauthenticated, @p auth_info must be @c# ## NULL.# ### ## Always returns a non-NULL pointer to a xcb_connection_t, even on failure.# ## Callers need to use xcb_connection_has_error() to check for failure.# ## When finished, use xcb_disconnect() to close the connection and free# ## the structure.# ### proc xcb_connect_to_fd*(fd: cint; auth_info: ptr xcb_auth_info_t): ptr xcb_connection_t# ## *# ## @brief Closes the connection.# ## @param c The connection.# ### ## Closes the file descriptor and frees all memory associated with the# ## connection @c c. If @p c is @c NULL, nothing is done.# ### proc xcb_disconnect*(c: ptr xcb_connection_t)# ## xcb_util.c# ## *# ## @brief Parses a display string name in the form documented by X(7x).# ## @param name The name of the display.# ## @param host A pointer to a malloc'd copy of the hostname.# ## @param display A pointer to the display number.# ## @param screen A pointer to the screen number.# ## @return 0 on failure, non 0 otherwise.# ### ## Parses the display string name @p display_name in the form# ## documented by X(7x). Has no side effects on failure. If# ## @p displayname is @c NULL or empty, it uses the environment# ## variable DISPLAY. @p hostp is a pointer to a newly allocated string# ## that contain the host name. @p displayp is set to the display# ## number and @p screenp to the preferred screen number. @p screenp# ## can be @c NULL. If @p displayname does not contain a screen number,# ## it is set to @c 0.# ### proc xcb_parse_display*(name: cstring; host: cstringArray; display: ptr cint;# screen: ptr cint): cint# ## *# ## @brief Connects to the X server.# ## @param displayname The name of the display.# ## @param screenp A pointer to a preferred screen number.# ## @return A newly allocated xcb_connection_t structure.# ### ## Connects to the X server specified by @p displayname. If @p# ## displayname is @c NULL, uses the value of the DISPLAY environment# ## variable. If a particular screen on that server is preferred, the# ## int pointed to by @p screenp (if not @c NULL) will be set to that# ## screen; otherwise the screen will be set to 0.# ### ## Always returns a non-NULL pointer to a xcb_connection_t, even on failure.# ## Callers need to use xcb_connection_has_error() to check for failure.# ## When finished, use xcb_disconnect() to close the connection and free# ## the structure.# ### proc xcb_connect*(displayname: cstring; screenp: ptr cint): ptr xcb_connection_t# ## *# ## @brief Connects to the X server, using an authorization information.# ## @param display The name of the display.# ## @param auth The authorization information.# ## @param screen A pointer to a preferred screen number.# ## @return A newly allocated xcb_connection_t structure.# ### ## Connects to the X server specified by @p displayname, using the# ## authorization @p auth. If a particular screen on that server is# ## preferred, the int pointed to by @p screenp (if not @c NULL) will# ## be set to that screen; otherwise @p screenp will be set to 0.# ### ## Always returns a non-NULL pointer to a xcb_connection_t, even on failure.# ## Callers need to use xcb_connection_has_error() to check for failure.# ## When finished, use xcb_disconnect() to close the connection and free# ## the structure.# ### proc xcb_connect_to_display_with_auth_info*(display: cstring;# auth: ptr xcb_auth_info_t; screen: ptr cint): ptr xcb_connection_t# ## xcb_xid.c# ## *# ## @brief Allocates an XID for a new object.# ## @param c The connection.# ## @return A newly allocated XID.# ### ## Allocates an XID for a new object. Typically used just prior to# ## various object creation functions, such as xcb_create_window.# ### proc xcb_generate_id*(c: ptr xcb_connection_t): uint32# ## *# ## @}# ### ### ## Copyright (C) 2008 Arnaud Fontaine <arnau@debian.org># ## Copyright (C) 2007-2008 Vincent Torri <vtorri@univ-evry.fr># ### ## Permission is hereby granted, free of charge, to any person# ## obtaining a copy of this software and associated documentation# ## files (the "Software"), to deal in the Software without# ## restriction, including without limitation the rights to use, copy,# ## modify, merge, publish, distribute, sublicense, and/or sell copies# ## of the Software, and to permit persons to whom the Software is# ## furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be# ## included in all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,# ## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF# ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND# ## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY# ## CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF# ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION# ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or# ## their institutions shall not be used in advertising or otherwise to# ## promote the sale, use or other dealings in this Software without# ## prior written authorization from the authors.# ### ## *# ## @defgroup xcb__icccm_t XCB ICCCM Functions# ### ## These functions allow easy handling of the protocol described in the# ## Inter-Client Communication Conventions Manual.# ### ## @{# ### ## *# ## @brief TextProperty reply structure.# ### type# xcb_icccm_get_text_property_reply_t* {.bycopy.} = object# _reply*: ptr xcb_get_property_reply_t ## * Store reply to avoid memory allocation, should normally not be# ## used directly# ## * Encoding used# encoding*: xcb_atom_t ## * Length of the name field above# name_len*: uint32 ## * Property value# name*: cstring ## * Format, may be 8, 16 or 32# format*: uint8# ## *# ## @brief Deliver a GetProperty request to the X server.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param property Property atom to get.# ## @return The request cookie.# ### ## Allow to get a window property, in most case you might want to use# ## above functions to get an ICCCM property for a given window.# ### proc xcb_icccm_get_text_property*(c: ptr xcb_connection_t; window: xcb_window_t;# property: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_text_property()# ### proc xcb_icccm_get_text_property_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the property value of a window.# ## @param c The connection to the X server.# ## @param cookie TextProperty request cookie.# ## @param prop TextProperty reply which is to be filled.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## If the function return 0 (failure), the content of prop is unmodified and# ## therefore the structure must not be wiped.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_text_property_unchecked() is used. Otherwise, it stores# ## the error if any. prop structure members should be freed by# ## xcb_icccm_get_text_property_reply_wipe().# ### proc xcb_icccm_get_text_property_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t; prop: ptr xcb_icccm_get_text_property_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe prop structure members previously allocated by# ## xcb_icccm_get_text_property_reply().# ## @param prop prop structure whose members is going to be freed.# ### proc xcb_icccm_get_text_property_reply_wipe*(# prop: ptr xcb_icccm_get_text_property_reply_t)# ## WM_NAME# ## *# ## @brief Deliver a SetProperty request to set WM_NAME property value.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type.# ## @param format Encoding format.# ## @param name_len Length of name value to set.# ## @param name Name value to set.# ### proc xcb_icccm_set_wm_name_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# encoding: xcb_atom_t; format: uint8;# name_len: uint32; name: cstring): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_name_checked()# ### proc xcb_icccm_set_wm_name*(c: ptr xcb_connection_t; window: xcb_window_t;# encoding: xcb_atom_t; format: uint8;# name_len: uint32; name: cstring): xcb_void_cookie_t# ## *# ## @brief Deliver a GetProperty request to the X server for WM_NAME.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_name*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_name()# ### proc xcb_icccm_get_wm_name_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the WM_NAME property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param prop WM_NAME property value.# ## @param e Error if any.# ## @see xcb_icccm_get_text_property_reply()# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_name_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t;# prop: ptr xcb_icccm_get_text_property_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## WM_ICON_NAME# ## *# ## @brief Deliver a SetProperty request to set WM_ICON_NAME property value.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type.# ## @param format Encoding format.# ## @param name_len Length of name value to set.# ## @param name Name value to set.# ### proc xcb_icccm_set_wm_icon_name_checked*(c: ptr xcb_connection_t;# window: xcb_window_t;# encoding: xcb_atom_t; format: uint8;# name_len: uint32; name: cstring): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_icon_name_checked()# ### proc xcb_icccm_set_wm_icon_name*(c: ptr xcb_connection_t; window: xcb_window_t;# encoding: xcb_atom_t; format: uint8;# name_len: uint32; name: cstring): xcb_void_cookie_t# ## *# ## @brief Send request to get WM_ICON_NAME property of a window.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_icon_name*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_icon_name()# ### proc xcb_icccm_get_wm_icon_name_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the WM_ICON_NAME property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param prop WM_ICON_NAME property value.# ## @param e Error if any.# ## @see xcb_icccm_get_text_property_reply()# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_icon_name_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t; prop: ptr xcb_icccm_get_text_property_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## WM_COLORMAP_WINDOWS# ## *# ## @brief Deliver a ChangeProperty request to set WM_COLORMAP_WINDOWS property value.# ## @param c The connection to the X server.# ## @param wm_colormap_windows The WM_COLORMAP_WINDOWS atom# ## @param window Window X identifier.# ## @param list_len Windows list len.# ## @param list Windows list.# ## @return The request cookie.# ### proc xcb_icccm_set_wm_colormap_windows_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; wm_colormap_windows_atom: xcb_atom_t; list_len: uint32;# list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_colormap_windows_checked()# ### proc xcb_icccm_set_wm_colormap_windows*(c: ptr xcb_connection_t;# window: xcb_window_t;# wm_colormap_windows_atom: xcb_atom_t;# list_len: uint32; list: ptr xcb_window_t): xcb_void_cookie_t# ## *# ## @brief WM_COLORMAP_WINDOWS structure.# ### type# xcb_icccm_get_wm_colormap_windows_reply_t* {.bycopy.} = object# windows_len*: uint32 ## * Length of the windows list# ## * Windows list# windows*: ptr xcb_window_t ## * Store reply to avoid memory allocation, should normally not be# ## used directly# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Send request to get WM_COLORMAP_WINDOWS property of a given window.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_colormap_windows*(c: ptr xcb_connection_t;# window: xcb_window_t;# wm_colormap_windows_atom: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_colormap_windows()# ### proc xcb_icccm_get_wm_colormap_windows_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; wm_colormap_windows_atom: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @brief Fill the given structure with the WM_COLORMAP_WINDOWS property of a window.# ## @param reply The reply of the GetProperty request.# ## @param colormap_windows WM_COLORMAP property value.# ## @return Return 1 on success, 0 otherwise.# ### ## protocols structure members should be freed by# ## xcb_icccm_get_wm_protocols_reply_wipe().# ### proc xcb_icccm_get_wm_colormap_windows_from_reply*(# reply: ptr xcb_get_property_reply_t;# colormap_windows: ptr xcb_icccm_get_wm_colormap_windows_reply_t): uint8# ## *# ## @brief Fill the given structure with the WM_COLORMAP_WINDOWS property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param protocols WM_COLORMAP_WINDOWS property value.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_colormap_windows_unchecked() is used. Otherwise, it# ## stores the error if any. protocols structure members should be# ## freed by xcb_icccm_get_wm_colormap_windows_reply_wipe().# ### proc xcb_icccm_get_wm_colormap_windows_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t;# windows: ptr xcb_icccm_get_wm_colormap_windows_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe protocols structure members previously allocated by# ## xcb_icccm_get_wm_colormap_windows_reply().# ## @param windows windows structure whose members is going to be freed.# ### proc xcb_icccm_get_wm_colormap_windows_reply_wipe*(# windows: ptr xcb_icccm_get_wm_colormap_windows_reply_t)# ## WM_CLIENT_MACHINE# ## *# ## @brief Deliver a SetProperty request to set WM_CLIENT_MACHINE property value.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type.# ## @param format Encoding format.# ## @param name_len Length of name value to set.# ## @param name Name value to set.# ### proc xcb_icccm_set_wm_client_machine_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; encoding: xcb_atom_t; format: uint8; name_len: uint32;# name: cstring): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_client_machine_checked()# ### proc xcb_icccm_set_wm_client_machine*(c: ptr xcb_connection_t; window: xcb_window_t;# encoding: xcb_atom_t; format: uint8;# name_len: uint32; name: cstring): xcb_void_cookie_t# ## *# ## @brief Send request to get WM_CLIENT_MACHINE property of a window.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_client_machine*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_client_machine()# ### proc xcb_icccm_get_wm_client_machine_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the WM_CLIENT_MACHINE property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param prop WM_CLIENT_MACHINE property value.# ## @param e Error if any.# ## @see xcb_icccm_get_text_property_reply()# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_client_machine_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t;# prop: ptr xcb_icccm_get_text_property_reply_t; e: ptr ptr xcb_generic_error_t): uint8# ## WM_CLASS# ## *# ## @brief WM_CLASS hint structure# ### ## *# ## @brief Deliver a SetProperty request to set WM_CLASS property value.# ### ## WM_CLASS string is a concatenation of the instance and class name# ## strings respectively (including null character).# ### ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param class_len Length of WM_CLASS string.# ## @param class_name WM_CLASS string.# ## @return The request cookie.# ### proc xcb_icccm_set_wm_class_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# class_len: uint32; class_name: cstring): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_class_checked()# ### proc xcb_icccm_set_wm_class*(c: ptr xcb_connection_t; window: xcb_window_t;# class_len: uint32; class_name: cstring): xcb_void_cookie_t# type# xcb_icccm_get_wm_class_reply_t* {.bycopy.} = object# instance_name*: cstring ## * Instance name# ## * Class of application# class_name*: cstring ## * Store reply to avoid memory allocation, should normally not be# ## used directly# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Deliver a GetProperty request to the X server for WM_CLASS.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_class*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_class()# ### proc xcb_icccm_get_wm_class_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill give structure with the WM_CLASS property of a window.# ## @param prop The property structure to fill.# ## @param reply The property request reply.# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_class_from_reply*(prop: ptr xcb_icccm_get_wm_class_reply_t;# reply: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Fill given structure with the WM_CLASS property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param prop WM_CLASS property value.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_class_unchecked() is used. Otherwise, it stores the# ## error if any. prop structure members should be freed by# ## xcb_icccm_get_wm_class_reply_wipe().# ### proc xcb_icccm_get_wm_class_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t;# prop: ptr xcb_icccm_get_wm_class_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe prop structure members previously allocated by# ## xcb_icccm_get_wm_class_reply().# ## @param prop prop structure whose members is going to be freed.# ### proc xcb_icccm_get_wm_class_reply_wipe*(prop: ptr xcb_icccm_get_wm_class_reply_t)# ## WM_TRANSIENT_FOR# ## *# ## @brief Deliver a SetProperty request to set WM_TRANSIENT_FOR property value.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param transient_for_window The WM_TRANSIENT_FOR window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_set_wm_transient_for_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; transient_for_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_transient_for# ### proc xcb_icccm_set_wm_transient_for*(c: ptr xcb_connection_t; window: xcb_window_t;# transient_for_window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Send request to get WM_TRANSIENT_FOR property of a window.# ## @param c The connection to the X server# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_transient_for*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_transient_for_unchecked()# ### proc xcb_icccm_get_wm_transient_for_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given window pointer with the WM_TRANSIENT_FOR property of a window.# ## @param prop WM_TRANSIENT_FOR property value.# ## @param reply The get property request reply.# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_transient_for_from_reply*(prop: ptr xcb_window_t;# reply: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Fill given structure with the WM_TRANSIENT_FOR property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param prop WM_TRANSIENT_FOR property value.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_transient_for_unchecked() is used. Otherwise, it stores# ## the error if any.# ### proc xcb_icccm_get_wm_transient_for_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t; prop: ptr xcb_window_t;# e: ptr ptr xcb_generic_error_t): uint8# ## WM_SIZE_HINTS# type# xcb_icccm_size_hints_flags_t* = enum# XCB_ICCCM_SIZE_HINT_US_POSITION = 1 shl 0, XCB_ICCCM_SIZE_HINT_US_SIZE = 1 shl 1,# XCB_ICCCM_SIZE_HINT_P_POSITION = 1 shl 2, XCB_ICCCM_SIZE_HINT_P_SIZE = 1 shl 3,# XCB_ICCCM_SIZE_HINT_P_MIN_SIZE = 1 shl 4,# XCB_ICCCM_SIZE_HINT_P_MAX_SIZE = 1 shl 5,# XCB_ICCCM_SIZE_HINT_P_RESIZE_INC = 1 shl 6,# XCB_ICCCM_SIZE_HINT_P_ASPECT = 1 shl 7, XCB_ICCCM_SIZE_HINT_BASE_SIZE = 1 shl 8,# XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY = 1 shl 9# ## *# ## @brief Size hints structure.# ### type# xcb_size_hints_t* {.bycopy.} = object# flags*: uint32 ## * User specified flags# ## * User-specified position# x*: int32# y*: int32 ## * User-specified size# width*: int32# height*: int32 ## * Program-specified minimum size# min_width*: int32# min_height*: int32 ## * Program-specified maximum size# max_width*: int32# max_height*: int32 ## * Program-specified resize increments# width_inc*: int32# height_inc*: int32 ## * Program-specified minimum aspect ratios# min_aspect_num*: int32# min_aspect_den*: int32 ## * Program-specified maximum aspect ratios# max_aspect_num*: int32# max_aspect_den*: int32 ## * Program-specified base size# base_width*: int32# base_height*: int32 ## * Program-specified window gravity# win_gravity*: uint32# ## * Number of elements in this structure# const# XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS* = 18# ## *# ## @brief Set size hints to a given position.# ## @param hints SIZE_HINTS structure.# ## @param user_specified Is the size user-specified?# ## @param x The X position.# ## @param y The Y position.# ### proc xcb_icccm_size_hints_set_position*(hints: ptr xcb_size_hints_t;# user_specified: cint; x: int32; y: int32)# ## *# ## @brief Set size hints to a given size.# ## @param hints SIZE_HINTS structure.# ## @param user_specified is the size user-specified?# ## @param width The width.# ## @param height The height.# ### proc xcb_icccm_size_hints_set_size*(hints: ptr xcb_size_hints_t;# user_specified: cint; width: int32;# height: int32)# ## *# ## @brief Set size hints to a given minimum size.# ## @param hints SIZE_HINTS structure.# ## @param width The minimum width.# ## @param height The minimum height.# ### proc xcb_icccm_size_hints_set_min_size*(hints: ptr xcb_size_hints_t;# min_width: int32; min_height: int32)# ## *# ## @brief Set size hints to a given maximum size.# ## @param hints SIZE_HINTS structure.# ## @param width The maximum width.# ## @param height The maximum height.# ### proc xcb_icccm_size_hints_set_max_size*(hints: ptr xcb_size_hints_t;# max_width: int32; max_height: int32)# ## *# ## @brief Set size hints to a given resize increments.# ## @param hints SIZE_HINTS structure.# ## @param width The resize increments width.# ## @param height The resize increments height.# ### proc xcb_icccm_size_hints_set_resize_inc*(hints: ptr xcb_size_hints_t;# width_inc: int32; height_inc: int32)# ## *# ## @brief Set size hints to a given aspect ratios.# ## @param hints SIZE_HINTS structure.# ## @param min_aspect_num The minimum aspect ratios for the width.# ## @param min_aspect_den The minimum aspect ratios for the height.# ## @param max_aspect_num The maximum aspect ratios for the width.# ## @param max_aspect_den The maximum aspect ratios for the height.# ### proc xcb_icccm_size_hints_set_aspect*(hints: ptr xcb_size_hints_t;# min_aspect_num: int32;# min_aspect_den: int32;# max_aspect_num: int32;# max_aspect_den: int32)# ## *# ## @brief Set size hints to a given base size.# ## @param hints SIZE_HINTS structure.# ## @param base_width Base width.# ## @param base_height Base height.# ### proc xcb_icccm_size_hints_set_base_size*(hints: ptr xcb_size_hints_t;# base_width: int32; base_height: int32)# ## *# ## @brief Set size hints to a given window gravity.# ## @param hints SIZE_HINTS structure.# ## @param win_gravity Window gravity value.# ### proc xcb_icccm_size_hints_set_win_gravity*(hints: ptr xcb_size_hints_t;# win_gravity: xcb_gravity_t)# ## *# ## @brief Deliver a ChangeProperty request to set a value to a given property.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param property Property to set value for.# ## @param hints Hints value to set.# ### proc xcb_icccm_set_wm_size_hints_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t; hints: ptr xcb_size_hints_t): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_size_hints_checked()# ### proc xcb_icccm_set_wm_size_hints*(c: ptr xcb_connection_t; window: xcb_window_t;# property: xcb_atom_t; hints: ptr xcb_size_hints_t): xcb_void_cookie_t# ## *# ## @brief Send request to get size hints structure for the named property.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param property Specify the property name.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_size_hints*(c: ptr xcb_connection_t; window: xcb_window_t;# property: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_size_hints()# ### proc xcb_icccm_get_wm_size_hints_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the size hints of the named property.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param hints Size hints structure.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_size_hints_unchecked() is used. Otherwise, it stores# ## the error if any. The returned pointer should be freed.# ### proc xcb_icccm_get_wm_size_hints_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t;# hints: ptr xcb_size_hints_t;# e: ptr ptr xcb_generic_error_t): uint8# ## WM_NORMAL_HINTS# ## *# ## @brief Deliver a ChangeProperty request to set WM_NORMAL_HINTS property value.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param hints Hints value to set.# ### proc xcb_icccm_set_wm_normal_hints_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; hints: ptr xcb_size_hints_t): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_normal_hints_checked()# ### proc xcb_icccm_set_wm_normal_hints*(c: ptr xcb_connection_t; window: xcb_window_t;# hints: ptr xcb_size_hints_t): xcb_void_cookie_t# ## *# ## @brief Send request to get WM_NORMAL_HINTS property of a window.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_normal_hints*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_normal_hints()# ### proc xcb_icccm_get_wm_normal_hints_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the WM_NORMAL_HINTS property of a window.# ## @param hints WM_NORMAL_HINTS property value.# ## @param reply The get property request reply.# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_size_hints_from_reply*(hints: ptr xcb_size_hints_t;# reply: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Fill given structure with the WM_NORMAL_HINTS property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param hints WM_NORMAL_HINTS property value.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_normal_hints_unchecked() is used. Otherwise, it stores# ## the error if any. The returned pointer should be freed.# ### proc xcb_icccm_get_wm_normal_hints_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t; hints: ptr xcb_size_hints_t;# e: ptr ptr xcb_generic_error_t): uint8# ## WM_HINTS# ## *# ## @brief WM hints structure (may be extended in the future).# ### type# xcb_icccm_wm_hints_t* {.bycopy.} = object# flags*: int32 ## * Marks which fields in this structure are defined# ## * Does this application rely on the window manager to get keyboard# ## input?# input*: uint32 ## * See below# initial_state*: int32 ## * Pixmap to be used as icon# icon_pixmap*: xcb_pixmap_t ## * Window to be used as icon# icon_window*: xcb_window_t ## * Initial position of icon# icon_x*: int32# icon_y*: int32 ## * Icon mask bitmap# icon_mask*: xcb_pixmap_t ## Identifier of related window group# window_group*: xcb_window_t# ## * Number of elements in this structure# const# XCB_ICCCM_NUM_WM_HINTS_ELEMENTS* = 9# ## *# ## @brief WM_HINTS window states.# ### type# xcb_icccm_wm_state_t* = enum# XCB_ICCCM_WM_STATE_WITHDRAWN = 0, XCB_ICCCM_WM_STATE_NORMAL = 1,# XCB_ICCCM_WM_STATE_ICONIC = 3# xcb_icccm_wm_t* = enum# XCB_ICCCM_WM_HINT_INPUT = (1 shl 0), XCB_ICCCM_WM_HINT_STATE = (1 shl 1),# XCB_ICCCM_WM_HINT_ICON_PIXMAP = (1 shl 2),# XCB_ICCCM_WM_HINT_ICON_WINDOW = (1 shl 3),# XCB_ICCCM_WM_HINT_ICON_POSITION = (1 shl 4),# XCB_ICCCM_WM_HINT_ICON_MASK = (1 shl 5),# XCB_ICCCM_WM_HINT_WINDOW_GROUP = (1 shl 6),# XCB_ICCCM_WM_HINT_X_URGENCY = (1 shl 8)# const# XCB_ICCCM_WM_ALL_HINTS* = (XCB_ICCCM_WM_HINT_INPUT or XCB_ICCCM_WM_HINT_STATE or# XCB_ICCCM_WM_HINT_ICON_PIXMAP or XCB_ICCCM_WM_HINT_ICON_WINDOW or# XCB_ICCCM_WM_HINT_ICON_POSITION or XCB_ICCCM_WM_HINT_ICON_MASK or# XCB_ICCCM_WM_HINT_WINDOW_GROUP)# ## *# ## @brief Get urgency hint.# ## @param hints WM_HINTS structure.# ## @return Urgency hint value.# ### proc xcb_icccm_wm_hints_get_urgency*(hints: ptr xcb_icccm_wm_hints_t): uint32# ## *# ## @brief Set input focus.# ## @param hints WM_HINTS structure.# ## @param input Input focus.# ### proc xcb_icccm_wm_hints_set_input*(hints: ptr xcb_icccm_wm_hints_t; input: uint8)# ## *# ## @brief Set hints state to 'iconic'.# ## @param hints WM_HINTS structure.# ### proc xcb_icccm_wm_hints_set_iconic*(hints: ptr xcb_icccm_wm_hints_t)# ## *# ## @brief Set hints state to 'normal'.# ## @param hints WM_HINTS structure.# ### proc xcb_icccm_wm_hints_set_normal*(hints: ptr xcb_icccm_wm_hints_t)# ## *# ## @brief Set hints state to 'withdrawn'.# ## @param hints WM_HINTS structure.# ### proc xcb_icccm_wm_hints_set_withdrawn*(hints: ptr xcb_icccm_wm_hints_t)# ## *# ## @brief Set hints state to none.# ## @param hints WM_HINTS structure.# ### proc xcb_icccm_wm_hints_set_none*(hints: ptr xcb_icccm_wm_hints_t)# ## *# ## @brief Set pixmap to be used as icon.# ## @param hints WM_HINTS structure.# ## @param icon_pixmap Pixmap.# ### proc xcb_icccm_wm_hints_set_icon_pixmap*(hints: ptr xcb_icccm_wm_hints_t;# icon_pixmap: xcb_pixmap_t)# ## *# ## @brief Set icon mask bitmap.# ## @param hints WM_HINTS structure.# ## @param icon_mask Pixmap.# ### proc xcb_icccm_wm_hints_set_icon_mask*(hints: ptr xcb_icccm_wm_hints_t;# icon_mask: xcb_pixmap_t)# ## *# ## @brief Set window identifier to be used as icon.# ## @param hints WM_HINTS structure.# ## @param icon_window Window X identifier.# ### proc xcb_icccm_wm_hints_set_icon_window*(hints: ptr xcb_icccm_wm_hints_t;# icon_window: xcb_window_t)# ## *# ## @brief Set identifier of related window group.# ## @param hints WM_HINTS structure.# ## @param window_group Window X identifier.# ### proc xcb_icccm_wm_hints_set_window_group*(hints: ptr xcb_icccm_wm_hints_t;# window_group: xcb_window_t)# ## *# ## @brief Set urgency hints flag.# ## @param hints WM_HINTS structure.# ### proc xcb_icccm_wm_hints_set_urgency*(hints: ptr xcb_icccm_wm_hints_t)# ## *# ## @brief Deliver a SetProperty request to set WM_HINTS property value.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @param hints Hints value to set.# ### proc xcb_icccm_set_wm_hints_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# hints: ptr xcb_icccm_wm_hints_t): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_hints_checked()# ### proc xcb_icccm_set_wm_hints*(c: ptr xcb_connection_t; window: xcb_window_t;# hints: ptr xcb_icccm_wm_hints_t): xcb_void_cookie_t# ## *# ## @brief Send request to get WM_HINTS property of a window.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_hints*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_hints()# ### proc xcb_icccm_get_wm_hints_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_property_cookie_t# ## *# ## @brief Fill given structure with the WM_HINTS property of a window.# ## @param hints WM_HINTS property value.# ## @param reply The get property request reply.# ## @return Return 1 on success, 0 otherwise.# ### proc xcb_icccm_get_wm_hints_from_reply*(hints: ptr xcb_icccm_wm_hints_t;# reply: ptr xcb_get_property_reply_t): uint8# ## *# ## @brief Fill given structure with the WM_HINTS property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param hints WM_HINTS property value.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_hints_unchecked() is used. Otherwise, it stores the# ## error if any. The returned pointer should be freed.# ### proc xcb_icccm_get_wm_hints_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t;# hints: ptr xcb_icccm_wm_hints_t;# e: ptr ptr xcb_generic_error_t): uint8# ## WM_PROTOCOLS# ## *# ## @brief Deliver a SetProperty request to set WM_PROTOCOLS property value.# ## @param c The connection to the X server.# ## @param wm_protocols The WM_PROTOCOLS atom.# ## @param window Window X identifier.# ## @param list_len Atom list len.# ## @param list Atom list.# ### proc xcb_icccm_set_wm_protocols_checked*(c: ptr xcb_connection_t;# window: xcb_window_t;# wm_protocols: xcb_atom_t;# list_len: uint32; list: ptr xcb_atom_t): xcb_void_cookie_t# ## *# ## @see xcb_icccm_set_wm_protocols_checked()# ### proc xcb_icccm_set_wm_protocols*(c: ptr xcb_connection_t; window: xcb_window_t;# wm_protocols: xcb_atom_t; list_len: uint32;# list: ptr xcb_atom_t): xcb_void_cookie_t# ## *# ## @brief WM_PROTOCOLS structure.# ### type# xcb_icccm_get_wm_protocols_reply_t* {.bycopy.} = object# atoms_len*: uint32 ## * Length of the atoms list# ## * Atoms list# atoms*: ptr xcb_atom_t ## * Store reply to avoid memory allocation, should normally not be# ## used directly# _reply*: ptr xcb_get_property_reply_t# ## *# ## @brief Send request to get WM_PROTOCOLS property of a given window.# ## @param c The connection to the X server.# ## @param window Window X identifier.# ## @return The request cookie.# ### proc xcb_icccm_get_wm_protocols*(c: ptr xcb_connection_t; window: xcb_window_t;# wm_protocol_atom: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @see xcb_icccm_get_wm_protocols()# ### proc xcb_icccm_get_wm_protocols_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; wm_protocol_atom: xcb_atom_t): xcb_get_property_cookie_t# ## *# ## @brief Fill the given structure with the WM_PROTOCOLS property of a window.# ## @param reply The reply of the GetProperty request.# ## @param protocols WM_PROTOCOLS property value.# ## @return Return 1 on success, 0 otherwise.# ### ## protocols structure members should be freed by# ## xcb_icccm_get_wm_protocols_reply_wipe().# ### proc xcb_icccm_get_wm_protocols_from_reply*(reply: ptr xcb_get_property_reply_t;# protocols: ptr xcb_icccm_get_wm_protocols_reply_t): uint8# ## *# ## @brief Fill the given structure with the WM_PROTOCOLS property of a window.# ## @param c The connection to the X server.# ## @param cookie Request cookie.# ## @param protocols WM_PROTOCOLS property value.# ## @param e Error if any.# ## @return Return 1 on success, 0 otherwise.# ### ## The parameter e supplied to this function must be NULL if# ## xcb_icccm_get_wm_protocols_unchecked() is used. Otherwise, it stores the# ## error if any. protocols structure members should be freed by# ## xcb_icccm_get_wm_protocols_reply_wipe().# ### proc xcb_icccm_get_wm_protocols_reply*(c: ptr xcb_connection_t;# cookie: xcb_get_property_cookie_t; protocols: ptr xcb_icccm_get_wm_protocols_reply_t;# e: ptr ptr xcb_generic_error_t): uint8# ## *# ## @brief Wipe protocols structure members previously allocated by# ## xcb_icccm_get_wm_protocols_reply().# ## @param protocols protocols structure whose members is going to be freed.# ### proc xcb_icccm_get_wm_protocols_reply_wipe*(# protocols: ptr xcb_icccm_get_wm_protocols_reply_t)# ## *# ## @}# ### ## Copyright (C) 2007 Bart Massey# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### ## *# ## @defgroup xcb__image_t XCB Image Functions# ### ## These are functions used to create and manipulate X images.# ### ## The X image format we use is specific to this software,# ## which is probably a bug; it represents an intermediate# ## position between the wire format used by the X GetImage# ## and PutImage requests and standard formats like PBM. An# ## image consists of a header of type @ref xcb_image_t# ## describing the properties of the image, together with a# ## pointer to the image data itself.# ### ## X wire images come in three formats. An xy-bitmap is a# ## bit-packed format that will be expanded to a two-color# ## pixmap using a GC when sent over the wire by PutImage.# ## An xy-pixmap is one or more bit-planes, each in the same# ## format as xy-bitmap. A z-pixmap is a more conventional# ## pixmap representation, with each pixel packed into a# ## word. Pixmaps are sent and received over the wire only# ## to/from drawables of their depth.# ### ## Each X server defines, for each depth and format,# ## properties of images in that format that are sent and# ## received on the wire. We refer to this as a "native"# ## image for a given X server. It is not uncommon to want# ## to work with non-native images on the client side, or to# ## convert between the native images of different servers.# ### ## This library provides several things. Facilities for# ## creating and destroying images are, of course, provided.# ## Wrappers for xcb_get_image() and xcb_put_image() are# ## provided; these utilize the image header to simplify the# ## interface. Routines for getting and putting image pixels# ## are provided: both a generic form that works with# ## arbitrary images, and fastpath forms for some common# ## cases. Conversion routines are provided for X images;# ## these routines have been fairly well optimized for the# ## common cases, and should run fast even on older hardware.# ## A routine analogous to Xlib's XCreate*FromBitmapData() is# ## provided for creating X images from xbm-format data; this# ## routine is in this library only because it is a trivial# ## use case for the library.# ### ## @{# ### ## *# ## @struct xcb_image_t# ## A structure that describes an xcb_image_t.# ### type# xcb_image_t* {.bycopy.} = object# width*: uint16 ## *< Width in pixels, excluding pads etc.# height*: uint16 ## *< Height in pixels.# format*: xcb_image_format_t ## *< Format.# scanline_pad*: uint8 ## *< Right pad in bits. Valid pads# ## are 8, 16, 32.# ### depth*: uint8 ## *< Depth in bits. Valid depths# ## are 1, 4, 8, 16, 24 for z format,# ## 1 for xy-bitmap-format, anything# ## for xy-pixmap-format.# ### bpp*: uint8 ## *< Storage per pixel in bits.# ## Must be >= depth. Valid bpp# ## are 1, 4, 8, 16, 24, 32 for z# ## format, 1 for xy-bitmap format,# ## anything for xy-pixmap-format.# ### unit*: uint8 ## *< Scanline unit in bits for# ## xy formats and for bpp == 1,# ## in which case valid scanline# ## units are 8, 16, 32. Otherwise,# ## will be max(8, bpp). Must be >= bpp.# ### plane_mask*: uint32 ## *< When format is# ## xy-pixmap and depth ># ## 1, this says which# ## planes are "valid" in# ## some vague sense.# ## Currently used only# ## by xcb_image_get/put_pixel(),# ## and set only by# ## xcb_image_get().# ### byte_order*: xcb_image_order_t ## *< Component byte order# ## for z-pixmap, byte# ## order of scanline unit# ## for xy-bitmap and# ## xy-pixmap. Nybble# ## order for z-pixmap# ## when bpp == 4.# ### bit_order*: xcb_image_order_t ## *< Bit order of# ## scanline unit for# ## xy-bitmap and# ## xy-pixmap.# ### stride*: uint32 ## *< Bytes per image row.# ## Computable from other# ## data, but cached for# ## convenience/performance.# ### size*: uint32 ## *< Size of image data in bytes.# ## Computable from other# ## data, but cached for# ## convenience/performance.# ### base*: pointer ## *< Malloced block of storage that# ## will be freed by# ## @ref xcb_image_destroy() if non-null.# ### data*: ptr uint8 ## *< The actual image.# ## *# ## @struct xcb_shm_segment_info_t# ## A structure that stores the informations needed by the MIT Shm# ## Extension.# ### type# xcb_shm_segment_info_t* {.bycopy.} = object# shmseg*: xcb_shm_seg_t# shmid*: uint32# shmaddr*: ptr uint8# ## *# ## Update the cached data of an image.# ## @param image The image.# ### ## An image's size and stride, among other things, are# ## cached in its structure. This function recomputes those# ## cached values for the given image.# ## @ingroup xcb__image_t# ### proc xcb_image_annotate*(image: ptr xcb_image_t)# ## *# ## Create a new image.# ## @param width The width of the image, in pixels.# ## @param height The height of the image, in pixels.# ## @param format The format of the image.# ## @param xpad The scanline pad of the image.# ## @param depth The depth of the image.# ## @param bpp The depth of the image storage.# ## @param unit The unit of image representation, in bits.# ## @param byte_order The byte order of the image.# ## @param bit_order The bit order of the image.# ## @param base The base address of malloced image data.# ## @param bytes The size in bytes of the storage pointed to by base.# ## If base == 0 and bytes == ~0 and data == 0 on# ## entry, no storage will be auto-allocated.# ## @param data The image data. If data is null and bytes != ~0, then# ## an attempt will be made to fill in data; from# ## base if it is non-null (and bytes is large enough), else# ## by mallocing sufficient storage and filling in base.# ## @return The new image.# ### ## This function allocates the memory needed for an @ref xcb_image_t structure# ## with the given properties. See the description of xcb_image_t for details.# ## This function initializes and returns a pointer to the# ## xcb_image_t structure. It may try to allocate or reserve data for the# ## structure, depending on how @p base, @p bytes and @p data are set.# ### ## The image must be destroyed with xcb_image_destroy().# ## @ingroup xcb__image_t# ### proc xcb_image_create*(width: uint16; height: uint16; format: xcb_image_format_t;# xpad: uint8; depth: uint8; bpp: uint8; unit: uint8;# byte_order: xcb_image_order_t; bit_order: xcb_image_order_t;# base: pointer; bytes: uint32; data: ptr uint8): ptr xcb_image_t# ## *# ## Create a new image in connection-native format.# ## @param c The connection.# ## @param width The width of the image, in pixels.# ## @param height The height of the image, in pixels.# ## @param format The format of the image.# ## @param depth The depth of the image.# ## @param base The base address of malloced image data.# ## @param bytes The size in bytes of the storage pointed to by base.# ## If base == 0 and bytes == ~0 and data == 0 on# ## entry, no storage will be auto-allocated.# ## @param data The image data. If data is null and bytes != ~0, then# ## an attempt will be made to fill in data; from# ## base if it is non-null (and bytes is large enough), else# ## by mallocing sufficient storage and filling in base.# ## @return The new image.# ### ## This function calls @ref xcb_image_create() with the given# ## properties, and with the remaining properties chosen# ## according to the "native format" with the given# ## properties on the current connection.# ### ## It is usual to use this rather# ## than calling xcb_image_create() directly.# ## @ingroup xcb__image_t# ### proc xcb_image_create_native*(c: ptr xcb_connection_t; width: uint16;# height: uint16; format: xcb_image_format_t;# depth: uint8; base: pointer; bytes: uint32;# data: ptr uint8): ptr xcb_image_t# ## *# ## Destroy an image.# ## @param image The image to be destroyed.# ### ## This function frees the memory associated with the @p image# ## parameter. If its base pointer is non-null, it frees# ## that also.# ## @ingroup xcb__image_t# ### proc xcb_image_destroy*(image: ptr xcb_image_t)# ## *# ## Get an image from the X server.# ## @param conn The connection to the X server.# ## @param draw The drawable to get the image from.# ## @param x The x coordinate in pixels, relative to the origin of the# ## drawable and defining the upper-left corner of the rectangle.# ## @param y The y coordinate in pixels, relative to the origin of the# ## drawable and defining the upper-left corner of the rectangle.# ## @param width The width of the subimage in pixels.# ## @param height The height of the subimage in pixels.# ## @param plane_mask The plane mask. See the protocol document for details.# ## @param format The format of the image.# ## @return The subimage of @p draw defined by @p x, @p y, @p w, @p h.# ### ### ## This function returns a new image taken from the# ## given drawable @p draw.# ## The image will be in connection native format. If the @p format# ## is xy-bitmap and the @p plane_mask masks bit planes out, those# ## bit planes will be made part of the returned image anyway,# ## by zero-filling them; this will require a fresh memory allocation# ## and some copying. Otherwise, the resulting image will use the# ## xcb_get_image_reply() record as its backing store.# ### ## If a problem occurs, the function returns null.# ## @ingroup xcb__image_t# ### proc xcb_image_get*(conn: ptr xcb_connection_t; draw: xcb_drawable_t; x: int16;# y: int16; width: uint16; height: uint16;# plane_mask: uint32; format: xcb_image_format_t): ptr xcb_image_t# ## *# ## Put an image onto the X server.# ## @param conn The connection to the X server.# ## @param draw The draw you get the image from.# ## @param gc The graphic context.# ## @param image The image you want to combine with the rectangle.# ## @param x The x coordinate, which is relative to the origin of the# ## drawable and defines the x coordinate of the upper-left corner of the# ## rectangle.# ## @param y The y coordinate, which is relative to the origin of the# ## drawable and defines the x coordinate of the upper-left corner of# ## the rectangle.# ## @param left_pad Notionally shift an xy-bitmap or xy-pixmap image# ## to the right some small amount, for some reason. XXX Not clear# ## this is currently supported correctly.# ## @return The cookie returned by xcb_put_image().# ### ## This function combines an image with a rectangle of the# ## specified drawable @p draw. The image must be in native# ## format for the connection. The image is drawn at the# ## specified location in the drawable. For the xy-bitmap# ## format, the foreground pixel in @p gc defines the source# ## for the one bits in the image, and the background pixel# ## defines the source for the zero bits. For xy-pixmap and# ## z-pixmap formats, the depth of the image must match the# ## depth of the drawable; the gc is ignored.# ### ## @ingroup xcb__image_t# ### proc xcb_image_put*(conn: ptr xcb_connection_t; draw: xcb_drawable_t;# gc: xcb_gcontext_t; image: ptr xcb_image_t; x: int16; y: int16;# left_pad: uint8): xcb_void_cookie_t# ## *# ## Check image for or convert image to native format.# ## @param c The connection to the X server.# ## @param image The image.# ## @param convert If 0, just check the image for native format.# ## Otherwise, actually convert it.# ## @return Null if the image is not in native format and can or will not# ## be converted. Otherwise, the native format image.# ### ## Each X display has its own "native format" for images of a given# ## format and depth. This function either checks whether the given# ## @p image is in native format for the given connection @p c, or# ## actually tries to convert the image to native format, depending# ## on whether @p convert is true or false.# ### ## When @p convert is true, and the image is not in native format# ## but can be converted, it will be, and a pointer to the new image# ## will be returned. The image passed in will be unharmed in this# ## case; it is the caller's responsibility to check that the returned# ## pointer is different and to dispose of the old image if desired.# ## @ingroup xcb__image_t# ### proc xcb_image_native*(c: ptr xcb_connection_t; image: ptr xcb_image_t; convert: cint): ptr xcb_image_t# ## *# ## Put a pixel to an image.# ## @param image The image.# ## @param x The x coordinate of the pixel.# ## @param y The y coordinate of the pixel.# ## @param pixel The new pixel value.# ### ## This function overwrites the pixel in the given @p image with the# ## specified @p pixel value (in client format). The image must contain the @p x# ## and @p y coordinates, as no clipping is done. This function honors# ## the plane-mask for xy-pixmap images.# ## @ingroup xcb__image_t# ### proc xcb_image_put_pixel*(image: ptr xcb_image_t; x: uint32; y: uint32;# pixel: uint32)# ## *# ## Get a pixel from an image.# ## @param image The image.# ## @param x The x coordinate of the pixel.# ## @param y The y coordinate of the pixel.# ## @return The pixel value.# ### ## This function retrieves a pixel from the given @p image.# ## The image must contain the @p x# ## and @p y coordinates, as no clipping is done. This function honors# ## the plane-mask for xy-pixmap images.# ## @ingroup xcb__image_t# ### proc xcb_image_get_pixel*(image: ptr xcb_image_t; x: uint32; y: uint32): uint32# ## *# ## Convert an image to a new format.# ## @param src Source image.# ## @param dst Destination image.# ## @return The @p dst image, or null on error.# ### ## This function tries to convert the image data of the @p# ## src image to the format implied by the @p dst image,# ## overwriting the current destination image data.# ## The source and destination must have the same# ## width, height, and depth. When the source and destination# ## are already the same format, a simple copy is done. Otherwise,# ## when the destination has the same bits-per-pixel/scanline-unit# ## as the source, an optimized copy routine (thanks to Keith Packard)# ## is used for the conversion. Otherwise, the copy is done the# ## slow, slow way with @ref xcb_image_get_pixel() and# ## @ref xcb_image_put_pixel() calls.# ## @ingroup xcb__image_t# ### proc xcb_image_convert*(src: ptr xcb_image_t; dst: ptr xcb_image_t): ptr xcb_image_t# ## *# ## Extract a subimage of an image.# ## @param image Source image.# ## @param x X coordinate of subimage.# ## @param y Y coordinate of subimage.# ## @param width Width of subimage.# ## @param height Height of subimage.# ## @param base Base of memory allocation.# ## @param bytes Size of base allocation.# ## @param data Memory allocation.# ## @return The subimage, or null on error.# ### ## Given an image, this function extracts the subimage at the# ## given coordinates. The requested subimage must be entirely# ## contained in the source @p image. The resulting image will have the same# ## general image parameters as the source image. The @p base, @p bytes,# ## and @p data arguments are passed to @ref xcb_create_image() unaltered# ## to create the destination image---see its documentation for details.# ### ## @ingroup xcb__image_t# ### proc xcb_image_subimage*(image: ptr xcb_image_t; x: uint32; y: uint32;# width: uint32; height: uint32; base: pointer;# bytes: uint32; data: ptr uint8): ptr xcb_image_t# ### ## Shm stuff# ### ## *# ## Put the data of an xcb_image_t onto a drawable using the MIT Shm# ## Extension.# ## @param conn The connection to the X server.# ## @param draw The draw you get the image from.# ## @param gc The graphic context.# ## @param image The image you want to combine with the rectangle.# ## @param shminfo A @ref xcb_shm_segment_info_t structure.# ## @param src_x The offset in x from the left edge of the image# ## defined by the xcb_image_t structure.# ## @param src_y The offset in y from the left edge of the image# ## defined by the xcb_image_t structure.# ## @param dest_x The x coordinate, which is relative to the origin of the# ## drawable and defines the x coordinate of the upper-left corner of the# ## rectangle.# ## @param dest_y The y coordinate, which is relative to the origin of the# ## drawable and defines the x coordinate of the upper-left corner of# ## the rectangle.# ## @param src_width The width of the subimage, in pixels.# ## @param src_height The height of the subimage, in pixels.# ## @param send_event Indicates whether or not a completion event# ## should occur when the image write is complete.# ## @return a pointer to the source image if no problem occurs, otherwise 0.# ### ## This function combines an image in memory with a shape of the# ## specified drawable. The section of the image defined by the @p x, @p y,# ## @p width, and @p height arguments is drawn on the specified part of# ## the drawable. If XYBitmap format is used, the depth must be# ## one, or a``BadMatch'' error results. The foreground pixel in the# ## Graphic Context @p gc defines the source for the one bits in the# ## image, and the background pixel defines the source for the zero# ## bits. For XYPixmap and ZPixmap, the depth must match the depth of# ## the drawable, or a ``BadMatch'' error results.# ### ## @ingroup xcb__image_t# ### proc xcb_image_shm_put*(conn: ptr xcb_connection_t; draw: xcb_drawable_t;# gc: xcb_gcontext_t; image: ptr xcb_image_t;# shminfo: xcb_shm_segment_info_t; src_x: int16;# src_y: int16; dest_x: int16; dest_y: int16;# src_width: uint16; src_height: uint16;# send_event: uint8): ptr xcb_image_t# ## *# ## Read image data into a shared memory xcb_image_t.# ## @param conn The connection to the X server.# ## @param draw The draw you get the image from.# ## @param image The image you want to combine with the rectangle.# ## @param shminfo A @ref xcb_shm_segment_info_t structure.# ## @param x The x coordinate, which are relative to the origin of the# ## drawable and define the upper-left corner of the rectangle.# ## @param y The y coordinate, which are relative to the origin of the# ## drawable and define the upper-left corner of the rectangle.# ## @param plane_mask The plane mask.# ## @return The subimage of @p draw defined by @p x, @p y, @p w, @p h.# ### ## This function reads image data into a shared memory xcb_image_t where# ## @p conn is the connection to the X server, @p draw is the source# ## drawable, @p image is the destination xcb_image_t, @p x and @p y are offsets# ## within the drawable, and @p plane_mask defines which planes are to be# ## read.# ### ## If a problem occurs, the function returns @c 0. It returns 1# ## otherwise.# ## @ingroup xcb__image_t# ### proc xcb_image_shm_get*(conn: ptr xcb_connection_t; draw: xcb_drawable_t;# image: ptr xcb_image_t; shminfo: xcb_shm_segment_info_t;# x: int16; y: int16; plane_mask: uint32): cint# ## *# ## Create an image from user-supplied bitmap data.# ## @param data Image data in packed bitmap format.# ## @param width Width in bits of image data.# ## @param height Height in bits of image data.# ## @return The image constructed from the image data, or 0 on error.# ### ## This function creates an image from the user-supplied# ## bitmap @p data. The bitmap data is assumed to be in# ## xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad).# ## @ingroup xcb__image_t# ### proc xcb_image_create_from_bitmap_data*(data: ptr uint8; width: uint32;# height: uint32): ptr xcb_image_t# ## *# ## Create a pixmap from user-supplied bitmap data.# ## @param display The connection to the X server.# ## @param d The parent drawable for the pixmap.# ## @param data Image data in packed bitmap format.# ## @param width Width in bits of image data.# ## @param height Height in bits of image data.# ## @param depth Depth of the desired pixmap.# ## @param fg Pixel for one-bits of pixmaps with depth larger than one.# ## @param bg Pixel for zero-bits of pixmaps with depth larger than one.# ## @param gcp If this pointer is non-null, the GC created to# ## fill in the pixmap is stored here; it will have its foreground# ## and background set to the supplied value. Otherwise, the GC# ## will be freed.# ## @return The pixmap constructed from the image data, or 0 on error.# ### ## This function creates a pixmap from the user-supplied# ## bitmap @p data. The bitmap data is assumed to be in# ## xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad).# ## If @p depth is greater than 1, the# ## bitmap will be expanded to a pixmap using the given# ## foreground and background pixels @p fg and @p bg.# ## @ingroup xcb__image_t# ### proc xcb_create_pixmap_from_bitmap_data*(display: ptr xcb_connection_t;# d: xcb_drawable_t; data: ptr uint8;# width: uint32; height: uint32;# depth: uint32; fg: uint32; bg: uint32;# gcp: ptr xcb_gcontext_t): xcb_pixmap_t# ## *# ## @}# ### type# xcb_key_symbols_t* = _XCBKeySymbols# proc xcb_key_symbols_alloc*(c: ptr xcb_connection_t): ptr xcb_key_symbols_t# proc xcb_key_symbols_free*(syms: ptr xcb_key_symbols_t)# proc xcb_key_symbols_get_keysym*(syms: ptr xcb_key_symbols_t;# keycode: xcb_keycode_t; col: cint): xcb_keysym_t# ## *# ## @brief Get the keycodes attached to a keysyms.# ## There can be several value, so what is returned is an array of keycode# ## terminated by XCB_NO_SYMBOL. You are responsible to free it.# ## Be aware that this function can be slow. It will convert all# ## combinations of all available keycodes to keysyms to find the ones that# ## match.# ## @param syms Key symbols.# ## @param keysym The keysym to look for.# ## @return A XCB_NO_SYMBOL terminated array of keycode, or NULL if nothing is found.# ### proc xcb_key_symbols_get_keycode*(syms: ptr xcb_key_symbols_t; keysym: xcb_keysym_t): ptr xcb_keycode_t# proc xcb_key_press_lookup_keysym*(syms: ptr xcb_key_symbols_t;# event: ptr xcb_key_press_event_t; col: cint): xcb_keysym_t# proc xcb_key_release_lookup_keysym*(syms: ptr xcb_key_symbols_t;# event: ptr xcb_key_release_event_t; col: cint): xcb_keysym_t# proc xcb_refresh_keyboard_mapping*(syms: ptr xcb_key_symbols_t;# event: ptr xcb_mapping_notify_event_t): cint# ## TODO: need XLookupString equivalent# ## Tests for classes of symbols# proc xcb_is_keypad_key*(keysym: xcb_keysym_t): cint# proc xcb_is_private_keypad_key*(keysym: xcb_keysym_t): cint# proc xcb_is_cursor_key*(keysym: xcb_keysym_t): cint# proc xcb_is_pf_key*(keysym: xcb_keysym_t): cint# proc xcb_is_function_key*(keysym: xcb_keysym_t): cint# proc xcb_is_misc_function_key*(keysym: xcb_keysym_t): cint# proc xcb_is_modifier_key*(keysym: xcb_keysym_t): cint# ## Copyright (C) 2007 Bart Massey# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### when not defined(BUILD):# ## *# ## XCB Image fast pixel ops.# ### ## Fast inline versions of xcb_image_get_pixel() and# ## xcb_image_put_pixel() for various common cases.# ## The naming convention is xcb_image_put_pixel_FUB()# ## where F is the format and is either XY for bitmaps# ## or Z for pixmaps, U is the bitmap unit size or pixmap# ## bits-per-pixel, and B is the endianness (if needed)# ## and is either M for most-significant-first or L for# ## least-significant-first. Note that no checking# ## is done on the arguments to these routines---caller beware.# ## Also note that the pixel type is chosen to be appropriate# ## to the unit; bitmaps use int and pixmaps use the appropriate# ## size of unsigned.# ## @ingroup xcb__image_t# ### proc xcb_image_put_pixel_XY32M*(image: ptr xcb_image_t; x: uint32; y: uint32;# pixel: cint) =# var unit: uint32 = (x shr 3) and not xcb_mask(2)# var byte: uint32 = xcb_mask(2) - ((x shr 3) and xcb_mask(2))# var bit: uint32 = xcb_mask(3) - (x and xcb_mask(3))# var m: uint8 = 1 shl bit# var p: uint8 = pixel shl bit# var bp: ptr uint8 = image.data + (y * image.stride) + (unit or byte)# bp[] = (bp[] and not m) or p# proc xcb_image_put_pixel_XY32L*(image: ptr xcb_image_t; x: uint32; y: uint32;# pixel: cint) =# var bit: uint32 = x and xcb_mask(3)# var m: uint8 = 1 shl bit# var p: uint8 = pixel shl bit# var bp: ptr uint8 = image.data + (y * image.stride) + (x shr 3)# bp[] = (bp[] and not m) or p# proc xcb_image_get_pixel_XY32M*(image: ptr xcb_image_t; x: uint32; y: uint32): cint =# var unit: uint32 = (x shr 3) and not xcb_mask(2)# var byte: uint32 = xcb_mask(2) - ((x shr 3) and xcb_mask(2))# var bit: uint32 = xcb_mask(3) - (x and xcb_mask(3))# var bp: ptr uint8 = image.data + (y * image.stride) + (unit or byte)# return (bp[] shr bit) and 1# proc xcb_image_get_pixel_XY32L*(image: ptr xcb_image_t; x: uint32; y: uint32): cint =# var bit: uint32 = x and xcb_mask(3)# var bp: ptr uint8 = image.data + (y * image.stride) + (x shr 3)# return (bp[] shr bit) and 1# proc xcb_image_put_pixel_Z8*(image: ptr xcb_image_t; x: uint32; y: uint32;# pixel: uint8) =# image.data[x + y * image.stride] = pixel# proc xcb_image_get_pixel_Z8*(image: ptr xcb_image_t; x: uint32; y: uint32): uint8 =# return image.data[x + y * image.stride]# proc xcb_image_put_pixel_Z32M*(image: ptr xcb_image_t; x: uint32; y: uint32;# pixel: uint32) =# var row: ptr uint8 = image.data + (y * image.stride)# row[x shl 2] = pixel shr 24# row[(x shl 2) + 1] = pixel shr 16# row[(x shl 2) + 2] = pixel shr 8# row[(x shl 2) + 3] = pixel# proc xcb_image_put_pixel_Z32L*(image: ptr xcb_image_t; x: uint32; y: uint32;# pixel: uint32) =# var row: ptr uint8 = image.data + (y * image.stride)# row[x shl 2] = pixel# row[(x shl 2) + 1] = pixel shr 8# row[(x shl 2) + 2] = pixel shr 16# row[(x shl 2) + 3] = pixel shr 24# proc xcb_image_get_pixel_Z32M*(image: ptr xcb_image_t; x: uint32; y: uint32): uint32 =# var row: ptr uint8 = image.data + (y * image.stride)# var pixel: uint32 = row[x shl 2] shl 24# pixel = pixel or row[(x shl 2) + 1] shl 16# pixel = pixel or row[(x shl 2) + 2] shl 8# return pixel or row[(x shl 2) + 3]# proc xcb_image_get_pixel_Z32L*(image: ptr xcb_image_t; x: uint32; y: uint32): uint32 =# var row: ptr uint8 = image.data + (y * image.stride)# var pixel: uint32 = row[x shl 2]# pixel = pixel or row[(x shl 2) + 1] shl 8# pixel = pixel or row[(x shl 2) + 2] shl 16# return pixel or row[(x shl 2) + 3] shl 24# ## Copyright © 2006 Jamey Sharp.# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### type# xcb_pict_format_t* = enum# XCB_PICT_FORMAT_ID = (1 shl 0), XCB_PICT_FORMAT_TYPE = (1 shl 1),# XCB_PICT_FORMAT_DEPTH = (1 shl 2), XCB_PICT_FORMAT_RED = (1 shl 3),# XCB_PICT_FORMAT_RED_MASK = (1 shl 4), XCB_PICT_FORMAT_GREEN = (1 shl 5),# XCB_PICT_FORMAT_GREEN_MASK = (1 shl 6), XCB_PICT_FORMAT_BLUE = (1 shl 7),# XCB_PICT_FORMAT_BLUE_MASK = (1 shl 8), XCB_PICT_FORMAT_ALPHA = (1 shl 9),# XCB_PICT_FORMAT_ALPHA_MASK = (1 shl 10), XCB_PICT_FORMAT_COLORMAP = (1 shl 11)# xcb_pict_standard_t* = enum# XCB_PICT_STANDARD_ARGB_32, XCB_PICT_STANDARD_RGB_24, XCB_PICT_STANDARD_A_8,# XCB_PICT_STANDARD_A_4, XCB_PICT_STANDARD_A_1# proc xcb_render_util_find_visual_format*(formats: ptr xcb_render_query_pict_formats_reply_t;# visual: xcb_visualid_t): ptr xcb_render_pictvisual_t# proc xcb_render_util_find_format*(formats: ptr xcb_render_query_pict_formats_reply_t;# mask: culong;# ptemplate: ptr xcb_render_pictforminfo_t;# count: cint): ptr xcb_render_pictforminfo_t# proc xcb_render_util_find_standard_format*(# formats: ptr xcb_render_query_pict_formats_reply_t; format: xcb_pict_standard_t): ptr xcb_render_pictforminfo_t# proc xcb_render_util_query_version*(c: ptr xcb_connection_t): ptr xcb_render_query_version_reply_t# proc xcb_render_util_query_formats*(c: ptr xcb_connection_t): ptr xcb_render_query_pict_formats_reply_t# proc xcb_render_util_disconnect*(c: ptr xcb_connection_t): cint# ## wrappers for xcb_render_composite_glyphs_8/16/32# proc xcb_render_util_composite_text_stream*(# initial_glyphset: xcb_render_glyphset_t; total_glyphs: uint32;# total_glyphset_changes: uint32): ptr xcb_render_util_composite_text_stream_t# proc xcb_render_util_glyphs_8*(stream: ptr xcb_render_util_composite_text_stream_t;# dx: int16; dy: int16; count: uint32;# glyphs: ptr uint8)# proc xcb_render_util_glyphs_16*(stream: ptr xcb_render_util_composite_text_stream_t;# dx: int16; dy: int16; count: uint32;# glyphs: ptr uint16)# proc xcb_render_util_glyphs_32*(stream: ptr xcb_render_util_composite_text_stream_t;# dx: int16; dy: int16; count: uint32;# glyphs: ptr uint32)# proc xcb_render_util_change_glyphset*(stream: ptr xcb_render_util_composite_text_stream_t;# glyphset: xcb_render_glyphset_t)# proc xcb_render_util_composite_text*(xc: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t;# dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t;# src_x: int16; src_y: int16; stream: ptr xcb_render_util_composite_text_stream_t): xcb_void_cookie_t# proc xcb_render_util_composite_text_checked*(xc: ptr xcb_connection_t; op: uint8;# src: xcb_render_picture_t; dst: xcb_render_picture_t;# mask_format: xcb_render_pictformat_t; src_x: int16; src_y: int16;# stream: ptr xcb_render_util_composite_text_stream_t): xcb_void_cookie_t# proc xcb_render_util_composite_text_free*(# stream: ptr xcb_render_util_composite_text_stream_t)# ### ## vim:ts=4:sw=4:expandtab# ### ## Copyright © 2016 Ingo Bürk# ### ## Permission is hereby granted, free of charge, to any person obtaining a# ## copy of this software and associated documentation files (the "Software"),# ## to deal in the Software without restriction, including without limitation# ## the rights to use, copy, modify, merge, publish, distribute, sublicense,# ## and/or sell copies of the Software, and to permit persons to whom the# ## Software is furnished to do so, subject to the following conditions:# ### ## The above copyright notice and this permission notice shall be included in# ## all copies or substantial portions of the Software.# ### ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR# ## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# ## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE# ## AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN# ## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN# ## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.# ### ## Except as contained in this notice, the names of the authors or their# ## institutions shall not be used in advertising or otherwise to promote the# ## sale, use or other dealings in this Software without prior written# ## authorization from the authors.# ### ### ## *# ## @defgroup xcb_xrm_database_t XCB XRM Functions# ### ## These functions are the xcb equivalent of the Xrm* function family in Xlib.# ## They allow the parsing and matching of X resources as well as some utility# ## functions.# ### ## Here is an example of how this library can be used to retrieve a# ## user-configured resource:# ## @code# ## xcb_connection_t *conn = xcb_connect(NULL, &screennr);# ## if (conn == NULL || xcb_connection_has_error(conn))# ## err(EXIT_FAILURE, "Could not connect to the X server.");# ### ## xcb_xrm_database_t *database = xcb_xrm_database_from_default(conn);# ## if (database == NULL)# ## err(EXIT_FAILURE, "Could not open database");# ### ## char *value;# ## if (xcb_xrm_resource_get_string(database, "Xft.dpi", NULL, &value) >= 0) {# ## fprintf(stdout, "Xft.dpi: %s\n", value);# ## free(value);# ## }# ### ## xcb_xrm_database_free(database);# ## xcb_disconnect(conn);# ## @endcode# ### ## @{# ### ## *# ## @struct xcb_xrm_database_t# ## Reference to a database.# ### ## The database can be loaded in different ways, e.g., from the# ## RESOURCE_MANAGER property by using @ref# ## xcb_xrm_database_from_resource_manager (). All queries for a resource go# ## against a specific database. A database must always be free'd by using @ref# ## xcb_xrm_database_free ().# ### ## Note that a database is not thread-safe, i.e., multiple threads should not# ## operate on the same database instance. This is especially true for write# ## operations on the database. However, you can use this library in a# ## multi-threaded application as long as the database is thread-local.# ### ## *# ## Creates a database similarly to XGetDefault(). For typical applications,# ## this is the recommended way to construct the resource database.# ### ## The database is created as follows:# ## - If the RESOURCE_MANAGER property exists on the root window of# ## screen 0, the database is constructed from it using @ref# ## xcb_xrm_database_from_resource_manager().# ## - Otherwise, if $HOME/.Xresources exists, the database is constructed from# ## it using @ref xcb_xrm_database_from_file().# ## - Otherwise, if $HOME/.Xdefaults exists, the database is constructed from# ## it using @ref xcb_xrm_database_from_file().# ## - If the environment variable XENVIRONMENT is set, the file specified by# ## it is loaded using @ref xcb_xrm_database_from_file and then combined with# ## the database using @ref xcb_xrm_database_combine() with override set to# ## true.# ## If XENVIRONMENT is not specified, the same is done with# ## $HOME/.Xdefaults-$HOSTNAME, wherein $HOSTNAME is determined by# ## gethostname(2).# ### ## This represents the way XGetDefault() creates the database for the most# ## part, but is not exactly the same. In particular, XGetDefault() does not# ## consider $HOME/.Xresources.# ### ## @param conn XCB connection.# ## @returns The constructed database. Can return NULL, e.g., if the screen# ## cannot be determined.# ### proc xcb_xrm_database_from_default*(conn: ptr xcb_connection_t): ptr xcb_xrm_database_t# ## *# ## Loads the RESOURCE_MANAGER property and creates a database with its# ## contents. If the database could not be created, this function will return# ## NULL.# ### ## @param conn A working XCB connection.# ## @param screen The xcb_screen_t* screen to use.# ## @returns The database described by the RESOURCE_MANAGER property.# ### ## @ingroup xcb_xrm_database_t# ### proc xcb_xrm_database_from_resource_manager*(conn: ptr xcb_connection_t;# screen: ptr xcb_screen_t): ptr xcb_xrm_database_t# ## *# ## Creates a database from the given string.# ## If the database could not be created, this function will return NULL.# ### ## @param str The resource string.# ## @returns The database described by the resource string.# ### ## @ingroup xcb_xrm_database_t# ### proc xcb_xrm_database_from_string*(str: cstring): ptr xcb_xrm_database_t# ## *# ## Creates a database from a given file.# ## If the file cannot be found or opened, NULL is returned.# ### ## @param filename Valid filename.# ## @returns The database described by the file's contents.# ### proc xcb_xrm_database_from_file*(filename: cstring): ptr xcb_xrm_database_t# ## *# ## Returns a string representation of a database.# ## The string is owned by the caller and must be free'd.# ### ## @param database The database to return in string format.# ## @returns A string representation of the specified database.# ### proc xcb_xrm_database_to_string*(database: ptr xcb_xrm_database_t): cstring# ## *# ## Combines two databases.# ## The entries from the source database are stored in the target database. If# ## the same specifier already exists in the target database, the value will be# ## overridden if override is set; otherwise, the value is discarded.# ## If NULL is passed for target_db, a new and empty database will be created# ## and returned in the pointer.# ### ## @param source_db Source database.# ## @param target_db Target database.# ## @param override If true, entries from the source database override entries# ## in the target database using the same resource specifier.# ### proc xcb_xrm_database_combine*(source_db: ptr xcb_xrm_database_t;# target_db: ptr ptr xcb_xrm_database_t; override: bool)# ## *# ## Inserts a new resource into the database.# ## If the resource already exists, the current value will be replaced.# ## If NULL is passed for database, a new and empty database will be created and# ## returned in the pointer.# ### ## Note that this is not the equivalent of @ref# ## xcb_xrm_database_put_resource_line when concatenating the resource name and# ## value with a colon. For example, if the value starts with a leading space,# ## this must (and will) be replaced with the special '\ ' sequence.# ### ## @param database The database to modify.# ## @param resource The fully qualified or partial resource specifier.# ## @param value The value of the resource.# ### proc xcb_xrm_database_put_resource*(database: ptr ptr xcb_xrm_database_t;# resource: cstring; value: cstring)# ## *# ## Inserts a new resource into the database.# ## If the resource already exists, the current value will be replaced.# ## If NULL is passed for database, a new and empty database will be created and# ## returned in the pointer.# ### ## @param database The database to modify.# ## @param line The complete resource specification to insert.# ### proc xcb_xrm_database_put_resource_line*(database: ptr ptr xcb_xrm_database_t;# line: cstring)# ## *# ## Destroys the given database.# ### ## @param database The database to destroy.# ### ## @ingroup xcb_xrm_database_t# ### proc xcb_xrm_database_free*(database: ptr xcb_xrm_database_t)# ## *# ## Find the string value of a resource.# ### ## Note that the string is owned by the caller and must be free'd.# ### ## @param database The database to query.# ## @param res_name The fully qualified resource name string.# ## @param res_class The fully qualified resource class string. This argument# ## may be left empty / NULL, but if given, it must contain the same number of# ## components as res_name.# ## @param out Out parameter to which the value will be written.# ## @returns 0 if the resource was found, a negative error code otherwise.# ### proc xcb_xrm_resource_get_string*(database: ptr xcb_xrm_database_t;# res_name: cstring; res_class: cstring;# `out`: cstringArray): cint# ## *# ## Find the long value of a resource.# ### ## @param database The database to query.# ## @param res_name The fully qualified resource name string.# ## @param res_class The fully qualified resource class string. This argument# ## may be left empty / NULL, but if given, it must contain the same number of# ## components as res_name.# ## @param out Out parameter to which the converted value will be written.# ## @returns 0 if the resource was found and converted, -1 if the resource was# ## found but could not be converted and -2 if the resource was not found.# ### proc xcb_xrm_resource_get_long*(database: ptr xcb_xrm_database_t; res_name: cstring;# res_class: cstring; `out`: ptr clong): cint# ## *# ## Find the bool value of a resource.# ### ## The conversion to a bool is done by applying the following steps in order:# ## - If the value can be converted to a long, return the truthiness of the# ## converted number.# ## - If the value is one of "true", "on" or "yes" (case-insensitive), return# ## true.# ## - If the value is one of "false", "off" or "no" (case-insensitive), return# ## false.# ### ## @param database The database to query.# ## @param res_name The fully qualified resource name string.# ## @param res_class The fully qualified resource class string. This argument# ## may be left empty / NULL, but if given, it must contain the same number of# ## components as res_name.# ## @param out Out parameter to which the converted value will be written.# ## @returns 0 if the resource was found and converted, -1 if the resource was# ## found but could not be converted and -2 if the resource was not found.# ### proc xcb_xrm_resource_get_bool*(database: ptr xcb_xrm_database_t; res_name: cstring;# res_class: cstring; `out`: ptr bool): cint# ## *# ## @}# ### ### ## This file generated automatically from xc_misc.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_XCMisc_API XCB XCMisc API# ## @brief XCMisc XCB Protocol Implementation.# ## @{# ### import# xcb# const# XCB_XCMISC_MAJOR_VERSION* = 1# XCB_XCMISC_MINOR_VERSION* = 1# var xcb_xc_misc_id*: xcb_extension_t# ## *# ## @brief xcb_xc_misc_get_version_cookie_t# ### type# xcb_xc_misc_get_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xc_misc_get_version.# const# XCB_XC_MISC_GET_VERSION* = 0# ## *# ## @brief xcb_xc_misc_get_version_request_t# ### type# xcb_xc_misc_get_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint16# client_minor_version*: uint16# ## *# ## @brief xcb_xc_misc_get_version_reply_t# ### type# xcb_xc_misc_get_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# server_major_version*: uint16# server_minor_version*: uint16# ## *# ## @brief xcb_xc_misc_get_xid_range_cookie_t# ### type# xcb_xc_misc_get_xid_range_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xc_misc_get_xid_range.# const# XCB_XC_MISC_GET_XID_RANGE* = 1# ## *# ## @brief xcb_xc_misc_get_xid_range_request_t# ### type# xcb_xc_misc_get_xid_range_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xc_misc_get_xid_range_reply_t# ### type# xcb_xc_misc_get_xid_range_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# start_id*: uint32# count*: uint32# ## *# ## @brief xcb_xc_misc_get_xid_list_cookie_t# ### type# xcb_xc_misc_get_xid_list_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xc_misc_get_xid_list.# const# XCB_XC_MISC_GET_XID_LIST* = 2# ## *# ## @brief xcb_xc_misc_get_xid_list_request_t# ### type# xcb_xc_misc_get_xid_list_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# count*: uint32# ## *# ## @brief xcb_xc_misc_get_xid_list_reply_t# ### type# xcb_xc_misc_get_xid_list_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# ids_len*: uint32# pad1*: array[20, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xc_misc_get_version*(c: ptr xcb_connection_t;# client_major_version: uint16;# client_minor_version: uint16): xcb_xc_misc_get_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xc_misc_get_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint16;# client_minor_version: uint16): xcb_xc_misc_get_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xc_misc_get_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xc_misc_get_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xc_misc_get_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xc_misc_get_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xc_misc_get_xid_range*(c: ptr xcb_connection_t): xcb_xc_misc_get_xid_range_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xc_misc_get_xid_range_unchecked*(c: ptr xcb_connection_t): xcb_xc_misc_get_xid_range_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xc_misc_get_xid_range_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xc_misc_get_xid_range_reply*(c: ptr xcb_connection_t; cookie: xcb_xc_misc_get_xid_range_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xc_misc_get_xid_range_reply_t# proc xcb_xc_misc_get_xid_list_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xc_misc_get_xid_list*(c: ptr xcb_connection_t; count: uint32): xcb_xc_misc_get_xid_list_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xc_misc_get_xid_list_unchecked*(c: ptr xcb_connection_t; count: uint32): xcb_xc_misc_get_xid_list_cookie_t# proc xcb_xc_misc_get_xid_list_ids*(R: ptr xcb_xc_misc_get_xid_list_reply_t): ptr uint32# proc xcb_xc_misc_get_xid_list_ids_length*(R: ptr xcb_xc_misc_get_xid_list_reply_t): cint# proc xcb_xc_misc_get_xid_list_ids_end*(R: ptr xcb_xc_misc_get_xid_list_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xc_misc_get_xid_list_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xc_misc_get_xid_list_reply*(c: ptr xcb_connection_t; cookie: xcb_xc_misc_get_xid_list_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xc_misc_get_xid_list_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xevie.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Xevie_API XCB Xevie API# ## @brief Xevie XCB Protocol Implementation.# ## @{# ### const# XCB_XEVIE_MAJOR_VERSION* = 1# XCB_XEVIE_MINOR_VERSION* = 0# var xcb_xevie_id*: xcb_extension_t# ## *# ## @brief xcb_xevie_query_version_cookie_t# ### type# xcb_xevie_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xevie_query_version.# const# XCB_XEVIE_QUERY_VERSION* = 0# ## *# ## @brief xcb_xevie_query_version_request_t# ### type# xcb_xevie_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint16# client_minor_version*: uint16# ## *# ## @brief xcb_xevie_query_version_reply_t# ### type# xcb_xevie_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# server_major_version*: uint16# server_minor_version*: uint16# pad1*: array[20, uint8]# ## *# ## @brief xcb_xevie_start_cookie_t# ### type# xcb_xevie_start_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xevie_start.# const# XCB_XEVIE_START* = 1# ## *# ## @brief xcb_xevie_start_request_t# ### type# xcb_xevie_start_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# ## *# ## @brief xcb_xevie_start_reply_t# ### type# xcb_xevie_start_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pad1*: array[24, uint8]# ## *# ## @brief xcb_xevie_end_cookie_t# ### type# xcb_xevie_end_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xevie_end.# const# XCB_XEVIE_END* = 2# ## *# ## @brief xcb_xevie_end_request_t# ### type# xcb_xevie_end_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cmap*: uint32# ## *# ## @brief xcb_xevie_end_reply_t# ### type# xcb_xevie_end_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pad1*: array[24, uint8]# xcb_xevie_datatype_t* = enum# XCB_XEVIE_DATATYPE_UNMODIFIED = 0, XCB_XEVIE_DATATYPE_MODIFIED = 1# ## *# ## @brief xcb_xevie_event_t# ### type# xcb_xevie_event_t* {.bycopy.} = object# pad0*: array[32, uint8]# ## *# ## @brief xcb_xevie_event_iterator_t# ### type# xcb_xevie_event_iterator_t* {.bycopy.} = object# data*: ptr xcb_xevie_event_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xevie_send_cookie_t# ### type# xcb_xevie_send_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xevie_send.# const# XCB_XEVIE_SEND* = 3# ## *# ## @brief xcb_xevie_send_request_t# ### type# xcb_xevie_send_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# event*: xcb_xevie_event_t# data_type*: uint32# pad0*: array[64, uint8]# ## *# ## @brief xcb_xevie_send_reply_t# ### type# xcb_xevie_send_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pad1*: array[24, uint8]# ## *# ## @brief xcb_xevie_select_input_cookie_t# ### type# xcb_xevie_select_input_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xevie_select_input.# const# XCB_XEVIE_SELECT_INPUT* = 4# ## *# ## @brief xcb_xevie_select_input_request_t# ### type# xcb_xevie_select_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# event_mask*: uint32# ## *# ## @brief xcb_xevie_select_input_reply_t# ### type# xcb_xevie_select_input_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pad1*: array[24, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xevie_query_version*(c: ptr xcb_connection_t;# client_major_version: uint16;# client_minor_version: uint16): xcb_xevie_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xevie_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint16;# client_minor_version: uint16): xcb_xevie_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xevie_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xevie_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xevie_start*(c: ptr xcb_connection_t; screen: uint32): xcb_xevie_start_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xevie_start_unchecked*(c: ptr xcb_connection_t; screen: uint32): xcb_xevie_start_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xevie_start_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xevie_start_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_start_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_start_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xevie_end*(c: ptr xcb_connection_t; cmap: uint32): xcb_xevie_end_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xevie_end_unchecked*(c: ptr xcb_connection_t; cmap: uint32): xcb_xevie_end_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xevie_end_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xevie_end_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_end_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_end_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xevie_event_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xevie_event_t)# ### proc xcb_xevie_event_next*(i: ptr xcb_xevie_event_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xevie_event_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xevie_event_end*(i: xcb_xevie_event_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xevie_send*(c: ptr xcb_connection_t; event: xcb_xevie_event_t;# data_type: uint32): xcb_xevie_send_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xevie_send_unchecked*(c: ptr xcb_connection_t; event: xcb_xevie_event_t;# data_type: uint32): xcb_xevie_send_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xevie_send_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xevie_send_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_send_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_send_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xevie_select_input*(c: ptr xcb_connection_t; event_mask: uint32): xcb_xevie_select_input_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xevie_select_input_unchecked*(c: ptr xcb_connection_t; event_mask: uint32): xcb_xevie_select_input_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xevie_select_input_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xevie_select_input_reply*(c: ptr xcb_connection_t; cookie: xcb_xevie_select_input_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xevie_select_input_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xf86dri.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_XF86Dri_API XCB XF86Dri API# ## @brief XF86Dri XCB Protocol Implementation.# ## @{# ### const# XCB_XF86DRI_MAJOR_VERSION* = 4# XCB_XF86DRI_MINOR_VERSION* = 1# var xcb_xf86dri_id*: xcb_extension_t# ## *# ## @brief xcb_xf86dri_drm_clip_rect_t# ### type# xcb_xf86dri_drm_clip_rect_t* {.bycopy.} = object# x1*: int16# y1*: int16# x2*: int16# x3*: int16# ## *# ## @brief xcb_xf86dri_drm_clip_rect_iterator_t# ### type# xcb_xf86dri_drm_clip_rect_iterator_t* {.bycopy.} = object# data*: ptr xcb_xf86dri_drm_clip_rect_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xf86dri_query_version_cookie_t# ### type# xcb_xf86dri_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_query_version.# const# XCB_XF86DRI_QUERY_VERSION* = 0# ## *# ## @brief xcb_xf86dri_query_version_request_t# ### type# xcb_xf86dri_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xf86dri_query_version_reply_t# ### type# xcb_xf86dri_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# dri_major_version*: uint16# dri_minor_version*: uint16# dri_minor_patch*: uint32# ## *# ## @brief xcb_xf86dri_query_direct_rendering_capable_cookie_t# ### type# xcb_xf86dri_query_direct_rendering_capable_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_query_direct_rendering_capable.# const# XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE* = 1# ## *# ## @brief xcb_xf86dri_query_direct_rendering_capable_request_t# ### type# xcb_xf86dri_query_direct_rendering_capable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# ## *# ## @brief xcb_xf86dri_query_direct_rendering_capable_reply_t# ### type# xcb_xf86dri_query_direct_rendering_capable_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# is_capable*: uint8# ## *# ## @brief xcb_xf86dri_open_connection_cookie_t# ### type# xcb_xf86dri_open_connection_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_open_connection.# const# XCB_XF86DRI_OPEN_CONNECTION* = 2# ## *# ## @brief xcb_xf86dri_open_connection_request_t# ### type# xcb_xf86dri_open_connection_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# ## *# ## @brief xcb_xf86dri_open_connection_reply_t# ### type# xcb_xf86dri_open_connection_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# sarea_handle_low*: uint32# sarea_handle_high*: uint32# bus_id_len*: uint32# pad1*: array[12, uint8]# ## * Opcode for xcb_xf86dri_close_connection.# const# XCB_XF86DRI_CLOSE_CONNECTION* = 3# ## *# ## @brief xcb_xf86dri_close_connection_request_t# ### type# xcb_xf86dri_close_connection_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# ## *# ## @brief xcb_xf86dri_get_client_driver_name_cookie_t# ### type# xcb_xf86dri_get_client_driver_name_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_get_client_driver_name.# const# XCB_XF86DRI_GET_CLIENT_DRIVER_NAME* = 4# ## *# ## @brief xcb_xf86dri_get_client_driver_name_request_t# ### type# xcb_xf86dri_get_client_driver_name_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# ## *# ## @brief xcb_xf86dri_get_client_driver_name_reply_t# ### type# xcb_xf86dri_get_client_driver_name_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# client_driver_major_version*: uint32# client_driver_minor_version*: uint32# client_driver_patch_version*: uint32# client_driver_name_len*: uint32# pad1*: array[8, uint8]# ## *# ## @brief xcb_xf86dri_create_context_cookie_t# ### type# xcb_xf86dri_create_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_create_context.# const# XCB_XF86DRI_CREATE_CONTEXT* = 5# ## *# ## @brief xcb_xf86dri_create_context_request_t# ### type# xcb_xf86dri_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# visual*: uint32# context*: uint32# ## *# ## @brief xcb_xf86dri_create_context_reply_t# ### type# xcb_xf86dri_create_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# hw_context*: uint32# ## * Opcode for xcb_xf86dri_destroy_context.# const# XCB_XF86DRI_DESTROY_CONTEXT* = 6# ## *# ## @brief xcb_xf86dri_destroy_context_request_t# ### type# xcb_xf86dri_destroy_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# context*: uint32# ## *# ## @brief xcb_xf86dri_create_drawable_cookie_t# ### type# xcb_xf86dri_create_drawable_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_create_drawable.# const# XCB_XF86DRI_CREATE_DRAWABLE* = 7# ## *# ## @brief xcb_xf86dri_create_drawable_request_t# ### type# xcb_xf86dri_create_drawable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# drawable*: uint32# ## *# ## @brief xcb_xf86dri_create_drawable_reply_t# ### type# xcb_xf86dri_create_drawable_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# hw_drawable_handle*: uint32# ## * Opcode for xcb_xf86dri_destroy_drawable.# const# XCB_XF86DRI_DESTROY_DRAWABLE* = 8# ## *# ## @brief xcb_xf86dri_destroy_drawable_request_t# ### type# xcb_xf86dri_destroy_drawable_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# drawable*: uint32# ## *# ## @brief xcb_xf86dri_get_drawable_info_cookie_t# ### type# xcb_xf86dri_get_drawable_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_get_drawable_info.# const# XCB_XF86DRI_GET_DRAWABLE_INFO* = 9# ## *# ## @brief xcb_xf86dri_get_drawable_info_request_t# ### type# xcb_xf86dri_get_drawable_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# drawable*: uint32# ## *# ## @brief xcb_xf86dri_get_drawable_info_reply_t# ### type# xcb_xf86dri_get_drawable_info_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# drawable_table_index*: uint32# drawable_table_stamp*: uint32# drawable_origin_X*: int16# drawable_origin_Y*: int16# drawable_size_W*: int16# drawable_size_H*: int16# num_clip_rects*: uint32# back_x*: int16# back_y*: int16# num_back_clip_rects*: uint32# ## *# ## @brief xcb_xf86dri_get_device_info_cookie_t# ### type# xcb_xf86dri_get_device_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_get_device_info.# const# XCB_XF86DRI_GET_DEVICE_INFO* = 10# ## *# ## @brief xcb_xf86dri_get_device_info_request_t# ### type# xcb_xf86dri_get_device_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# ## *# ## @brief xcb_xf86dri_get_device_info_reply_t# ### type# xcb_xf86dri_get_device_info_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# framebuffer_handle_low*: uint32# framebuffer_handle_high*: uint32# framebuffer_origin_offset*: uint32# framebuffer_size*: uint32# framebuffer_stride*: uint32# device_private_size*: uint32# ## *# ## @brief xcb_xf86dri_auth_connection_cookie_t# ### type# xcb_xf86dri_auth_connection_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xf86dri_auth_connection.# const# XCB_XF86DRI_AUTH_CONNECTION* = 11# ## *# ## @brief xcb_xf86dri_auth_connection_request_t# ### type# xcb_xf86dri_auth_connection_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# screen*: uint32# magic*: uint32# ## *# ## @brief xcb_xf86dri_auth_connection_reply_t# ### type# xcb_xf86dri_auth_connection_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# authenticated*: uint32# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xf86dri_drm_clip_rect_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xf86dri_drm_clip_rect_t)# ### proc xcb_xf86dri_drm_clip_rect_next*(i: ptr xcb_xf86dri_drm_clip_rect_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xf86dri_drm_clip_rect_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xf86dri_drm_clip_rect_end*(i: xcb_xf86dri_drm_clip_rect_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_query_version*(c: ptr xcb_connection_t): xcb_xf86dri_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_query_version_unchecked*(c: ptr xcb_connection_t): xcb_xf86dri_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_query_direct_rendering_capable*(c: ptr xcb_connection_t;# screen: uint32): xcb_xf86dri_query_direct_rendering_capable_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_query_direct_rendering_capable_unchecked*(# c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_query_direct_rendering_capable_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_query_direct_rendering_capable_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_query_direct_rendering_capable_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_query_direct_rendering_capable_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_query_direct_rendering_capable_reply_t# proc xcb_xf86dri_open_connection_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_open_connection*(c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_open_connection_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_open_connection_unchecked*(c: ptr xcb_connection_t;# screen: uint32): xcb_xf86dri_open_connection_cookie_t# proc xcb_xf86dri_open_connection_bus_id*(R: ptr xcb_xf86dri_open_connection_reply_t): cstring# proc xcb_xf86dri_open_connection_bus_id_length*(# R: ptr xcb_xf86dri_open_connection_reply_t): cint# proc xcb_xf86dri_open_connection_bus_id_end*(# R: ptr xcb_xf86dri_open_connection_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_open_connection_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_open_connection_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_open_connection_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_open_connection_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xf86dri_close_connection_checked*(c: ptr xcb_connection_t; screen: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_close_connection*(c: ptr xcb_connection_t; screen: uint32): xcb_void_cookie_t# proc xcb_xf86dri_get_client_driver_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_get_client_driver_name*(c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_get_client_driver_name_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_get_client_driver_name_unchecked*(c: ptr xcb_connection_t;# screen: uint32): xcb_xf86dri_get_client_driver_name_cookie_t# proc xcb_xf86dri_get_client_driver_name_client_driver_name*(# R: ptr xcb_xf86dri_get_client_driver_name_reply_t): cstring# proc xcb_xf86dri_get_client_driver_name_client_driver_name_length*(# R: ptr xcb_xf86dri_get_client_driver_name_reply_t): cint# proc xcb_xf86dri_get_client_driver_name_client_driver_name_end*(# R: ptr xcb_xf86dri_get_client_driver_name_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_get_client_driver_name_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_get_client_driver_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_get_client_driver_name_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_get_client_driver_name_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_create_context*(c: ptr xcb_connection_t; screen: uint32;# visual: uint32; context: uint32): xcb_xf86dri_create_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_create_context_unchecked*(c: ptr xcb_connection_t;# screen: uint32; visual: uint32; context: uint32): xcb_xf86dri_create_context_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_create_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_create_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_create_context_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xf86dri_destroy_context_checked*(c: ptr xcb_connection_t; screen: uint32;# context: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_destroy_context*(c: ptr xcb_connection_t; screen: uint32;# context: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_create_drawable*(c: ptr xcb_connection_t; screen: uint32;# drawable: uint32): xcb_xf86dri_create_drawable_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_create_drawable_unchecked*(c: ptr xcb_connection_t;# screen: uint32; drawable: uint32): xcb_xf86dri_create_drawable_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_create_drawable_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_create_drawable_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_create_drawable_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_create_drawable_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xf86dri_destroy_drawable_checked*(c: ptr xcb_connection_t;# screen: uint32; drawable: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_destroy_drawable*(c: ptr xcb_connection_t; screen: uint32;# drawable: uint32): xcb_void_cookie_t# proc xcb_xf86dri_get_drawable_info_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_get_drawable_info*(c: ptr xcb_connection_t; screen: uint32;# drawable: uint32): xcb_xf86dri_get_drawable_info_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_get_drawable_info_unchecked*(c: ptr xcb_connection_t;# screen: uint32; drawable: uint32): xcb_xf86dri_get_drawable_info_cookie_t# proc xcb_xf86dri_get_drawable_info_clip_rects*(# R: ptr xcb_xf86dri_get_drawable_info_reply_t): ptr xcb_xf86dri_drm_clip_rect_t# proc xcb_xf86dri_get_drawable_info_clip_rects_length*(# R: ptr xcb_xf86dri_get_drawable_info_reply_t): cint# proc xcb_xf86dri_get_drawable_info_clip_rects_iterator*(# R: ptr xcb_xf86dri_get_drawable_info_reply_t): xcb_xf86dri_drm_clip_rect_iterator_t# proc xcb_xf86dri_get_drawable_info_back_clip_rects*(# R: ptr xcb_xf86dri_get_drawable_info_reply_t): ptr xcb_xf86dri_drm_clip_rect_t# proc xcb_xf86dri_get_drawable_info_back_clip_rects_length*(# R: ptr xcb_xf86dri_get_drawable_info_reply_t): cint# proc xcb_xf86dri_get_drawable_info_back_clip_rects_iterator*(# R: ptr xcb_xf86dri_get_drawable_info_reply_t): xcb_xf86dri_drm_clip_rect_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_get_drawable_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_get_drawable_info_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_get_drawable_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_get_drawable_info_reply_t# proc xcb_xf86dri_get_device_info_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_get_device_info*(c: ptr xcb_connection_t; screen: uint32): xcb_xf86dri_get_device_info_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_get_device_info_unchecked*(c: ptr xcb_connection_t;# screen: uint32): xcb_xf86dri_get_device_info_cookie_t# proc xcb_xf86dri_get_device_info_device_private*(# R: ptr xcb_xf86dri_get_device_info_reply_t): ptr uint32# proc xcb_xf86dri_get_device_info_device_private_length*(# R: ptr xcb_xf86dri_get_device_info_reply_t): cint# proc xcb_xf86dri_get_device_info_device_private_end*(# R: ptr xcb_xf86dri_get_device_info_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_get_device_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_get_device_info_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_get_device_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_get_device_info_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xf86dri_auth_connection*(c: ptr xcb_connection_t; screen: uint32;# magic: uint32): xcb_xf86dri_auth_connection_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xf86dri_auth_connection_unchecked*(c: ptr xcb_connection_t;# screen: uint32; magic: uint32): xcb_xf86dri_auth_connection_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xf86dri_auth_connection_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xf86dri_auth_connection_reply*(c: ptr xcb_connection_t; cookie: xcb_xf86dri_auth_connection_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xf86dri_auth_connection_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xfixes.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_XFixes_API XCB XFixes API# ## @brief XFixes XCB Protocol Implementation.# ## @{# ### import# xcb, xproto, render, shape# const# XCB_XFIXES_MAJOR_VERSION* = 5# XCB_XFIXES_MINOR_VERSION* = 0# var xcb_xfixes_id*: xcb_extension_t# ## *# ## @brief xcb_xfixes_query_version_cookie_t# ### type# xcb_xfixes_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xfixes_query_version.# const# XCB_XFIXES_QUERY_VERSION* = 0# ## *# ## @brief xcb_xfixes_query_version_request_t# ### type# xcb_xfixes_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major_version*: uint32# client_minor_version*: uint32# ## *# ## @brief xcb_xfixes_query_version_reply_t# ### type# xcb_xfixes_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint32# minor_version*: uint32# pad1*: array[16, uint8]# xcb_xfixes_save_set_mode_t* = enum# XCB_XFIXES_SAVE_SET_MODE_INSERT = 0, XCB_XFIXES_SAVE_SET_MODE_DELETE = 1# xcb_xfixes_save_set_target_t* = enum# XCB_XFIXES_SAVE_SET_TARGET_NEAREST = 0, XCB_XFIXES_SAVE_SET_TARGET_ROOT = 1# xcb_xfixes_save_set_mapping_t* = enum# XCB_XFIXES_SAVE_SET_MAPPING_MAP = 0, XCB_XFIXES_SAVE_SET_MAPPING_UNMAP = 1# ## * Opcode for xcb_xfixes_change_save_set.# const# XCB_XFIXES_CHANGE_SAVE_SET* = 1# ## *# ## @brief xcb_xfixes_change_save_set_request_t# ### type# xcb_xfixes_change_save_set_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# mode*: uint8# target*: uint8# map*: uint8# pad0*: uint8# window*: xcb_window_t# xcb_xfixes_selection_event_t* = enum# XCB_XFIXES_SELECTION_EVENT_SET_SELECTION_OWNER = 0,# XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY = 1,# XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE = 2# xcb_xfixes_selection_event_mask_t* = enum# XCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER = 1,# XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY = 2,# XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE = 4# ## * Opcode for xcb_xfixes_selection_notify.# const# XCB_XFIXES_SELECTION_NOTIFY* = 0# ## *# ## @brief xcb_xfixes_selection_notify_event_t# ### type# xcb_xfixes_selection_notify_event_t* {.bycopy.} = object# response_type*: uint8# subtype*: uint8# sequence*: uint16# window*: xcb_window_t# owner*: xcb_window_t# selection*: xcb_atom_t# timestamp*: xcb_timestamp_t# selection_timestamp*: xcb_timestamp_t# pad0*: array[8, uint8]# ## * Opcode for xcb_xfixes_select_selection_input.# const# XCB_XFIXES_SELECT_SELECTION_INPUT* = 2# ## *# ## @brief xcb_xfixes_select_selection_input_request_t# ### type# xcb_xfixes_select_selection_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# selection*: xcb_atom_t# event_mask*: uint32# xcb_xfixes_cursor_notify_t* = enum# XCB_XFIXES_CURSOR_NOTIFY_DISPLAY_CURSOR = 0# xcb_xfixes_cursor_notify_mask_t* = enum# XCB_XFIXES_CURSOR_NOTIFY_MASK_DISPLAY_CURSOR = 1# ## * Opcode for xcb_xfixes_cursor_notify.# const# XCB_XFIXES_CURSOR_NOTIFY* = 1# ## *# ## @brief xcb_xfixes_cursor_notify_event_t# ### type# xcb_xfixes_cursor_notify_event_t* {.bycopy.} = object# response_type*: uint8# subtype*: uint8# sequence*: uint16# window*: xcb_window_t# cursor_serial*: uint32# timestamp*: xcb_timestamp_t# name*: xcb_atom_t# pad0*: array[12, uint8]# ## * Opcode for xcb_xfixes_select_cursor_input.# const# XCB_XFIXES_SELECT_CURSOR_INPUT* = 3# ## *# ## @brief xcb_xfixes_select_cursor_input_request_t# ### type# xcb_xfixes_select_cursor_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# event_mask*: uint32# ## *# ## @brief xcb_xfixes_get_cursor_image_cookie_t# ### type# xcb_xfixes_get_cursor_image_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xfixes_get_cursor_image.# const# XCB_XFIXES_GET_CURSOR_IMAGE* = 4# ## *# ## @brief xcb_xfixes_get_cursor_image_request_t# ### type# xcb_xfixes_get_cursor_image_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xfixes_get_cursor_image_reply_t# ### type# xcb_xfixes_get_cursor_image_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# x*: int16# y*: int16# width*: uint16# height*: uint16# xhot*: uint16# yhot*: uint16# cursor_serial*: uint32# pad1*: array[8, uint8]# xcb_xfixes_region_t* = uint32# ## *# ## @brief xcb_xfixes_region_iterator_t# ### type# xcb_xfixes_region_iterator_t* {.bycopy.} = object# data*: ptr xcb_xfixes_region_t# rem*: cint# index*: cint# ## * Opcode for xcb_xfixes_bad_region.# const# XCB_XFIXES_BAD_REGION* = 0# ## *# ## @brief xcb_xfixes_bad_region_error_t# ### type# xcb_xfixes_bad_region_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# xcb_xfixes_region_enum_t* = enum# XCB_XFIXES_REGION_NONE = 0# ## * Opcode for xcb_xfixes_create_region.# const# XCB_XFIXES_CREATE_REGION* = 5# ## *# ## @brief xcb_xfixes_create_region_request_t# ### type# xcb_xfixes_create_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_create_region_from_bitmap.# const# XCB_XFIXES_CREATE_REGION_FROM_BITMAP* = 6# ## *# ## @brief xcb_xfixes_create_region_from_bitmap_request_t# ### type# xcb_xfixes_create_region_from_bitmap_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# bitmap*: xcb_pixmap_t# ## * Opcode for xcb_xfixes_create_region_from_window.# const# XCB_XFIXES_CREATE_REGION_FROM_WINDOW* = 7# ## *# ## @brief xcb_xfixes_create_region_from_window_request_t# ### type# xcb_xfixes_create_region_from_window_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# window*: xcb_window_t# kind*: xcb_shape_kind_t# pad0*: array[3, uint8]# ## * Opcode for xcb_xfixes_create_region_from_gc.# const# XCB_XFIXES_CREATE_REGION_FROM_GC* = 8# ## *# ## @brief xcb_xfixes_create_region_from_gc_request_t# ### type# xcb_xfixes_create_region_from_gc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# gc*: xcb_gcontext_t# ## * Opcode for xcb_xfixes_create_region_from_picture.# const# XCB_XFIXES_CREATE_REGION_FROM_PICTURE* = 9# ## *# ## @brief xcb_xfixes_create_region_from_picture_request_t# ### type# xcb_xfixes_create_region_from_picture_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# picture*: xcb_render_picture_t# ## * Opcode for xcb_xfixes_destroy_region.# const# XCB_XFIXES_DESTROY_REGION* = 10# ## *# ## @brief xcb_xfixes_destroy_region_request_t# ### type# xcb_xfixes_destroy_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_set_region.# const# XCB_XFIXES_SET_REGION* = 11# ## *# ## @brief xcb_xfixes_set_region_request_t# ### type# xcb_xfixes_set_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_copy_region.# const# XCB_XFIXES_COPY_REGION* = 12# ## *# ## @brief xcb_xfixes_copy_region_request_t# ### type# xcb_xfixes_copy_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source*: xcb_xfixes_region_t# destination*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_union_region.# const# XCB_XFIXES_UNION_REGION* = 13# ## *# ## @brief xcb_xfixes_union_region_request_t# ### type# xcb_xfixes_union_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source1*: xcb_xfixes_region_t# source2*: xcb_xfixes_region_t# destination*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_intersect_region.# const# XCB_XFIXES_INTERSECT_REGION* = 14# ## *# ## @brief xcb_xfixes_intersect_region_request_t# ### type# xcb_xfixes_intersect_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source1*: xcb_xfixes_region_t# source2*: xcb_xfixes_region_t# destination*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_subtract_region.# const# XCB_XFIXES_SUBTRACT_REGION* = 15# ## *# ## @brief xcb_xfixes_subtract_region_request_t# ### type# xcb_xfixes_subtract_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source1*: xcb_xfixes_region_t# source2*: xcb_xfixes_region_t# destination*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_invert_region.# const# XCB_XFIXES_INVERT_REGION* = 16# ## *# ## @brief xcb_xfixes_invert_region_request_t# ### type# xcb_xfixes_invert_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source*: xcb_xfixes_region_t# bounds*: xcb_rectangle_t# destination*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_translate_region.# const# XCB_XFIXES_TRANSLATE_REGION* = 17# ## *# ## @brief xcb_xfixes_translate_region_request_t# ### type# xcb_xfixes_translate_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# dx*: int16# dy*: int16# ## * Opcode for xcb_xfixes_region_extents.# const# XCB_XFIXES_REGION_EXTENTS* = 18# ## *# ## @brief xcb_xfixes_region_extents_request_t# ### type# xcb_xfixes_region_extents_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source*: xcb_xfixes_region_t# destination*: xcb_xfixes_region_t# ## *# ## @brief xcb_xfixes_fetch_region_cookie_t# ### type# xcb_xfixes_fetch_region_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xfixes_fetch_region.# const# XCB_XFIXES_FETCH_REGION* = 19# ## *# ## @brief xcb_xfixes_fetch_region_request_t# ### type# xcb_xfixes_fetch_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# region*: xcb_xfixes_region_t# ## *# ## @brief xcb_xfixes_fetch_region_reply_t# ### type# xcb_xfixes_fetch_region_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# extents*: xcb_rectangle_t# pad1*: array[16, uint8]# ## * Opcode for xcb_xfixes_set_gc_clip_region.# const# XCB_XFIXES_SET_GC_CLIP_REGION* = 20# ## *# ## @brief xcb_xfixes_set_gc_clip_region_request_t# ### type# xcb_xfixes_set_gc_clip_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# gc*: xcb_gcontext_t# region*: xcb_xfixes_region_t# x_origin*: int16# y_origin*: int16# ## * Opcode for xcb_xfixes_set_window_shape_region.# const# XCB_XFIXES_SET_WINDOW_SHAPE_REGION* = 21# ## *# ## @brief xcb_xfixes_set_window_shape_region_request_t# ### type# xcb_xfixes_set_window_shape_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# dest*: xcb_window_t# dest_kind*: xcb_shape_kind_t# pad0*: array[3, uint8]# x_offset*: int16# y_offset*: int16# region*: xcb_xfixes_region_t# ## * Opcode for xcb_xfixes_set_picture_clip_region.# const# XCB_XFIXES_SET_PICTURE_CLIP_REGION* = 22# ## *# ## @brief xcb_xfixes_set_picture_clip_region_request_t# ### type# xcb_xfixes_set_picture_clip_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# picture*: xcb_render_picture_t# region*: xcb_xfixes_region_t# x_origin*: int16# y_origin*: int16# ## * Opcode for xcb_xfixes_set_cursor_name.# const# XCB_XFIXES_SET_CURSOR_NAME* = 23# ## *# ## @brief xcb_xfixes_set_cursor_name_request_t# ### type# xcb_xfixes_set_cursor_name_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cursor*: xcb_cursor_t# nbytes*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_xfixes_get_cursor_name_cookie_t# ### type# xcb_xfixes_get_cursor_name_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xfixes_get_cursor_name.# const# XCB_XFIXES_GET_CURSOR_NAME* = 24# ## *# ## @brief xcb_xfixes_get_cursor_name_request_t# ### type# xcb_xfixes_get_cursor_name_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cursor*: xcb_cursor_t# ## *# ## @brief xcb_xfixes_get_cursor_name_reply_t# ### type# xcb_xfixes_get_cursor_name_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# atom*: xcb_atom_t# nbytes*: uint16# pad1*: array[18, uint8]# ## *# ## @brief xcb_xfixes_get_cursor_image_and_name_cookie_t# ### type# xcb_xfixes_get_cursor_image_and_name_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xfixes_get_cursor_image_and_name.# const# XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME* = 25# ## *# ## @brief xcb_xfixes_get_cursor_image_and_name_request_t# ### type# xcb_xfixes_get_cursor_image_and_name_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xfixes_get_cursor_image_and_name_reply_t# ### type# xcb_xfixes_get_cursor_image_and_name_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# x*: int16# y*: int16# width*: uint16# height*: uint16# xhot*: uint16# yhot*: uint16# cursor_serial*: uint32# cursor_atom*: xcb_atom_t# nbytes*: uint16# pad1*: array[2, uint8]# ## * Opcode for xcb_xfixes_change_cursor.# const# XCB_XFIXES_CHANGE_CURSOR* = 26# ## *# ## @brief xcb_xfixes_change_cursor_request_t# ### type# xcb_xfixes_change_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source*: xcb_cursor_t# destination*: xcb_cursor_t# ## * Opcode for xcb_xfixes_change_cursor_by_name.# const# XCB_XFIXES_CHANGE_CURSOR_BY_NAME* = 27# ## *# ## @brief xcb_xfixes_change_cursor_by_name_request_t# ### type# xcb_xfixes_change_cursor_by_name_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# src*: xcb_cursor_t# nbytes*: uint16# pad0*: array[2, uint8]# ## * Opcode for xcb_xfixes_expand_region.# const# XCB_XFIXES_EXPAND_REGION* = 28# ## *# ## @brief xcb_xfixes_expand_region_request_t# ### type# xcb_xfixes_expand_region_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# source*: xcb_xfixes_region_t# destination*: xcb_xfixes_region_t# left*: uint16# right*: uint16# top*: uint16# bottom*: uint16# ## * Opcode for xcb_xfixes_hide_cursor.# const# XCB_XFIXES_HIDE_CURSOR* = 29# ## *# ## @brief xcb_xfixes_hide_cursor_request_t# ### type# xcb_xfixes_hide_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_xfixes_show_cursor.# const# XCB_XFIXES_SHOW_CURSOR* = 30# ## *# ## @brief xcb_xfixes_show_cursor_request_t# ### type# xcb_xfixes_show_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# xcb_xfixes_barrier_t* = uint32# ## *# ## @brief xcb_xfixes_barrier_iterator_t# ### type# xcb_xfixes_barrier_iterator_t* {.bycopy.} = object# data*: ptr xcb_xfixes_barrier_t# rem*: cint# index*: cint# xcb_xfixes_barrier_directions_t* = enum# XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_X = 1,# XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_Y = 2,# XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_X = 4,# XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_Y = 8# ## * Opcode for xcb_xfixes_create_pointer_barrier.# const# XCB_XFIXES_CREATE_POINTER_BARRIER* = 31# ## *# ## @brief xcb_xfixes_create_pointer_barrier_request_t# ### type# xcb_xfixes_create_pointer_barrier_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# barrier*: xcb_xfixes_barrier_t# window*: xcb_window_t# x1*: uint16# y1*: uint16# x2*: uint16# y2*: uint16# directions*: uint32# pad0*: array[2, uint8]# num_devices*: uint16# ## * Opcode for xcb_xfixes_delete_pointer_barrier.# const# XCB_XFIXES_DELETE_POINTER_BARRIER* = 32# ## *# ## @brief xcb_xfixes_delete_pointer_barrier_request_t# ### type# xcb_xfixes_delete_pointer_barrier_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# barrier*: xcb_xfixes_barrier_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_query_version*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_xfixes_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xfixes_query_version_unchecked*(c: ptr xcb_connection_t;# client_major_version: uint32;# client_minor_version: uint32): xcb_xfixes_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xfixes_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xfixes_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_change_save_set_checked*(c: ptr xcb_connection_t; mode: uint8;# target: uint8; map: uint8;# window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_change_save_set*(c: ptr xcb_connection_t; mode: uint8;# target: uint8; map: uint8; window: xcb_window_t): xcb_void_cookie_t# proc xcb_xfixes_select_selection_input*(c: ptr xcb_connection_t;# window: xcb_window_t;# selection: xcb_atom_t; event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_select_cursor_input_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_select_cursor_input*(c: ptr xcb_connection_t; window: xcb_window_t;# event_mask: uint32): xcb_void_cookie_t# proc xcb_xfixes_get_cursor_image_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_get_cursor_image*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xfixes_get_cursor_image_unchecked*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_cookie_t# proc xcb_xfixes_get_cursor_image_cursor_image*(# R: ptr xcb_xfixes_get_cursor_image_reply_t): ptr uint32# proc xcb_xfixes_get_cursor_image_cursor_image_length*(# R: ptr xcb_xfixes_get_cursor_image_reply_t): cint# proc xcb_xfixes_get_cursor_image_cursor_image_end*(# R: ptr xcb_xfixes_get_cursor_image_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xfixes_get_cursor_image_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xfixes_get_cursor_image_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_get_cursor_image_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_get_cursor_image_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xfixes_region_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xfixes_region_t)# ### proc xcb_xfixes_region_next*(i: ptr xcb_xfixes_region_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xfixes_region_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xfixes_region_end*(i: xcb_xfixes_region_iterator_t): xcb_generic_iterator_t# proc xcb_xfixes_create_region_sizeof*(_buffer: pointer; rectangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_create_region_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_create_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_xfixes_create_region_rectangles*(# R: ptr xcb_xfixes_create_region_request_t): ptr xcb_rectangle_t# proc xcb_xfixes_create_region_rectangles_length*(# R: ptr xcb_xfixes_create_region_request_t): cint# proc xcb_xfixes_create_region_rectangles_iterator*(# R: ptr xcb_xfixes_create_region_request_t): xcb_rectangle_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_create_region_from_bitmap_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; bitmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_create_region_from_bitmap*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; bitmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_create_region_from_window_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; window: xcb_window_t; kind: xcb_shape_kind_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_create_region_from_window*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; window: xcb_window_t; kind: xcb_shape_kind_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_create_region_from_gc_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; gc: xcb_gcontext_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_create_region_from_gc*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t;# gc: xcb_gcontext_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_create_region_from_picture_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; picture: xcb_render_picture_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_create_region_from_picture*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; picture: xcb_render_picture_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_destroy_region_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_destroy_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t): xcb_void_cookie_t# proc xcb_xfixes_set_region_sizeof*(_buffer: pointer; rectangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_set_region_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_set_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_xfixes_set_region_rectangles*(R: ptr xcb_xfixes_set_region_request_t): ptr xcb_rectangle_t# proc xcb_xfixes_set_region_rectangles_length*(# R: ptr xcb_xfixes_set_region_request_t): cint# proc xcb_xfixes_set_region_rectangles_iterator*(# R: ptr xcb_xfixes_set_region_request_t): xcb_rectangle_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_copy_region_checked*(c: ptr xcb_connection_t;# source: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_copy_region*(c: ptr xcb_connection_t; source: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_union_region_checked*(c: ptr xcb_connection_t;# source1: xcb_xfixes_region_t;# source2: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_union_region*(c: ptr xcb_connection_t; source1: xcb_xfixes_region_t;# source2: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_intersect_region_checked*(c: ptr xcb_connection_t;# source1: xcb_xfixes_region_t; source2: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_intersect_region*(c: ptr xcb_connection_t;# source1: xcb_xfixes_region_t;# source2: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_subtract_region_checked*(c: ptr xcb_connection_t;# source1: xcb_xfixes_region_t;# source2: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_subtract_region*(c: ptr xcb_connection_t;# source1: xcb_xfixes_region_t;# source2: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_invert_region_checked*(c: ptr xcb_connection_t;# source: xcb_xfixes_region_t;# bounds: xcb_rectangle_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_invert_region*(c: ptr xcb_connection_t; source: xcb_xfixes_region_t;# bounds: xcb_rectangle_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_translate_region_checked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; dx: int16; dy: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_translate_region*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t; dx: int16;# dy: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_region_extents_checked*(c: ptr xcb_connection_t;# source: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_region_extents*(c: ptr xcb_connection_t;# source: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t): xcb_void_cookie_t# proc xcb_xfixes_fetch_region_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_fetch_region*(c: ptr xcb_connection_t; region: xcb_xfixes_region_t): xcb_xfixes_fetch_region_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xfixes_fetch_region_unchecked*(c: ptr xcb_connection_t;# region: xcb_xfixes_region_t): xcb_xfixes_fetch_region_cookie_t# proc xcb_xfixes_fetch_region_rectangles*(R: ptr xcb_xfixes_fetch_region_reply_t): ptr xcb_rectangle_t# proc xcb_xfixes_fetch_region_rectangles_length*(# R: ptr xcb_xfixes_fetch_region_reply_t): cint# proc xcb_xfixes_fetch_region_rectangles_iterator*(# R: ptr xcb_xfixes_fetch_region_reply_t): xcb_rectangle_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xfixes_fetch_region_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xfixes_fetch_region_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_fetch_region_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_fetch_region_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_set_gc_clip_region_checked*(c: ptr xcb_connection_t;# gc: xcb_gcontext_t; region: xcb_xfixes_region_t; x_origin: int16;# y_origin: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_set_gc_clip_region*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# region: xcb_xfixes_region_t; x_origin: int16;# y_origin: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_set_window_shape_region_checked*(c: ptr xcb_connection_t;# dest: xcb_window_t; dest_kind: xcb_shape_kind_t; x_offset: int16;# y_offset: int16; region: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_set_window_shape_region*(c: ptr xcb_connection_t;# dest: xcb_window_t;# dest_kind: xcb_shape_kind_t;# x_offset: int16; y_offset: int16;# region: xcb_xfixes_region_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_set_picture_clip_region_checked*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t; region: xcb_xfixes_region_t; x_origin: int16;# y_origin: int16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_set_picture_clip_region*(c: ptr xcb_connection_t;# picture: xcb_render_picture_t;# region: xcb_xfixes_region_t;# x_origin: int16; y_origin: int16): xcb_void_cookie_t# proc xcb_xfixes_set_cursor_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_set_cursor_name_checked*(c: ptr xcb_connection_t;# cursor: xcb_cursor_t; nbytes: uint16;# name: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_set_cursor_name*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;# nbytes: uint16; name: cstring): xcb_void_cookie_t# proc xcb_xfixes_set_cursor_name_name*(R: ptr xcb_xfixes_set_cursor_name_request_t): cstring# proc xcb_xfixes_set_cursor_name_name_length*(# R: ptr xcb_xfixes_set_cursor_name_request_t): cint# proc xcb_xfixes_set_cursor_name_name_end*(# R: ptr xcb_xfixes_set_cursor_name_request_t): xcb_generic_iterator_t# proc xcb_xfixes_get_cursor_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_get_cursor_name*(c: ptr xcb_connection_t; cursor: xcb_cursor_t): xcb_xfixes_get_cursor_name_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xfixes_get_cursor_name_unchecked*(c: ptr xcb_connection_t;# cursor: xcb_cursor_t): xcb_xfixes_get_cursor_name_cookie_t# proc xcb_xfixes_get_cursor_name_name*(R: ptr xcb_xfixes_get_cursor_name_reply_t): cstring# proc xcb_xfixes_get_cursor_name_name_length*(# R: ptr xcb_xfixes_get_cursor_name_reply_t): cint# proc xcb_xfixes_get_cursor_name_name_end*(# R: ptr xcb_xfixes_get_cursor_name_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xfixes_get_cursor_name_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xfixes_get_cursor_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_get_cursor_name_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_get_cursor_name_reply_t# proc xcb_xfixes_get_cursor_image_and_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_get_cursor_image_and_name*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_and_name_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xfixes_get_cursor_image_and_name_unchecked*(c: ptr xcb_connection_t): xcb_xfixes_get_cursor_image_and_name_cookie_t# proc xcb_xfixes_get_cursor_image_and_name_cursor_image*(# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): ptr uint32# proc xcb_xfixes_get_cursor_image_and_name_cursor_image_length*(# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): cint# proc xcb_xfixes_get_cursor_image_and_name_cursor_image_end*(# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): xcb_generic_iterator_t# proc xcb_xfixes_get_cursor_image_and_name_name*(# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): cstring# proc xcb_xfixes_get_cursor_image_and_name_name_length*(# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): cint# proc xcb_xfixes_get_cursor_image_and_name_name_end*(# R: ptr xcb_xfixes_get_cursor_image_and_name_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xfixes_get_cursor_image_and_name_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xfixes_get_cursor_image_and_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xfixes_get_cursor_image_and_name_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xfixes_get_cursor_image_and_name_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_change_cursor_checked*(c: ptr xcb_connection_t;# source: xcb_cursor_t;# destination: xcb_cursor_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_change_cursor*(c: ptr xcb_connection_t; source: xcb_cursor_t;# destination: xcb_cursor_t): xcb_void_cookie_t# proc xcb_xfixes_change_cursor_by_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_change_cursor_by_name_checked*(c: ptr xcb_connection_t;# src: xcb_cursor_t; nbytes: uint16; name: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_change_cursor_by_name*(c: ptr xcb_connection_t; src: xcb_cursor_t;# nbytes: uint16; name: cstring): xcb_void_cookie_t# proc xcb_xfixes_change_cursor_by_name_name*(# R: ptr xcb_xfixes_change_cursor_by_name_request_t): cstring# proc xcb_xfixes_change_cursor_by_name_name_length*(# R: ptr xcb_xfixes_change_cursor_by_name_request_t): cint# proc xcb_xfixes_change_cursor_by_name_name_end*(# R: ptr xcb_xfixes_change_cursor_by_name_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_expand_region_checked*(c: ptr xcb_connection_t;# source: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t;# left: uint16; right: uint16;# top: uint16; bottom: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_expand_region*(c: ptr xcb_connection_t; source: xcb_xfixes_region_t;# destination: xcb_xfixes_region_t; left: uint16;# right: uint16; top: uint16; bottom: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_hide_cursor_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_hide_cursor*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_show_cursor_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_show_cursor*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xfixes_barrier_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xfixes_barrier_t)# ### proc xcb_xfixes_barrier_next*(i: ptr xcb_xfixes_barrier_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xfixes_barrier_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xfixes_barrier_end*(i: xcb_xfixes_barrier_iterator_t): xcb_generic_iterator_t# proc xcb_xfixes_create_pointer_barrier_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_create_pointer_barrier_checked*(c: ptr xcb_connection_t;# barrier: xcb_xfixes_barrier_t; window: xcb_window_t; x1: uint16; y1: uint16;# x2: uint16; y2: uint16; directions: uint32; num_devices: uint16;# devices: ptr uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_create_pointer_barrier*(c: ptr xcb_connection_t;# barrier: xcb_xfixes_barrier_t;# window: xcb_window_t; x1: uint16;# y1: uint16; x2: uint16; y2: uint16;# directions: uint32;# num_devices: uint16;# devices: ptr uint16): xcb_void_cookie_t# proc xcb_xfixes_create_pointer_barrier_devices*(# R: ptr xcb_xfixes_create_pointer_barrier_request_t): ptr uint16# proc xcb_xfixes_create_pointer_barrier_devices_length*(# R: ptr xcb_xfixes_create_pointer_barrier_request_t): cint# proc xcb_xfixes_create_pointer_barrier_devices_end*(# R: ptr xcb_xfixes_create_pointer_barrier_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xfixes_delete_pointer_barrier_checked*(c: ptr xcb_connection_t;# barrier: xcb_xfixes_barrier_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xfixes_delete_pointer_barrier*(c: ptr xcb_connection_t;# barrier: xcb_xfixes_barrier_t): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from xinerama.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Xinerama_API XCB Xinerama API# ## @brief Xinerama XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_XINERAMA_MAJOR_VERSION* = 1# XCB_XINERAMA_MINOR_VERSION* = 1# var xcb_xinerama_id*: xcb_extension_t# ## *# ## @brief xcb_xinerama_screen_info_t# ### type# xcb_xinerama_screen_info_t* {.bycopy.} = object# x_org*: int16# y_org*: int16# width*: uint16# height*: uint16# ## *# ## @brief xcb_xinerama_screen_info_iterator_t# ### type# xcb_xinerama_screen_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xinerama_screen_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xinerama_query_version_cookie_t# ### type# xcb_xinerama_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xinerama_query_version.# const# XCB_XINERAMA_QUERY_VERSION* = 0# ## *# ## @brief xcb_xinerama_query_version_request_t# ### type# xcb_xinerama_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major*: uint8# minor*: uint8# ## *# ## @brief xcb_xinerama_query_version_reply_t# ### type# xcb_xinerama_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major*: uint16# minor*: uint16# ## *# ## @brief xcb_xinerama_get_state_cookie_t# ### type# xcb_xinerama_get_state_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xinerama_get_state.# const# XCB_XINERAMA_GET_STATE* = 1# ## *# ## @brief xcb_xinerama_get_state_request_t# ### type# xcb_xinerama_get_state_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_xinerama_get_state_reply_t# ### type# xcb_xinerama_get_state_reply_t* {.bycopy.} = object# response_type*: uint8# state*: uint8# sequence*: uint16# length*: uint32# window*: xcb_window_t# ## *# ## @brief xcb_xinerama_get_screen_count_cookie_t# ### type# xcb_xinerama_get_screen_count_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xinerama_get_screen_count.# const# XCB_XINERAMA_GET_SCREEN_COUNT* = 2# ## *# ## @brief xcb_xinerama_get_screen_count_request_t# ### type# xcb_xinerama_get_screen_count_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_xinerama_get_screen_count_reply_t# ### type# xcb_xinerama_get_screen_count_reply_t* {.bycopy.} = object# response_type*: uint8# screen_count*: uint8# sequence*: uint16# length*: uint32# window*: xcb_window_t# ## *# ## @brief xcb_xinerama_get_screen_size_cookie_t# ### type# xcb_xinerama_get_screen_size_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xinerama_get_screen_size.# const# XCB_XINERAMA_GET_SCREEN_SIZE* = 3# ## *# ## @brief xcb_xinerama_get_screen_size_request_t# ### type# xcb_xinerama_get_screen_size_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# screen*: uint32# ## *# ## @brief xcb_xinerama_get_screen_size_reply_t# ### type# xcb_xinerama_get_screen_size_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width*: uint32# height*: uint32# window*: xcb_window_t# screen*: uint32# ## *# ## @brief xcb_xinerama_is_active_cookie_t# ### type# xcb_xinerama_is_active_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xinerama_is_active.# const# XCB_XINERAMA_IS_ACTIVE* = 4# ## *# ## @brief xcb_xinerama_is_active_request_t# ### type# xcb_xinerama_is_active_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xinerama_is_active_reply_t# ### type# xcb_xinerama_is_active_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# state*: uint32# ## *# ## @brief xcb_xinerama_query_screens_cookie_t# ### type# xcb_xinerama_query_screens_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xinerama_query_screens.# const# XCB_XINERAMA_QUERY_SCREENS* = 5# ## *# ## @brief xcb_xinerama_query_screens_request_t# ### type# xcb_xinerama_query_screens_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xinerama_query_screens_reply_t# ### type# xcb_xinerama_query_screens_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# number*: uint32# pad1*: array[20, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xinerama_screen_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xinerama_screen_info_t)# ### proc xcb_xinerama_screen_info_next*(i: ptr xcb_xinerama_screen_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xinerama_screen_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xinerama_screen_info_end*(i: xcb_xinerama_screen_info_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xinerama_query_version*(c: ptr xcb_connection_t; major: uint8;# minor: uint8): xcb_xinerama_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xinerama_query_version_unchecked*(c: ptr xcb_connection_t; major: uint8;# minor: uint8): xcb_xinerama_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xinerama_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xinerama_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_query_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xinerama_get_state*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xinerama_get_state_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xinerama_get_state_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xinerama_get_state_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xinerama_get_state_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xinerama_get_state_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_get_state_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_get_state_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xinerama_get_screen_count*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xinerama_get_screen_count_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xinerama_get_screen_count_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_xinerama_get_screen_count_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xinerama_get_screen_count_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xinerama_get_screen_count_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_get_screen_count_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_get_screen_count_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xinerama_get_screen_size*(c: ptr xcb_connection_t; window: xcb_window_t;# screen: uint32): xcb_xinerama_get_screen_size_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xinerama_get_screen_size_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; screen: uint32): xcb_xinerama_get_screen_size_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xinerama_get_screen_size_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xinerama_get_screen_size_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_get_screen_size_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_get_screen_size_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xinerama_is_active*(c: ptr xcb_connection_t): xcb_xinerama_is_active_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xinerama_is_active_unchecked*(c: ptr xcb_connection_t): xcb_xinerama_is_active_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xinerama_is_active_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xinerama_is_active_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_is_active_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_is_active_reply_t# proc xcb_xinerama_query_screens_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xinerama_query_screens*(c: ptr xcb_connection_t): xcb_xinerama_query_screens_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xinerama_query_screens_unchecked*(c: ptr xcb_connection_t): xcb_xinerama_query_screens_cookie_t# proc xcb_xinerama_query_screens_screen_info*(# R: ptr xcb_xinerama_query_screens_reply_t): ptr xcb_xinerama_screen_info_t# proc xcb_xinerama_query_screens_screen_info_length*(# R: ptr xcb_xinerama_query_screens_reply_t): cint# proc xcb_xinerama_query_screens_screen_info_iterator*(# R: ptr xcb_xinerama_query_screens_reply_t): xcb_xinerama_screen_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xinerama_query_screens_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xinerama_query_screens_reply*(c: ptr xcb_connection_t; cookie: xcb_xinerama_query_screens_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xinerama_query_screens_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xinput.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Input_API XCB Input API# ## @brief Input XCB Protocol Implementation.# ## @{# ### import# xcb, xfixes# const# XCB_INPUT_MAJOR_VERSION* = 2# XCB_INPUT_MINOR_VERSION* = 3# var xcb_input_id*: xcb_extension_t# type# xcb_input_event_class_t* = uint32# ## *# ## @brief xcb_input_event_class_iterator_t# ### type# xcb_input_event_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_event_class_t# rem*: cint# index*: cint# xcb_input_key_code_t* = uint8# ## *# ## @brief xcb_input_key_code_iterator_t# ### type# xcb_input_key_code_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_key_code_t# rem*: cint# index*: cint# xcb_input_device_id_t* = uint16# ## *# ## @brief xcb_input_device_id_iterator_t# ### type# xcb_input_device_id_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_id_t# rem*: cint# index*: cint# xcb_input_fp1616_t* = int32# ## *# ## @brief xcb_input_fp1616_iterator_t# ### type# xcb_input_fp1616_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_fp1616_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_fp3232_t# ### type# xcb_input_fp3232_t* {.bycopy.} = object# integral*: int32# frac*: uint32# ## *# ## @brief xcb_input_fp3232_iterator_t# ### type# xcb_input_fp3232_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_fp3232_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_get_extension_version_cookie_t# ### type# xcb_input_get_extension_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_extension_version.# const# XCB_INPUT_GET_EXTENSION_VERSION* = 1# ## *# ## @brief xcb_input_get_extension_version_request_t# ### type# xcb_input_get_extension_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# name_len*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_get_extension_version_reply_t# ### type# xcb_input_get_extension_version_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# server_major*: uint16# server_minor*: uint16# present*: uint8# pad0*: array[19, uint8]# xcb_input_device_use_t* = enum# XCB_INPUT_DEVICE_USE_IS_X_POINTER = 0, XCB_INPUT_DEVICE_USE_IS_X_KEYBOARD = 1,# XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE = 2,# XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD = 3,# XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER = 4# xcb_input_input_class_t* = enum# XCB_INPUT_INPUT_CLASS_KEY = 0, XCB_INPUT_INPUT_CLASS_BUTTON = 1,# XCB_INPUT_INPUT_CLASS_VALUATOR = 2, XCB_INPUT_INPUT_CLASS_FEEDBACK = 3,# XCB_INPUT_INPUT_CLASS_PROXIMITY = 4, XCB_INPUT_INPUT_CLASS_FOCUS = 5,# XCB_INPUT_INPUT_CLASS_OTHER = 6# xcb_input_valuator_mode_t* = enum# XCB_INPUT_VALUATOR_MODE_RELATIVE = 0, XCB_INPUT_VALUATOR_MODE_ABSOLUTE = 1# ## *# ## @brief xcb_input_device_info_t# ### type# xcb_input_device_info_t* {.bycopy.} = object# device_type*: xcb_atom_t# device_id*: uint8# num_class_info*: uint8# device_use*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_device_info_iterator_t# ### type# xcb_input_device_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_key_info_t# ### type# xcb_input_key_info_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# min_keycode*: xcb_input_key_code_t# max_keycode*: xcb_input_key_code_t# num_keys*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_key_info_iterator_t# ### type# xcb_input_key_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_key_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_button_info_t# ### type# xcb_input_button_info_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# num_buttons*: uint16# ## *# ## @brief xcb_input_button_info_iterator_t# ### type# xcb_input_button_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_button_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_axis_info_t# ### type# xcb_input_axis_info_t* {.bycopy.} = object# resolution*: uint32# minimum*: int32# maximum*: int32# ## *# ## @brief xcb_input_axis_info_iterator_t# ### type# xcb_input_axis_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_axis_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_valuator_info_t# ### type# xcb_input_valuator_info_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# axes_len*: uint8# mode*: uint8# motion_size*: uint32# ## *# ## @brief xcb_input_valuator_info_iterator_t# ### type# xcb_input_valuator_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_valuator_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_input_info_info_t# ### type# INNER_C_STRUCT_xinput_248* {.bycopy.} = object# min_keycode*: xcb_input_key_code_t# max_keycode*: xcb_input_key_code_t# num_keys*: uint16# pad0*: array[2, uint8]# INNER_C_STRUCT_xinput_254* {.bycopy.} = object# num_buttons*: uint16# INNER_C_STRUCT_xinput_257* {.bycopy.} = object# axes_len*: uint8# mode*: uint8# motion_size*: uint32# axes*: ptr xcb_input_axis_info_t# xcb_input_input_info_info_t* {.bycopy.} = object# key*: INNER_C_STRUCT_xinput_248# button*: INNER_C_STRUCT_xinput_254# valuator*: INNER_C_STRUCT_xinput_257# ## *# ## @brief xcb_input_input_info_t# ### type# xcb_input_input_info_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# proc xcb_input_input_info_info*(R: ptr xcb_input_input_info_t): pointer# ## *# ## @brief xcb_input_input_info_iterator_t# ### type# xcb_input_input_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_input_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_name_t# ### type# xcb_input_device_name_t* {.bycopy.} = object# len*: uint8# ## *# ## @brief xcb_input_device_name_iterator_t# ### type# xcb_input_device_name_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_name_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_list_input_devices_cookie_t# ### type# xcb_input_list_input_devices_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_list_input_devices.# const# XCB_INPUT_LIST_INPUT_DEVICES* = 2# ## *# ## @brief xcb_input_list_input_devices_request_t# ### type# xcb_input_list_input_devices_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_input_list_input_devices_reply_t# ### type# xcb_input_list_input_devices_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# devices_len*: uint8# pad0*: array[23, uint8]# xcb_input_event_type_base_t* = uint8# ## *# ## @brief xcb_input_event_type_base_iterator_t# ### type# xcb_input_event_type_base_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_event_type_base_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_input_class_info_t# ### type# xcb_input_input_class_info_t* {.bycopy.} = object# class_id*: uint8# event_type_base*: xcb_input_event_type_base_t# ## *# ## @brief xcb_input_input_class_info_iterator_t# ### type# xcb_input_input_class_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_input_class_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_open_device_cookie_t# ### type# xcb_input_open_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_open_device.# const# XCB_INPUT_OPEN_DEVICE* = 3# ## *# ## @brief xcb_input_open_device_request_t# ### type# xcb_input_open_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_open_device_reply_t# ### type# xcb_input_open_device_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_classes*: uint8# pad0*: array[23, uint8]# ## * Opcode for xcb_input_close_device.# const# XCB_INPUT_CLOSE_DEVICE* = 4# ## *# ## @brief xcb_input_close_device_request_t# ### type# xcb_input_close_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_set_device_mode_cookie_t# ### type# xcb_input_set_device_mode_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_set_device_mode.# const# XCB_INPUT_SET_DEVICE_MODE* = 5# ## *# ## @brief xcb_input_set_device_mode_request_t# ### type# xcb_input_set_device_mode_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# mode*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_set_device_mode_reply_t# ### type# xcb_input_set_device_mode_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## * Opcode for xcb_input_select_extension_event.# const# XCB_INPUT_SELECT_EXTENSION_EVENT* = 6# ## *# ## @brief xcb_input_select_extension_event_request_t# ### type# xcb_input_select_extension_event_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# num_classes*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_get_selected_extension_events_cookie_t# ### type# xcb_input_get_selected_extension_events_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_selected_extension_events.# const# XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS* = 7# ## *# ## @brief xcb_input_get_selected_extension_events_request_t# ### type# xcb_input_get_selected_extension_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_input_get_selected_extension_events_reply_t# ### type# xcb_input_get_selected_extension_events_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_this_classes*: uint16# num_all_classes*: uint16# pad0*: array[20, uint8]# xcb_input_propagate_mode_t* = enum# XCB_INPUT_PROPAGATE_MODE_ADD_TO_LIST = 0,# XCB_INPUT_PROPAGATE_MODE_DELETE_FROM_LIST = 1# ## * Opcode for xcb_input_change_device_dont_propagate_list.# const# XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST* = 8# ## *# ## @brief xcb_input_change_device_dont_propagate_list_request_t# ### type# xcb_input_change_device_dont_propagate_list_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# num_classes*: uint16# mode*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_get_device_dont_propagate_list_cookie_t# ### type# xcb_input_get_device_dont_propagate_list_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_dont_propagate_list.# const# XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST* = 9# ## *# ## @brief xcb_input_get_device_dont_propagate_list_request_t# ### type# xcb_input_get_device_dont_propagate_list_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_input_get_device_dont_propagate_list_reply_t# ### type# xcb_input_get_device_dont_propagate_list_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_classes*: uint16# pad0*: array[22, uint8]# ## *# ## @brief xcb_input_device_time_coord_t# ### type# xcb_input_device_time_coord_t* {.bycopy.} = object# time*: xcb_timestamp_t# ## *# ## @brief xcb_input_device_time_coord_iterator_t# ### type# xcb_input_device_time_coord_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_time_coord_t# rem*: cint# index*: cint# num_axes*: uint8 ## *<# ## *# ## @brief xcb_input_get_device_motion_events_cookie_t# ### type# xcb_input_get_device_motion_events_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_motion_events.# const# XCB_INPUT_GET_DEVICE_MOTION_EVENTS* = 10# ## *# ## @brief xcb_input_get_device_motion_events_request_t# ### type# xcb_input_get_device_motion_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# start*: xcb_timestamp_t# stop*: xcb_timestamp_t# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_get_device_motion_events_reply_t# ### type# xcb_input_get_device_motion_events_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_events*: uint32# num_axes*: uint8# device_mode*: uint8# pad0*: array[18, uint8]# ## *# ## @brief xcb_input_change_keyboard_device_cookie_t# ### type# xcb_input_change_keyboard_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_change_keyboard_device.# const# XCB_INPUT_CHANGE_KEYBOARD_DEVICE* = 11# ## *# ## @brief xcb_input_change_keyboard_device_request_t# ### type# xcb_input_change_keyboard_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_change_keyboard_device_reply_t# ### type# xcb_input_change_keyboard_device_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_change_pointer_device_cookie_t# ### type# xcb_input_change_pointer_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_change_pointer_device.# const# XCB_INPUT_CHANGE_POINTER_DEVICE* = 12# ## *# ## @brief xcb_input_change_pointer_device_request_t# ### type# xcb_input_change_pointer_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# x_axis*: uint8# y_axis*: uint8# device_id*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_change_pointer_device_reply_t# ### type# xcb_input_change_pointer_device_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_grab_device_cookie_t# ### type# xcb_input_grab_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_grab_device.# const# XCB_INPUT_GRAB_DEVICE* = 13# ## *# ## @brief xcb_input_grab_device_request_t# ### type# xcb_input_grab_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# grab_window*: xcb_window_t# time*: xcb_timestamp_t# num_classes*: uint16# this_device_mode*: uint8# other_device_mode*: uint8# owner_events*: uint8# device_id*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_grab_device_reply_t# ### type# xcb_input_grab_device_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## * Opcode for xcb_input_ungrab_device.# const# XCB_INPUT_UNGRAB_DEVICE* = 14# ## *# ## @brief xcb_input_ungrab_device_request_t# ### type# xcb_input_ungrab_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# time*: xcb_timestamp_t# device_id*: uint8# pad0*: array[3, uint8]# xcb_input_modifier_device_t* = enum# XCB_INPUT_MODIFIER_DEVICE_USE_X_KEYBOARD = 255# ## * Opcode for xcb_input_grab_device_key.# const# XCB_INPUT_GRAB_DEVICE_KEY* = 15# ## *# ## @brief xcb_input_grab_device_key_request_t# ### type# xcb_input_grab_device_key_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# grab_window*: xcb_window_t# num_classes*: uint16# modifiers*: uint16# modifier_device*: uint8# grabbed_device*: uint8# key*: uint8# this_device_mode*: uint8# other_device_mode*: uint8# owner_events*: uint8# pad0*: array[2, uint8]# ## * Opcode for xcb_input_ungrab_device_key.# const# XCB_INPUT_UNGRAB_DEVICE_KEY* = 16# ## *# ## @brief xcb_input_ungrab_device_key_request_t# ### type# xcb_input_ungrab_device_key_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# grabWindow*: xcb_window_t# modifiers*: uint16# modifier_device*: uint8# key*: uint8# grabbed_device*: uint8# ## * Opcode for xcb_input_grab_device_button.# const# XCB_INPUT_GRAB_DEVICE_BUTTON* = 17# ## *# ## @brief xcb_input_grab_device_button_request_t# ### type# xcb_input_grab_device_button_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# grab_window*: xcb_window_t# grabbed_device*: uint8# modifier_device*: uint8# num_classes*: uint16# modifiers*: uint16# this_device_mode*: uint8# other_device_mode*: uint8# button*: uint8# owner_events*: uint8# pad0*: array[2, uint8]# ## * Opcode for xcb_input_ungrab_device_button.# const# XCB_INPUT_UNGRAB_DEVICE_BUTTON* = 18# ## *# ## @brief xcb_input_ungrab_device_button_request_t# ### type# xcb_input_ungrab_device_button_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# grab_window*: xcb_window_t# modifiers*: uint16# modifier_device*: uint8# button*: uint8# grabbed_device*: uint8# pad0*: array[3, uint8]# xcb_input_device_input_mode_t* = enum# XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_THIS_DEVICE = 0,# XCB_INPUT_DEVICE_INPUT_MODE_SYNC_THIS_DEVICE = 1,# XCB_INPUT_DEVICE_INPUT_MODE_REPLAY_THIS_DEVICE = 2,# XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_OTHER_DEVICES = 3,# XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_ALL = 4,# XCB_INPUT_DEVICE_INPUT_MODE_SYNC_ALL = 5# ## * Opcode for xcb_input_allow_device_events.# const# XCB_INPUT_ALLOW_DEVICE_EVENTS* = 19# ## *# ## @brief xcb_input_allow_device_events_request_t# ### type# xcb_input_allow_device_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# time*: xcb_timestamp_t# mode*: uint8# device_id*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_get_device_focus_cookie_t# ### type# xcb_input_get_device_focus_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_focus.# const# XCB_INPUT_GET_DEVICE_FOCUS* = 20# ## *# ## @brief xcb_input_get_device_focus_request_t# ### type# xcb_input_get_device_focus_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_get_device_focus_reply_t# ### type# xcb_input_get_device_focus_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# focus*: xcb_window_t# time*: xcb_timestamp_t# revert_to*: uint8# pad0*: array[15, uint8]# ## * Opcode for xcb_input_set_device_focus.# const# XCB_INPUT_SET_DEVICE_FOCUS* = 21# ## *# ## @brief xcb_input_set_device_focus_request_t# ### type# xcb_input_set_device_focus_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# focus*: xcb_window_t# time*: xcb_timestamp_t# revert_to*: uint8# device_id*: uint8# pad0*: array[2, uint8]# xcb_input_feedback_class_t* = enum# XCB_INPUT_FEEDBACK_CLASS_KEYBOARD = 0, XCB_INPUT_FEEDBACK_CLASS_POINTER = 1,# XCB_INPUT_FEEDBACK_CLASS_STRING = 2, XCB_INPUT_FEEDBACK_CLASS_INTEGER = 3,# XCB_INPUT_FEEDBACK_CLASS_LED = 4, XCB_INPUT_FEEDBACK_CLASS_BELL = 5# ## *# ## @brief xcb_input_kbd_feedback_state_t# ### type# xcb_input_kbd_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# pitch*: uint16# duration*: uint16# led_mask*: uint32# led_values*: uint32# global_auto_repeat*: uint8# click*: uint8# percent*: uint8# pad0*: uint8# auto_repeats*: array[32, uint8]# ## *# ## @brief xcb_input_kbd_feedback_state_iterator_t# ### type# xcb_input_kbd_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_kbd_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_ptr_feedback_state_t# ### type# xcb_input_ptr_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# pad0*: array[2, uint8]# accel_num*: uint16# accel_denom*: uint16# threshold*: uint16# ## *# ## @brief xcb_input_ptr_feedback_state_iterator_t# ### type# xcb_input_ptr_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_ptr_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_integer_feedback_state_t# ### type# xcb_input_integer_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# resolution*: uint32# min_value*: int32# max_value*: int32# ## *# ## @brief xcb_input_integer_feedback_state_iterator_t# ### type# xcb_input_integer_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_integer_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_string_feedback_state_t# ### type# xcb_input_string_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# max_symbols*: uint16# num_keysyms*: uint16# ## *# ## @brief xcb_input_string_feedback_state_iterator_t# ### type# xcb_input_string_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_string_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_bell_feedback_state_t# ### type# xcb_input_bell_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# percent*: uint8# pad0*: array[3, uint8]# pitch*: uint16# duration*: uint16# ## *# ## @brief xcb_input_bell_feedback_state_iterator_t# ### type# xcb_input_bell_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_bell_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_led_feedback_state_t# ### type# xcb_input_led_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# led_mask*: uint32# led_values*: uint32# ## *# ## @brief xcb_input_led_feedback_state_iterator_t# ### type# xcb_input_led_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_led_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_feedback_state_data_t# ### type# INNER_C_STRUCT_xinput_1023* {.bycopy.} = object# pitch*: uint16# duration*: uint16# led_mask*: uint32# led_values*: uint32# global_auto_repeat*: uint8# click*: uint8# percent*: uint8# pad0*: uint8# auto_repeats*: array[32, uint8]# INNER_C_STRUCT_xinput_1034* {.bycopy.} = object# pad1*: array[2, uint8]# accel_num*: uint16# accel_denom*: uint16# threshold*: uint16# INNER_C_STRUCT_xinput_1040* {.bycopy.} = object# max_symbols*: uint16# num_keysyms*: uint16# keysyms*: ptr xcb_keysym_t# INNER_C_STRUCT_xinput_1045* {.bycopy.} = object# resolution*: uint32# min_value*: int32# max_value*: int32# INNER_C_STRUCT_xinput_1050* {.bycopy.} = object# led_mask*: uint32# led_values*: uint32# INNER_C_STRUCT_xinput_1054* {.bycopy.} = object# percent*: uint8# pad2*: array[3, uint8]# pitch*: uint16# duration*: uint16# xcb_input_feedback_state_data_t* {.bycopy.} = object# keyboard*: INNER_C_STRUCT_xinput_1023# pointer*: INNER_C_STRUCT_xinput_1034# string*: INNER_C_STRUCT_xinput_1040# integer*: INNER_C_STRUCT_xinput_1045# led*: INNER_C_STRUCT_xinput_1050# bell*: INNER_C_STRUCT_xinput_1054# ## *# ## @brief xcb_input_feedback_state_t# ### type# xcb_input_feedback_state_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# proc xcb_input_feedback_state_data*(R: ptr xcb_input_feedback_state_t): pointer# ## *# ## @brief xcb_input_feedback_state_iterator_t# ### type# xcb_input_feedback_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_feedback_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_get_feedback_control_cookie_t# ### type# xcb_input_get_feedback_control_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_feedback_control.# const# XCB_INPUT_GET_FEEDBACK_CONTROL* = 22# ## *# ## @brief xcb_input_get_feedback_control_request_t# ### type# xcb_input_get_feedback_control_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_get_feedback_control_reply_t# ### type# xcb_input_get_feedback_control_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_feedbacks*: uint16# pad0*: array[22, uint8]# ## *# ## @brief xcb_input_kbd_feedback_ctl_t# ### type# xcb_input_kbd_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# key*: xcb_input_key_code_t# auto_repeat_mode*: uint8# key_click_percent*: int8# bell_percent*: int8# bell_pitch*: int16# bell_duration*: int16# led_mask*: uint32# led_values*: uint32# ## *# ## @brief xcb_input_kbd_feedback_ctl_iterator_t# ### type# xcb_input_kbd_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_kbd_feedback_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_ptr_feedback_ctl_t# ### type# xcb_input_ptr_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# pad0*: array[2, uint8]# num*: int16# denom*: int16# threshold*: int16# ## *# ## @brief xcb_input_ptr_feedback_ctl_iterator_t# ### type# xcb_input_ptr_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_ptr_feedback_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_integer_feedback_ctl_t# ### type# xcb_input_integer_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# int_to_display*: int32# ## *# ## @brief xcb_input_integer_feedback_ctl_iterator_t# ### type# xcb_input_integer_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_integer_feedback_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_string_feedback_ctl_t# ### type# xcb_input_string_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# pad0*: array[2, uint8]# num_keysyms*: uint16# ## *# ## @brief xcb_input_string_feedback_ctl_iterator_t# ### type# xcb_input_string_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_string_feedback_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_bell_feedback_ctl_t# ### type# xcb_input_bell_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# percent*: int8# pad0*: array[3, uint8]# pitch*: int16# duration*: int16# ## *# ## @brief xcb_input_bell_feedback_ctl_iterator_t# ### type# xcb_input_bell_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_bell_feedback_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_led_feedback_ctl_t# ### type# xcb_input_led_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# led_mask*: uint32# led_values*: uint32# ## *# ## @brief xcb_input_led_feedback_ctl_iterator_t# ### type# xcb_input_led_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_led_feedback_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_feedback_ctl_data_t# ### type# INNER_C_STRUCT_xinput_1249* {.bycopy.} = object# key*: xcb_input_key_code_t# auto_repeat_mode*: uint8# key_click_percent*: int8# bell_percent*: int8# bell_pitch*: int16# bell_duration*: int16# led_mask*: uint32# led_values*: uint32# INNER_C_STRUCT_xinput_1259* {.bycopy.} = object# pad0*: array[2, uint8]# num*: int16# denom*: int16# threshold*: int16# INNER_C_STRUCT_xinput_1265* {.bycopy.} = object# pad1*: array[2, uint8]# num_keysyms*: uint16# keysyms*: ptr xcb_keysym_t# INNER_C_STRUCT_xinput_1270* {.bycopy.} = object# int_to_display*: int32# INNER_C_STRUCT_xinput_1273* {.bycopy.} = object# led_mask*: uint32# led_values*: uint32# INNER_C_STRUCT_xinput_1277* {.bycopy.} = object# percent*: int8# pad2*: array[3, uint8]# pitch*: int16# duration*: int16# xcb_input_feedback_ctl_data_t* {.bycopy.} = object# keyboard*: INNER_C_STRUCT_xinput_1249# pointer*: INNER_C_STRUCT_xinput_1259# string*: INNER_C_STRUCT_xinput_1265# integer*: INNER_C_STRUCT_xinput_1270# led*: INNER_C_STRUCT_xinput_1273# bell*: INNER_C_STRUCT_xinput_1277# ## *# ## @brief xcb_input_feedback_ctl_t# ### type# xcb_input_feedback_ctl_t* {.bycopy.} = object# class_id*: uint8# feedback_id*: uint8# len*: uint16# proc xcb_input_feedback_ctl_data*(R: ptr xcb_input_feedback_ctl_t): pointer# ## *# ## @brief xcb_input_feedback_ctl_iterator_t# ### type# xcb_input_feedback_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_feedback_ctl_t# rem*: cint# index*: cint# xcb_input_change_feedback_control_mask_t* = enum# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT = 1,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT = 2,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH = 4,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_DURATION = 8,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED = 16,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED_MODE = 32,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY = 64,# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_AUTO_REPEAT_MODE = 128# const# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_STRING = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_INTEGER = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_NUM = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_DENOM = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_THRESHOLD = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH# ## * Opcode for xcb_input_change_feedback_control.# const# XCB_INPUT_CHANGE_FEEDBACK_CONTROL* = 23# ## *# ## @brief xcb_input_change_feedback_control_request_t# ### type# xcb_input_change_feedback_control_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# mask*: uint32# device_id*: uint8# feedback_id*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_get_device_key_mapping_cookie_t# ### type# xcb_input_get_device_key_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_key_mapping.# const# XCB_INPUT_GET_DEVICE_KEY_MAPPING* = 24# ## *# ## @brief xcb_input_get_device_key_mapping_request_t# ### type# xcb_input_get_device_key_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# first_keycode*: xcb_input_key_code_t# count*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_get_device_key_mapping_reply_t# ### type# xcb_input_get_device_key_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# keysyms_per_keycode*: uint8# pad0*: array[23, uint8]# ## * Opcode for xcb_input_change_device_key_mapping.# const# XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING* = 25# ## *# ## @brief xcb_input_change_device_key_mapping_request_t# ### type# xcb_input_change_device_key_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# first_keycode*: xcb_input_key_code_t# keysyms_per_keycode*: uint8# keycode_count*: uint8# ## *# ## @brief xcb_input_get_device_modifier_mapping_cookie_t# ### type# xcb_input_get_device_modifier_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_modifier_mapping.# const# XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING* = 26# ## *# ## @brief xcb_input_get_device_modifier_mapping_request_t# ### type# xcb_input_get_device_modifier_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_get_device_modifier_mapping_reply_t# ### type# xcb_input_get_device_modifier_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# keycodes_per_modifier*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_set_device_modifier_mapping_cookie_t# ### type# xcb_input_set_device_modifier_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_set_device_modifier_mapping.# const# XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING* = 27# ## *# ## @brief xcb_input_set_device_modifier_mapping_request_t# ### type# xcb_input_set_device_modifier_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# keycodes_per_modifier*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_set_device_modifier_mapping_reply_t# ### type# xcb_input_set_device_modifier_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_get_device_button_mapping_cookie_t# ### type# xcb_input_get_device_button_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_button_mapping.# const# XCB_INPUT_GET_DEVICE_BUTTON_MAPPING* = 28# ## *# ## @brief xcb_input_get_device_button_mapping_request_t# ### type# xcb_input_get_device_button_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_get_device_button_mapping_reply_t# ### type# xcb_input_get_device_button_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# map_size*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_set_device_button_mapping_cookie_t# ### type# xcb_input_set_device_button_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_set_device_button_mapping.# const# XCB_INPUT_SET_DEVICE_BUTTON_MAPPING* = 29# ## *# ## @brief xcb_input_set_device_button_mapping_request_t# ### type# xcb_input_set_device_button_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# map_size*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_set_device_button_mapping_reply_t# ### type# xcb_input_set_device_button_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_key_state_t# ### type# xcb_input_key_state_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# num_keys*: uint8# pad0*: uint8# keys*: array[32, uint8]# ## *# ## @brief xcb_input_key_state_iterator_t# ### type# xcb_input_key_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_key_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_button_state_t# ### type# xcb_input_button_state_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# num_buttons*: uint8# pad0*: uint8# buttons*: array[32, uint8]# ## *# ## @brief xcb_input_button_state_iterator_t# ### type# xcb_input_button_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_button_state_t# rem*: cint# index*: cint# xcb_input_valuator_state_mode_mask_t* = enum# XCB_INPUT_VALUATOR_STATE_MODE_MASK_DEVICE_MODE_ABSOLUTE = 1,# XCB_INPUT_VALUATOR_STATE_MODE_MASK_OUT_OF_PROXIMITY = 2# ## *# ## @brief xcb_input_valuator_state_t# ### type# xcb_input_valuator_state_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# num_valuators*: uint8# mode*: uint8# ## *# ## @brief xcb_input_valuator_state_iterator_t# ### type# xcb_input_valuator_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_valuator_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_input_state_data_t# ### type# INNER_C_STRUCT_xinput_1591* {.bycopy.} = object# num_keys*: uint8# pad0*: uint8# keys*: array[32, uint8]# INNER_C_STRUCT_xinput_1596* {.bycopy.} = object# num_buttons*: uint8# pad1*: uint8# buttons*: array[32, uint8]# INNER_C_STRUCT_xinput_1601* {.bycopy.} = object# num_valuators*: uint8# mode*: uint8# valuators*: ptr int32# xcb_input_input_state_data_t* {.bycopy.} = object# key*: INNER_C_STRUCT_xinput_1591# button*: INNER_C_STRUCT_xinput_1596# valuator*: INNER_C_STRUCT_xinput_1601# ## *# ## @brief xcb_input_input_state_t# ### type# xcb_input_input_state_t* {.bycopy.} = object# class_id*: uint8# len*: uint8# proc xcb_input_input_state_data*(R: ptr xcb_input_input_state_t): pointer# ## *# ## @brief xcb_input_input_state_iterator_t# ### type# xcb_input_input_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_input_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_query_device_state_cookie_t# ### type# xcb_input_query_device_state_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_query_device_state.# const# XCB_INPUT_QUERY_DEVICE_STATE* = 30# ## *# ## @brief xcb_input_query_device_state_request_t# ### type# xcb_input_query_device_state_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_query_device_state_reply_t# ### type# xcb_input_query_device_state_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_classes*: uint8# pad0*: array[23, uint8]# ## * Opcode for xcb_input_device_bell.# const# XCB_INPUT_DEVICE_BELL* = 32# ## *# ## @brief xcb_input_device_bell_request_t# ### type# xcb_input_device_bell_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# feedback_id*: uint8# feedback_class*: uint8# percent*: int8# ## *# ## @brief xcb_input_set_device_valuators_cookie_t# ### type# xcb_input_set_device_valuators_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_set_device_valuators.# const# XCB_INPUT_SET_DEVICE_VALUATORS* = 33# ## *# ## @brief xcb_input_set_device_valuators_request_t# ### type# xcb_input_set_device_valuators_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# first_valuator*: uint8# num_valuators*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_set_device_valuators_reply_t# ### type# xcb_input_set_device_valuators_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# xcb_input_device_control_t* = enum# XCB_INPUT_DEVICE_CONTROL_RESOLUTION = 1,# XCB_INPUT_DEVICE_CONTROL_ABS_CALIB = 2, XCB_INPUT_DEVICE_CONTROL_CORE = 3,# XCB_INPUT_DEVICE_CONTROL_ENABLE = 4, XCB_INPUT_DEVICE_CONTROL_ABS_AREA = 5# ## *# ## @brief xcb_input_device_resolution_state_t# ### type# xcb_input_device_resolution_state_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# num_valuators*: uint32# ## *# ## @brief xcb_input_device_resolution_state_iterator_t# ### type# xcb_input_device_resolution_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_resolution_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_abs_calib_state_t# ### type# xcb_input_device_abs_calib_state_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# min_x*: int32# max_x*: int32# min_y*: int32# max_y*: int32# flip_x*: uint32# flip_y*: uint32# rotation*: uint32# button_threshold*: uint32# ## *# ## @brief xcb_input_device_abs_calib_state_iterator_t# ### type# xcb_input_device_abs_calib_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_abs_calib_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_abs_area_state_t# ### type# xcb_input_device_abs_area_state_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# offset_x*: uint32# offset_y*: uint32# width*: uint32# height*: uint32# screen*: uint32# following*: uint32# ## *# ## @brief xcb_input_device_abs_area_state_iterator_t# ### type# xcb_input_device_abs_area_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_abs_area_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_core_state_t# ### type# xcb_input_device_core_state_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# status*: uint8# iscore*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_device_core_state_iterator_t# ### type# xcb_input_device_core_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_core_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_enable_state_t# ### type# xcb_input_device_enable_state_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# enable*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_device_enable_state_iterator_t# ### type# xcb_input_device_enable_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_enable_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_state_data_t# ### type# INNER_C_STRUCT_xinput_1829* {.bycopy.} = object# num_valuators*: uint32# resolution_values*: ptr uint32# resolution_min*: ptr uint32# resolution_max*: ptr uint32# INNER_C_STRUCT_xinput_1835* {.bycopy.} = object# min_x*: int32# max_x*: int32# min_y*: int32# max_y*: int32# flip_x*: uint32# flip_y*: uint32# rotation*: uint32# button_threshold*: uint32# INNER_C_STRUCT_xinput_1845* {.bycopy.} = object# status*: uint8# iscore*: uint8# pad0*: array[2, uint8]# INNER_C_STRUCT_xinput_1850* {.bycopy.} = object# enable*: uint8# pad1*: array[3, uint8]# INNER_C_STRUCT_xinput_1854* {.bycopy.} = object# offset_x*: uint32# offset_y*: uint32# width*: uint32# height*: uint32# screen*: uint32# following*: uint32# xcb_input_device_state_data_t* {.bycopy.} = object# resolution*: INNER_C_STRUCT_xinput_1829# abs_calib*: INNER_C_STRUCT_xinput_1835# core*: INNER_C_STRUCT_xinput_1845# enable*: INNER_C_STRUCT_xinput_1850# abs_area*: INNER_C_STRUCT_xinput_1854# ## *# ## @brief xcb_input_device_state_t# ### type# xcb_input_device_state_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# proc xcb_input_device_state_data*(R: ptr xcb_input_device_state_t): pointer# ## *# ## @brief xcb_input_device_state_iterator_t# ### type# xcb_input_device_state_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_state_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_get_device_control_cookie_t# ### type# xcb_input_get_device_control_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_control.# const# XCB_INPUT_GET_DEVICE_CONTROL* = 34# ## *# ## @brief xcb_input_get_device_control_request_t# ### type# xcb_input_get_device_control_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# control_id*: uint16# device_id*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_get_device_control_reply_t# ### type# xcb_input_get_device_control_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_device_resolution_ctl_t# ### type# xcb_input_device_resolution_ctl_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# first_valuator*: uint8# num_valuators*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_device_resolution_ctl_iterator_t# ### type# xcb_input_device_resolution_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_resolution_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_abs_calib_ctl_t# ### type# xcb_input_device_abs_calib_ctl_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# min_x*: int32# max_x*: int32# min_y*: int32# max_y*: int32# flip_x*: uint32# flip_y*: uint32# rotation*: uint32# button_threshold*: uint32# ## *# ## @brief xcb_input_device_abs_calib_ctl_iterator_t# ### type# xcb_input_device_abs_calib_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_abs_calib_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_abs_area_ctrl_t# ### type# xcb_input_device_abs_area_ctrl_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# offset_x*: uint32# offset_y*: uint32# width*: int32# height*: int32# screen*: int32# following*: uint32# ## *# ## @brief xcb_input_device_abs_area_ctrl_iterator_t# ### type# xcb_input_device_abs_area_ctrl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_abs_area_ctrl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_core_ctrl_t# ### type# xcb_input_device_core_ctrl_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# status*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_device_core_ctrl_iterator_t# ### type# xcb_input_device_core_ctrl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_core_ctrl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_enable_ctrl_t# ### type# xcb_input_device_enable_ctrl_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# enable*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_device_enable_ctrl_iterator_t# ### type# xcb_input_device_enable_ctrl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_enable_ctrl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_ctl_data_t# ### type# INNER_C_STRUCT_xinput_2028* {.bycopy.} = object# first_valuator*: uint8# num_valuators*: uint8# pad0*: array[2, uint8]# resolution_values*: ptr uint32# INNER_C_STRUCT_xinput_2034* {.bycopy.} = object# min_x*: int32# max_x*: int32# min_y*: int32# max_y*: int32# flip_x*: uint32# flip_y*: uint32# rotation*: uint32# button_threshold*: uint32# INNER_C_STRUCT_xinput_2044* {.bycopy.} = object# status*: uint8# pad1*: array[3, uint8]# INNER_C_STRUCT_xinput_2048* {.bycopy.} = object# enable*: uint8# pad2*: array[3, uint8]# INNER_C_STRUCT_xinput_2052* {.bycopy.} = object# offset_x*: uint32# offset_y*: uint32# width*: int32# height*: int32# screen*: int32# following*: uint32# xcb_input_device_ctl_data_t* {.bycopy.} = object# resolution*: INNER_C_STRUCT_xinput_2028# abs_calib*: INNER_C_STRUCT_xinput_2034# core*: INNER_C_STRUCT_xinput_2044# enable*: INNER_C_STRUCT_xinput_2048# abs_area*: INNER_C_STRUCT_xinput_2052# ## *# ## @brief xcb_input_device_ctl_t# ### type# xcb_input_device_ctl_t* {.bycopy.} = object# control_id*: uint16# len*: uint16# proc xcb_input_device_ctl_data*(R: ptr xcb_input_device_ctl_t): pointer# ## *# ## @brief xcb_input_device_ctl_iterator_t# ### type# xcb_input_device_ctl_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_ctl_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_change_device_control_cookie_t# ### type# xcb_input_change_device_control_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_change_device_control.# const# XCB_INPUT_CHANGE_DEVICE_CONTROL* = 35# ## *# ## @brief xcb_input_change_device_control_request_t# ### type# xcb_input_change_device_control_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# control_id*: uint16# device_id*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_change_device_control_reply_t# ### type# xcb_input_change_device_control_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad0*: array[23, uint8]# ## *# ## @brief xcb_input_list_device_properties_cookie_t# ### type# xcb_input_list_device_properties_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_list_device_properties.# const# XCB_INPUT_LIST_DEVICE_PROPERTIES* = 36# ## *# ## @brief xcb_input_list_device_properties_request_t# ### type# xcb_input_list_device_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_list_device_properties_reply_t# ### type# xcb_input_list_device_properties_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# num_atoms*: uint16# pad0*: array[22, uint8]# xcb_input_property_format_t* = enum# XCB_INPUT_PROPERTY_FORMAT_8_BITS = 8, XCB_INPUT_PROPERTY_FORMAT_16_BITS = 16,# XCB_INPUT_PROPERTY_FORMAT_32_BITS = 32# ## *# ## @brief xcb_input_change_device_property_items_t# ### type# xcb_input_change_device_property_items_t* {.bycopy.} = object# data8*: ptr uint8# data16*: ptr uint16# data32*: ptr uint32# ## * Opcode for xcb_input_change_device_property.# const# XCB_INPUT_CHANGE_DEVICE_PROPERTY* = 37# ## *# ## @brief xcb_input_change_device_property_request_t# ### type# xcb_input_change_device_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# property*: xcb_atom_t# `type`*: xcb_atom_t# device_id*: uint8# format*: uint8# mode*: uint8# pad0*: uint8# num_items*: uint32# ## * Opcode for xcb_input_delete_device_property.# const# XCB_INPUT_DELETE_DEVICE_PROPERTY* = 38# ## *# ## @brief xcb_input_delete_device_property_request_t# ### type# xcb_input_delete_device_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# property*: xcb_atom_t# device_id*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_get_device_property_cookie_t# ### type# xcb_input_get_device_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_get_device_property.# const# XCB_INPUT_GET_DEVICE_PROPERTY* = 39# ## *# ## @brief xcb_input_get_device_property_request_t# ### type# xcb_input_get_device_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# property*: xcb_atom_t# `type`*: xcb_atom_t# offset*: uint32# len*: uint32# device_id*: uint8# _delete*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_get_device_property_items_t# ### type# xcb_input_get_device_property_items_t* {.bycopy.} = object# data8*: ptr uint8# data16*: ptr uint16# data32*: ptr uint32# ## *# ## @brief xcb_input_get_device_property_reply_t# ### type# xcb_input_get_device_property_reply_t* {.bycopy.} = object# response_type*: uint8# xi_reply_type*: uint8# sequence*: uint16# length*: uint32# `type`*: xcb_atom_t# bytes_after*: uint32# num_items*: uint32# format*: uint8# device_id*: uint8# pad0*: array[10, uint8]# xcb_input_device_t* = enum# XCB_INPUT_DEVICE_ALL = 0, XCB_INPUT_DEVICE_ALL_MASTER = 1# ## *# ## @brief xcb_input_group_info_t# ### type# xcb_input_group_info_t* {.bycopy.} = object# base*: uint8# latched*: uint8# locked*: uint8# effective*: uint8# ## *# ## @brief xcb_input_group_info_iterator_t# ### type# xcb_input_group_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_group_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_modifier_info_t# ### type# xcb_input_modifier_info_t* {.bycopy.} = object# base*: uint32# latched*: uint32# locked*: uint32# effective*: uint32# ## *# ## @brief xcb_input_modifier_info_iterator_t# ### type# xcb_input_modifier_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_modifier_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_xi_query_pointer_cookie_t# ### type# xcb_input_xi_query_pointer_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_query_pointer.# const# XCB_INPUT_XI_QUERY_POINTER* = 40# ## *# ## @brief xcb_input_xi_query_pointer_request_t# ### type# xcb_input_xi_query_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_query_pointer_reply_t# ### type# xcb_input_xi_query_pointer_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# root*: xcb_window_t# child*: xcb_window_t# root_x*: xcb_input_fp1616_t# root_y*: xcb_input_fp1616_t# win_x*: xcb_input_fp1616_t# win_y*: xcb_input_fp1616_t# same_screen*: uint8# pad1*: uint8# buttons_len*: uint16# mods*: xcb_input_modifier_info_t# group*: xcb_input_group_info_t# ## * Opcode for xcb_input_xi_warp_pointer.# const# XCB_INPUT_XI_WARP_POINTER* = 41# ## *# ## @brief xcb_input_xi_warp_pointer_request_t# ### type# xcb_input_xi_warp_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# src_win*: xcb_window_t# dst_win*: xcb_window_t# src_x*: xcb_input_fp1616_t# src_y*: xcb_input_fp1616_t# src_width*: uint16# src_height*: uint16# dst_x*: xcb_input_fp1616_t# dst_y*: xcb_input_fp1616_t# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## * Opcode for xcb_input_xi_change_cursor.# const# XCB_INPUT_XI_CHANGE_CURSOR* = 42# ## *# ## @brief xcb_input_xi_change_cursor_request_t# ### type# xcb_input_xi_change_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# cursor*: xcb_cursor_t# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# xcb_input_hierarchy_change_type_t* = enum# XCB_INPUT_HIERARCHY_CHANGE_TYPE_ADD_MASTER = 1,# XCB_INPUT_HIERARCHY_CHANGE_TYPE_REMOVE_MASTER = 2,# XCB_INPUT_HIERARCHY_CHANGE_TYPE_ATTACH_SLAVE = 3,# XCB_INPUT_HIERARCHY_CHANGE_TYPE_DETACH_SLAVE = 4# xcb_input_change_mode_t* = enum# XCB_INPUT_CHANGE_MODE_ATTACH = 1, XCB_INPUT_CHANGE_MODE_FLOAT = 2# ## *# ## @brief xcb_input_add_master_t# ### type# xcb_input_add_master_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# name_len*: uint16# send_core*: uint8# enable*: uint8# ## *# ## @brief xcb_input_add_master_iterator_t# ### type# xcb_input_add_master_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_add_master_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_remove_master_t# ### type# xcb_input_remove_master_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# deviceid*: xcb_input_device_id_t# return_mode*: uint8# pad0*: uint8# return_pointer*: xcb_input_device_id_t# return_keyboard*: xcb_input_device_id_t# ## *# ## @brief xcb_input_remove_master_iterator_t# ### type# xcb_input_remove_master_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_remove_master_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_attach_slave_t# ### type# xcb_input_attach_slave_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# deviceid*: xcb_input_device_id_t# master*: xcb_input_device_id_t# ## *# ## @brief xcb_input_attach_slave_iterator_t# ### type# xcb_input_attach_slave_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_attach_slave_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_detach_slave_t# ### type# xcb_input_detach_slave_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_detach_slave_iterator_t# ### type# xcb_input_detach_slave_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_detach_slave_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_hierarchy_change_data_t# ### type# INNER_C_STRUCT_xinput_2469* {.bycopy.} = object# name_len*: uint16# send_core*: uint8# enable*: uint8# name*: cstring# INNER_C_STRUCT_xinput_2475* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# return_mode*: uint8# pad1*: uint8# return_pointer*: xcb_input_device_id_t# return_keyboard*: xcb_input_device_id_t# INNER_C_STRUCT_xinput_2482* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# master*: xcb_input_device_id_t# INNER_C_STRUCT_xinput_2486* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# pad2*: array[2, uint8]# xcb_input_hierarchy_change_data_t* {.bycopy.} = object# add_master*: INNER_C_STRUCT_xinput_2469# remove_master*: INNER_C_STRUCT_xinput_2475# attach_slave*: INNER_C_STRUCT_xinput_2482# detach_slave*: INNER_C_STRUCT_xinput_2486# ## *# ## @brief xcb_input_hierarchy_change_t# ### type# xcb_input_hierarchy_change_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# proc xcb_input_hierarchy_change_data*(R: ptr xcb_input_hierarchy_change_t): pointer# ## *# ## @brief xcb_input_hierarchy_change_iterator_t# ### type# xcb_input_hierarchy_change_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_hierarchy_change_t# rem*: cint# index*: cint# ## * Opcode for xcb_input_xi_change_hierarchy.# const# XCB_INPUT_XI_CHANGE_HIERARCHY* = 43# ## *# ## @brief xcb_input_xi_change_hierarchy_request_t# ### type# xcb_input_xi_change_hierarchy_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# num_changes*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_input_xi_set_client_pointer.# const# XCB_INPUT_XI_SET_CLIENT_POINTER* = 44# ## *# ## @brief xcb_input_xi_set_client_pointer_request_t# ### type# xcb_input_xi_set_client_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_get_client_pointer_cookie_t# ### type# xcb_input_xi_get_client_pointer_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_get_client_pointer.# const# XCB_INPUT_XI_GET_CLIENT_POINTER* = 45# ## *# ## @brief xcb_input_xi_get_client_pointer_request_t# ### type# xcb_input_xi_get_client_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_input_xi_get_client_pointer_reply_t# ### type# xcb_input_xi_get_client_pointer_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# set*: uint8# pad1*: uint8# deviceid*: xcb_input_device_id_t# pad2*: array[20, uint8]# xcb_input_xi_event_mask_t* = enum# XCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED = 2,# XCB_INPUT_XI_EVENT_MASK_KEY_PRESS = 4, XCB_INPUT_XI_EVENT_MASK_KEY_RELEASE = 8,# XCB_INPUT_XI_EVENT_MASK_BUTTON_PRESS = 16,# XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE = 32,# XCB_INPUT_XI_EVENT_MASK_MOTION = 64, XCB_INPUT_XI_EVENT_MASK_ENTER = 128,# XCB_INPUT_XI_EVENT_MASK_LEAVE = 256, XCB_INPUT_XI_EVENT_MASK_FOCUS_IN = 512,# XCB_INPUT_XI_EVENT_MASK_FOCUS_OUT = 1024,# XCB_INPUT_XI_EVENT_MASK_HIERARCHY = 2048,# XCB_INPUT_XI_EVENT_MASK_PROPERTY = 4096,# XCB_INPUT_XI_EVENT_MASK_RAW_KEY_PRESS = 8192,# XCB_INPUT_XI_EVENT_MASK_RAW_KEY_RELEASE = 16384,# XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_PRESS = 32768,# XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_RELEASE = 65536,# XCB_INPUT_XI_EVENT_MASK_RAW_MOTION = 131072,# XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN = 262144,# XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE = 524288,# XCB_INPUT_XI_EVENT_MASK_TOUCH_END = 1048576,# XCB_INPUT_XI_EVENT_MASK_TOUCH_OWNERSHIP = 2097152,# XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_BEGIN = 4194304,# XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_UPDATE = 8388608,# XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_END = 16777216,# XCB_INPUT_XI_EVENT_MASK_BARRIER_HIT = 33554432,# XCB_INPUT_XI_EVENT_MASK_BARRIER_LEAVE = 67108864# ## *# ## @brief xcb_input_event_mask_t# ### type# xcb_input_event_mask_t* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# mask_len*: uint16# ## *# ## @brief xcb_input_event_mask_iterator_t# ### type# xcb_input_event_mask_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_event_mask_t# rem*: cint# index*: cint# ## * Opcode for xcb_input_xi_select_events.# const# XCB_INPUT_XI_SELECT_EVENTS* = 46# ## *# ## @brief xcb_input_xi_select_events_request_t# ### type# xcb_input_xi_select_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# num_mask*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_query_version_cookie_t# ### type# xcb_input_xi_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_query_version.# const# XCB_INPUT_XI_QUERY_VERSION* = 47# ## *# ## @brief xcb_input_xi_query_version_request_t# ### type# xcb_input_xi_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint16# minor_version*: uint16# ## *# ## @brief xcb_input_xi_query_version_reply_t# ### type# xcb_input_xi_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint16# minor_version*: uint16# pad1*: array[20, uint8]# xcb_input_device_class_type_t* = enum# XCB_INPUT_DEVICE_CLASS_TYPE_KEY = 0, XCB_INPUT_DEVICE_CLASS_TYPE_BUTTON = 1,# XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR = 2,# XCB_INPUT_DEVICE_CLASS_TYPE_SCROLL = 3, XCB_INPUT_DEVICE_CLASS_TYPE_TOUCH = 8# xcb_input_device_type_t* = enum# XCB_INPUT_DEVICE_TYPE_MASTER_POINTER = 1,# XCB_INPUT_DEVICE_TYPE_MASTER_KEYBOARD = 2,# XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER = 3,# XCB_INPUT_DEVICE_TYPE_SLAVE_KEYBOARD = 4,# XCB_INPUT_DEVICE_TYPE_FLOATING_SLAVE = 5# xcb_input_scroll_flags_t* = enum# XCB_INPUT_SCROLL_FLAGS_NO_EMULATION = 1, XCB_INPUT_SCROLL_FLAGS_PREFERRED = 2# xcb_input_scroll_type_t* = enum# XCB_INPUT_SCROLL_TYPE_VERTICAL = 1, XCB_INPUT_SCROLL_TYPE_HORIZONTAL = 2# xcb_input_touch_mode_t* = enum# XCB_INPUT_TOUCH_MODE_DIRECT = 1, XCB_INPUT_TOUCH_MODE_DEPENDENT = 2# ## *# ## @brief xcb_input_button_class_t# ### type# xcb_input_button_class_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# sourceid*: xcb_input_device_id_t# num_buttons*: uint16# ## *# ## @brief xcb_input_button_class_iterator_t# ### type# xcb_input_button_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_button_class_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_key_class_t# ### type# xcb_input_key_class_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# sourceid*: xcb_input_device_id_t# num_keys*: uint16# ## *# ## @brief xcb_input_key_class_iterator_t# ### type# xcb_input_key_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_key_class_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_scroll_class_t# ### type# xcb_input_scroll_class_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# sourceid*: xcb_input_device_id_t# number*: uint16# scroll_type*: uint16# pad0*: array[2, uint8]# flags*: uint32# increment*: xcb_input_fp3232_t# ## *# ## @brief xcb_input_scroll_class_iterator_t# ### type# xcb_input_scroll_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_scroll_class_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_touch_class_t# ### type# xcb_input_touch_class_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# sourceid*: xcb_input_device_id_t# mode*: uint8# num_touches*: uint8# ## *# ## @brief xcb_input_touch_class_iterator_t# ### type# xcb_input_touch_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_touch_class_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_valuator_class_t# ### type# xcb_input_valuator_class_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# sourceid*: xcb_input_device_id_t# number*: uint16# label*: xcb_atom_t# min*: xcb_input_fp3232_t# max*: xcb_input_fp3232_t# value*: xcb_input_fp3232_t# resolution*: uint32# mode*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_valuator_class_iterator_t# ### type# xcb_input_valuator_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_valuator_class_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_device_class_data_t# ### type# INNER_C_STRUCT_xinput_2812* {.bycopy.} = object# num_keys*: uint16# keys*: ptr uint32# INNER_C_STRUCT_xinput_2816* {.bycopy.} = object# num_buttons*: uint16# state*: ptr uint32# labels*: ptr xcb_atom_t# INNER_C_STRUCT_xinput_2821* {.bycopy.} = object# number*: uint16# label*: xcb_atom_t# min*: xcb_input_fp3232_t# max*: xcb_input_fp3232_t# value*: xcb_input_fp3232_t# resolution*: uint32# mode*: uint8# pad0*: array[3, uint8]# INNER_C_STRUCT_xinput_2831* {.bycopy.} = object# number*: uint16# scroll_type*: uint16# pad1*: array[2, uint8]# flags*: uint32# increment*: xcb_input_fp3232_t# INNER_C_STRUCT_xinput_2838* {.bycopy.} = object# mode*: uint8# num_touches*: uint8# xcb_input_device_class_data_t* {.bycopy.} = object# key*: INNER_C_STRUCT_xinput_2812# button*: INNER_C_STRUCT_xinput_2816# valuator*: INNER_C_STRUCT_xinput_2821# scroll*: INNER_C_STRUCT_xinput_2831# touch*: INNER_C_STRUCT_xinput_2838# ## *# ## @brief xcb_input_device_class_t# ### type# xcb_input_device_class_t* {.bycopy.} = object# `type`*: uint16# len*: uint16# sourceid*: xcb_input_device_id_t# proc xcb_input_device_class_data*(R: ptr xcb_input_device_class_t): pointer# ## *# ## @brief xcb_input_device_class_iterator_t# ### type# xcb_input_device_class_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_device_class_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_xi_device_info_t# ### type# xcb_input_xi_device_info_t* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# `type`*: uint16# attachment*: xcb_input_device_id_t# num_classes*: uint16# name_len*: uint16# enabled*: uint8# pad0*: uint8# ## *# ## @brief xcb_input_xi_device_info_iterator_t# ### type# xcb_input_xi_device_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_xi_device_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_xi_query_device_cookie_t# ### type# xcb_input_xi_query_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_query_device.# const# XCB_INPUT_XI_QUERY_DEVICE* = 48# ## *# ## @brief xcb_input_xi_query_device_request_t# ### type# xcb_input_xi_query_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_query_device_reply_t# ### type# xcb_input_xi_query_device_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_infos*: uint16# pad1*: array[22, uint8]# ## * Opcode for xcb_input_xi_set_focus.# const# XCB_INPUT_XI_SET_FOCUS* = 49# ## *# ## @brief xcb_input_xi_set_focus_request_t# ### type# xcb_input_xi_set_focus_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# time*: xcb_timestamp_t# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_get_focus_cookie_t# ### type# xcb_input_xi_get_focus_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_get_focus.# const# XCB_INPUT_XI_GET_FOCUS* = 50# ## *# ## @brief xcb_input_xi_get_focus_request_t# ### type# xcb_input_xi_get_focus_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_get_focus_reply_t# ### type# xcb_input_xi_get_focus_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# focus*: xcb_window_t# pad1*: array[20, uint8]# xcb_input_grab_owner_t* = enum# XCB_INPUT_GRAB_OWNER_NO_OWNER = 0, XCB_INPUT_GRAB_OWNER_OWNER = 1# ## *# ## @brief xcb_input_xi_grab_device_cookie_t# ### type# xcb_input_xi_grab_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_grab_device.# const# XCB_INPUT_XI_GRAB_DEVICE* = 51# ## *# ## @brief xcb_input_xi_grab_device_request_t# ### type# xcb_input_xi_grab_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# time*: xcb_timestamp_t# cursor*: xcb_cursor_t# deviceid*: xcb_input_device_id_t# mode*: uint8# paired_device_mode*: uint8# owner_events*: uint8# pad0*: uint8# mask_len*: uint16# ## *# ## @brief xcb_input_xi_grab_device_reply_t# ### type# xcb_input_xi_grab_device_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# status*: uint8# pad1*: array[23, uint8]# ## * Opcode for xcb_input_xi_ungrab_device.# const# XCB_INPUT_XI_UNGRAB_DEVICE* = 52# ## *# ## @brief xcb_input_xi_ungrab_device_request_t# ### type# xcb_input_xi_ungrab_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# time*: xcb_timestamp_t# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# xcb_input_event_mode_t* = enum# XCB_INPUT_EVENT_MODE_ASYNC_DEVICE = 0, XCB_INPUT_EVENT_MODE_SYNC_DEVICE = 1,# XCB_INPUT_EVENT_MODE_REPLAY_DEVICE = 2,# XCB_INPUT_EVENT_MODE_ASYNC_PAIRED_DEVICE = 3,# XCB_INPUT_EVENT_MODE_ASYNC_PAIR = 4, XCB_INPUT_EVENT_MODE_SYNC_PAIR = 5,# XCB_INPUT_EVENT_MODE_ACCEPT_TOUCH = 6, XCB_INPUT_EVENT_MODE_REJECT_TOUCH = 7# ## * Opcode for xcb_input_xi_allow_events.# const# XCB_INPUT_XI_ALLOW_EVENTS* = 53# ## *# ## @brief xcb_input_xi_allow_events_request_t# ### type# xcb_input_xi_allow_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# time*: xcb_timestamp_t# deviceid*: xcb_input_device_id_t# event_mode*: uint8# pad0*: uint8# touchid*: uint32# grab_window*: xcb_window_t# xcb_input_grab_mode_22_t* = enum# XCB_INPUT_GRAB_MODE_22_SYNC = 0, XCB_INPUT_GRAB_MODE_22_ASYNC = 1,# XCB_INPUT_GRAB_MODE_22_TOUCH = 2# xcb_input_grab_type_t* = enum# XCB_INPUT_GRAB_TYPE_BUTTON = 0, XCB_INPUT_GRAB_TYPE_KEYCODE = 1,# XCB_INPUT_GRAB_TYPE_ENTER = 2, XCB_INPUT_GRAB_TYPE_FOCUS_IN = 3,# XCB_INPUT_GRAB_TYPE_TOUCH_BEGIN = 4# xcb_input_modifier_mask_t* = enum# XCB_INPUT_MODIFIER_MASK_ANY = 2147483648'i64# ## *# ## @brief xcb_input_grab_modifier_info_t# ### type# xcb_input_grab_modifier_info_t* {.bycopy.} = object# modifiers*: uint32# status*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_grab_modifier_info_iterator_t# ### type# xcb_input_grab_modifier_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_grab_modifier_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_input_xi_passive_grab_device_cookie_t# ### type# xcb_input_xi_passive_grab_device_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_passive_grab_device.# const# XCB_INPUT_XI_PASSIVE_GRAB_DEVICE* = 54# ## *# ## @brief xcb_input_xi_passive_grab_device_request_t# ### type# xcb_input_xi_passive_grab_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# time*: xcb_timestamp_t# grab_window*: xcb_window_t# cursor*: xcb_cursor_t# detail*: uint32# deviceid*: xcb_input_device_id_t# num_modifiers*: uint16# mask_len*: uint16# grab_type*: uint8# grab_mode*: uint8# paired_device_mode*: uint8# owner_events*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_passive_grab_device_reply_t# ### type# xcb_input_xi_passive_grab_device_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_modifiers*: uint16# pad1*: array[22, uint8]# ## * Opcode for xcb_input_xi_passive_ungrab_device.# const# XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE* = 55# ## *# ## @brief xcb_input_xi_passive_ungrab_device_request_t# ### type# xcb_input_xi_passive_ungrab_device_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# grab_window*: xcb_window_t# detail*: uint32# deviceid*: xcb_input_device_id_t# num_modifiers*: uint16# grab_type*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_input_xi_list_properties_cookie_t# ### type# xcb_input_xi_list_properties_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_list_properties.# const# XCB_INPUT_XI_LIST_PROPERTIES* = 56# ## *# ## @brief xcb_input_xi_list_properties_request_t# ### type# xcb_input_xi_list_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_input_xi_list_properties_reply_t# ### type# xcb_input_xi_list_properties_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_properties*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_input_xi_change_property_items_t# ### type# xcb_input_xi_change_property_items_t* {.bycopy.} = object# data8*: ptr uint8# data16*: ptr uint16# data32*: ptr uint32# ## * Opcode for xcb_input_xi_change_property.# const# XCB_INPUT_XI_CHANGE_PROPERTY* = 57# ## *# ## @brief xcb_input_xi_change_property_request_t# ### type# xcb_input_xi_change_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceid*: xcb_input_device_id_t# mode*: uint8# format*: uint8# property*: xcb_atom_t# `type`*: xcb_atom_t# num_items*: uint32# ## * Opcode for xcb_input_xi_delete_property.# const# XCB_INPUT_XI_DELETE_PROPERTY* = 58# ## *# ## @brief xcb_input_xi_delete_property_request_t# ### type# xcb_input_xi_delete_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# property*: xcb_atom_t# ## *# ## @brief xcb_input_xi_get_property_cookie_t# ### type# xcb_input_xi_get_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_get_property.# const# XCB_INPUT_XI_GET_PROPERTY* = 59# ## *# ## @brief xcb_input_xi_get_property_request_t# ### type# xcb_input_xi_get_property_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceid*: xcb_input_device_id_t# _delete*: uint8# pad0*: uint8# property*: xcb_atom_t# `type`*: xcb_atom_t# offset*: uint32# len*: uint32# ## *# ## @brief xcb_input_xi_get_property_items_t# ### type# xcb_input_xi_get_property_items_t* {.bycopy.} = object# data8*: ptr uint8# data16*: ptr uint16# data32*: ptr uint32# ## *# ## @brief xcb_input_xi_get_property_reply_t# ### type# xcb_input_xi_get_property_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# `type`*: xcb_atom_t# bytes_after*: uint32# num_items*: uint32# format*: uint8# pad1*: array[11, uint8]# ## *# ## @brief xcb_input_xi_get_selected_events_cookie_t# ### type# xcb_input_xi_get_selected_events_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_input_xi_get_selected_events.# const# XCB_INPUT_XI_GET_SELECTED_EVENTS* = 60# ## *# ## @brief xcb_input_xi_get_selected_events_request_t# ### type# xcb_input_xi_get_selected_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_input_xi_get_selected_events_reply_t# ### type# xcb_input_xi_get_selected_events_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_masks*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_input_barrier_release_pointer_info_t# ### type# xcb_input_barrier_release_pointer_info_t* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# barrier*: xcb_xfixes_barrier_t# eventid*: uint32# ## *# ## @brief xcb_input_barrier_release_pointer_info_iterator_t# ### type# xcb_input_barrier_release_pointer_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_barrier_release_pointer_info_t# rem*: cint# index*: cint# ## * Opcode for xcb_input_xi_barrier_release_pointer.# const# XCB_INPUT_XI_BARRIER_RELEASE_POINTER* = 61# ## *# ## @brief xcb_input_xi_barrier_release_pointer_request_t# ### type# xcb_input_xi_barrier_release_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# num_barriers*: uint32# ## * Opcode for xcb_input_device_valuator.# const# XCB_INPUT_DEVICE_VALUATOR* = 0# ## *# ## @brief xcb_input_device_valuator_event_t# ### type# xcb_input_device_valuator_event_t* {.bycopy.} = object# response_type*: uint8# device_id*: uint8# sequence*: uint16# device_state*: uint16# num_valuators*: uint8# first_valuator*: uint8# valuators*: array[6, int32]# xcb_input_more_events_mask_t* = enum# XCB_INPUT_MORE_EVENTS_MASK_MORE_EVENTS = 128# ## * Opcode for xcb_input_device_key_press.# const# XCB_INPUT_DEVICE_KEY_PRESS* = 1# ## *# ## @brief xcb_input_device_key_press_event_t# ### type# xcb_input_device_key_press_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# same_screen*: uint8# device_id*: uint8# ## * Opcode for xcb_input_device_key_release.# const# XCB_INPUT_DEVICE_KEY_RELEASE* = 2# type# xcb_input_device_key_release_event_t* = xcb_input_device_key_press_event_t# ## * Opcode for xcb_input_device_button_press.# const# XCB_INPUT_DEVICE_BUTTON_PRESS* = 3# type# xcb_input_device_button_press_event_t* = xcb_input_device_key_press_event_t# ## * Opcode for xcb_input_device_button_release.# const# XCB_INPUT_DEVICE_BUTTON_RELEASE* = 4# type# xcb_input_device_button_release_event_t* = xcb_input_device_key_press_event_t# ## * Opcode for xcb_input_device_motion_notify.# const# XCB_INPUT_DEVICE_MOTION_NOTIFY* = 5# type# xcb_input_device_motion_notify_event_t* = xcb_input_device_key_press_event_t# ## * Opcode for xcb_input_device_focus_in.# const# XCB_INPUT_DEVICE_FOCUS_IN* = 6# ## *# ## @brief xcb_input_device_focus_in_event_t# ### type# xcb_input_device_focus_in_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# time*: xcb_timestamp_t# window*: xcb_window_t# mode*: uint8# device_id*: uint8# pad0*: array[18, uint8]# ## * Opcode for xcb_input_device_focus_out.# const# XCB_INPUT_DEVICE_FOCUS_OUT* = 7# type# xcb_input_device_focus_out_event_t* = xcb_input_device_focus_in_event_t# ## * Opcode for xcb_input_proximity_in.# const# XCB_INPUT_PROXIMITY_IN* = 8# type# xcb_input_proximity_in_event_t* = xcb_input_device_key_press_event_t# ## * Opcode for xcb_input_proximity_out.# const# XCB_INPUT_PROXIMITY_OUT* = 9# type# xcb_input_proximity_out_event_t* = xcb_input_device_key_press_event_t# xcb_input_classes_reported_mask_t* = enum# XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_KEYS = 1,# XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_BUTTONS = 2,# XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_VALUATORS = 4,# XCB_INPUT_CLASSES_REPORTED_MASK_DEVICE_MODE_ABSOLUTE = 64,# XCB_INPUT_CLASSES_REPORTED_MASK_OUT_OF_PROXIMITY = 128# ## * Opcode for xcb_input_device_state_notify.# const# XCB_INPUT_DEVICE_STATE_NOTIFY* = 10# ## *# ## @brief xcb_input_device_state_notify_event_t# ### type# xcb_input_device_state_notify_event_t* {.bycopy.} = object# response_type*: uint8# device_id*: uint8# sequence*: uint16# time*: xcb_timestamp_t# num_keys*: uint8# num_buttons*: uint8# num_valuators*: uint8# classes_reported*: uint8# buttons*: array[4, uint8]# keys*: array[4, uint8]# valuators*: array[3, uint32]# ## * Opcode for xcb_input_device_mapping_notify.# const# XCB_INPUT_DEVICE_MAPPING_NOTIFY* = 11# ## *# ## @brief xcb_input_device_mapping_notify_event_t# ### type# xcb_input_device_mapping_notify_event_t* {.bycopy.} = object# response_type*: uint8# device_id*: uint8# sequence*: uint16# request*: uint8# first_keycode*: xcb_input_key_code_t# count*: uint8# pad0*: uint8# time*: xcb_timestamp_t# pad1*: array[20, uint8]# xcb_input_change_device_t* = enum# XCB_INPUT_CHANGE_DEVICE_NEW_POINTER = 0,# XCB_INPUT_CHANGE_DEVICE_NEW_KEYBOARD = 1# ## * Opcode for xcb_input_change_device_notify.# const# XCB_INPUT_CHANGE_DEVICE_NOTIFY* = 12# ## *# ## @brief xcb_input_change_device_notify_event_t# ### type# xcb_input_change_device_notify_event_t* {.bycopy.} = object# response_type*: uint8# device_id*: uint8# sequence*: uint16# time*: xcb_timestamp_t# request*: uint8# pad0*: array[23, uint8]# ## * Opcode for xcb_input_device_key_state_notify.# const# XCB_INPUT_DEVICE_KEY_STATE_NOTIFY* = 13# ## *# ## @brief xcb_input_device_key_state_notify_event_t# ### type# xcb_input_device_key_state_notify_event_t* {.bycopy.} = object# response_type*: uint8# device_id*: uint8# sequence*: uint16# keys*: array[28, uint8]# ## * Opcode for xcb_input_device_button_state_notify.# const# XCB_INPUT_DEVICE_BUTTON_STATE_NOTIFY* = 14# ## *# ## @brief xcb_input_device_button_state_notify_event_t# ### type# xcb_input_device_button_state_notify_event_t* {.bycopy.} = object# response_type*: uint8# device_id*: uint8# sequence*: uint16# buttons*: array[28, uint8]# xcb_input_device_change_t* = enum# XCB_INPUT_DEVICE_CHANGE_ADDED = 0, XCB_INPUT_DEVICE_CHANGE_REMOVED = 1,# XCB_INPUT_DEVICE_CHANGE_ENABLED = 2, XCB_INPUT_DEVICE_CHANGE_DISABLED = 3,# XCB_INPUT_DEVICE_CHANGE_UNRECOVERABLE = 4,# XCB_INPUT_DEVICE_CHANGE_CONTROL_CHANGED = 5# ## * Opcode for xcb_input_device_presence_notify.# const# XCB_INPUT_DEVICE_PRESENCE_NOTIFY* = 15# ## *# ## @brief xcb_input_device_presence_notify_event_t# ### type# xcb_input_device_presence_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# time*: xcb_timestamp_t# devchange*: uint8# device_id*: uint8# control*: uint16# pad1*: array[20, uint8]# ## * Opcode for xcb_input_device_property_notify.# const# XCB_INPUT_DEVICE_PROPERTY_NOTIFY* = 16# ## *# ## @brief xcb_input_device_property_notify_event_t# ### type# xcb_input_device_property_notify_event_t* {.bycopy.} = object# response_type*: uint8# state*: uint8# sequence*: uint16# time*: xcb_timestamp_t# property*: xcb_atom_t# pad0*: array[19, uint8]# device_id*: uint8# xcb_input_change_reason_t* = enum# XCB_INPUT_CHANGE_REASON_SLAVE_SWITCH = 1,# XCB_INPUT_CHANGE_REASON_DEVICE_CHANGE = 2# ## * Opcode for xcb_input_device_changed.# const# XCB_INPUT_DEVICE_CHANGED* = 1# ## *# ## @brief xcb_input_device_changed_event_t# ### type# xcb_input_device_changed_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# num_classes*: uint16# sourceid*: xcb_input_device_id_t# reason*: uint8# pad0*: array[11, uint8]# full_sequence*: uint32# xcb_input_key_event_flags_t* = enum# XCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT = 65536# ## * Opcode for xcb_input_key_press.# const# XCB_INPUT_KEY_PRESS* = 2# ## *# ## @brief xcb_input_key_press_event_t# ### type# xcb_input_key_press_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# detail*: uint32# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# full_sequence*: uint32# root_x*: xcb_input_fp1616_t# root_y*: xcb_input_fp1616_t# event_x*: xcb_input_fp1616_t# event_y*: xcb_input_fp1616_t# buttons_len*: uint16# valuators_len*: uint16# sourceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# flags*: uint32# mods*: xcb_input_modifier_info_t# group*: xcb_input_group_info_t# ## * Opcode for xcb_input_key_release.# const# XCB_INPUT_KEY_RELEASE* = 3# type# xcb_input_key_release_event_t* = xcb_input_key_press_event_t# xcb_input_pointer_event_flags_t* = enum# XCB_INPUT_POINTER_EVENT_FLAGS_POINTER_EMULATED = 65536# ## * Opcode for xcb_input_button_press.# const# XCB_INPUT_BUTTON_PRESS* = 4# ## *# ## @brief xcb_input_button_press_event_t# ### type# xcb_input_button_press_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# detail*: uint32# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# full_sequence*: uint32# root_x*: xcb_input_fp1616_t# root_y*: xcb_input_fp1616_t# event_x*: xcb_input_fp1616_t# event_y*: xcb_input_fp1616_t# buttons_len*: uint16# valuators_len*: uint16# sourceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# flags*: uint32# mods*: xcb_input_modifier_info_t# group*: xcb_input_group_info_t# ## * Opcode for xcb_input_button_release.# const# XCB_INPUT_BUTTON_RELEASE* = 5# type# xcb_input_button_release_event_t* = xcb_input_button_press_event_t# ## * Opcode for xcb_input_motion.# const# XCB_INPUT_MOTION* = 6# type# xcb_input_motion_event_t* = xcb_input_button_press_event_t# xcb_input_notify_mode_t* = enum# XCB_INPUT_NOTIFY_MODE_NORMAL = 0, XCB_INPUT_NOTIFY_MODE_GRAB = 1,# XCB_INPUT_NOTIFY_MODE_UNGRAB = 2, XCB_INPUT_NOTIFY_MODE_WHILE_GRABBED = 3,# XCB_INPUT_NOTIFY_MODE_PASSIVE_GRAB = 4,# XCB_INPUT_NOTIFY_MODE_PASSIVE_UNGRAB = 5# xcb_input_notify_detail_t* = enum# XCB_INPUT_NOTIFY_DETAIL_ANCESTOR = 0, XCB_INPUT_NOTIFY_DETAIL_VIRTUAL = 1,# XCB_INPUT_NOTIFY_DETAIL_INFERIOR = 2, XCB_INPUT_NOTIFY_DETAIL_NONLINEAR = 3,# XCB_INPUT_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,# XCB_INPUT_NOTIFY_DETAIL_POINTER = 5, XCB_INPUT_NOTIFY_DETAIL_POINTER_ROOT = 6,# XCB_INPUT_NOTIFY_DETAIL_NONE = 7# ## * Opcode for xcb_input_enter.# const# XCB_INPUT_ENTER* = 7# ## *# ## @brief xcb_input_enter_event_t# ### type# xcb_input_enter_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# sourceid*: xcb_input_device_id_t# mode*: uint8# detail*: uint8# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# full_sequence*: uint32# root_x*: xcb_input_fp1616_t# root_y*: xcb_input_fp1616_t# event_x*: xcb_input_fp1616_t# event_y*: xcb_input_fp1616_t# same_screen*: uint8# focus*: uint8# buttons_len*: uint16# mods*: xcb_input_modifier_info_t# group*: xcb_input_group_info_t# ## * Opcode for xcb_input_leave.# const# XCB_INPUT_LEAVE* = 8# type# xcb_input_leave_event_t* = xcb_input_enter_event_t# ## * Opcode for xcb_input_focus_in.# const# XCB_INPUT_FOCUS_IN* = 9# type# xcb_input_focus_in_event_t* = xcb_input_enter_event_t# ## * Opcode for xcb_input_focus_out.# const# XCB_INPUT_FOCUS_OUT* = 10# type# xcb_input_focus_out_event_t* = xcb_input_enter_event_t# xcb_input_hierarchy_mask_t* = enum# XCB_INPUT_HIERARCHY_MASK_MASTER_ADDED = 1,# XCB_INPUT_HIERARCHY_MASK_MASTER_REMOVED = 2,# XCB_INPUT_HIERARCHY_MASK_SLAVE_ADDED = 4,# XCB_INPUT_HIERARCHY_MASK_SLAVE_REMOVED = 8,# XCB_INPUT_HIERARCHY_MASK_SLAVE_ATTACHED = 16,# XCB_INPUT_HIERARCHY_MASK_SLAVE_DETACHED = 32,# XCB_INPUT_HIERARCHY_MASK_DEVICE_ENABLED = 64,# XCB_INPUT_HIERARCHY_MASK_DEVICE_DISABLED = 128# ## *# ## @brief xcb_input_hierarchy_info_t# ### type# xcb_input_hierarchy_info_t* {.bycopy.} = object# deviceid*: xcb_input_device_id_t# attachment*: xcb_input_device_id_t# `type`*: uint8# enabled*: uint8# pad0*: array[2, uint8]# flags*: uint32# ## *# ## @brief xcb_input_hierarchy_info_iterator_t# ### type# xcb_input_hierarchy_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_hierarchy_info_t# rem*: cint# index*: cint# ## * Opcode for xcb_input_hierarchy.# const# XCB_INPUT_HIERARCHY* = 11# ## *# ## @brief xcb_input_hierarchy_event_t# ### type# xcb_input_hierarchy_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# flags*: uint32# num_infos*: uint16# pad0*: array[10, uint8]# full_sequence*: uint32# xcb_input_property_flag_t* = enum# XCB_INPUT_PROPERTY_FLAG_DELETED = 0, XCB_INPUT_PROPERTY_FLAG_CREATED = 1,# XCB_INPUT_PROPERTY_FLAG_MODIFIED = 2# ## * Opcode for xcb_input_property.# const# XCB_INPUT_PROPERTY* = 12# ## *# ## @brief xcb_input_property_event_t# ### type# xcb_input_property_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# property*: xcb_atom_t# what*: uint8# pad0*: array[11, uint8]# full_sequence*: uint32# ## * Opcode for xcb_input_raw_key_press.# const# XCB_INPUT_RAW_KEY_PRESS* = 13# ## *# ## @brief xcb_input_raw_key_press_event_t# ### type# xcb_input_raw_key_press_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# detail*: uint32# sourceid*: xcb_input_device_id_t# valuators_len*: uint16# flags*: uint32# pad0*: array[4, uint8]# full_sequence*: uint32# ## * Opcode for xcb_input_raw_key_release.# const# XCB_INPUT_RAW_KEY_RELEASE* = 14# type# xcb_input_raw_key_release_event_t* = xcb_input_raw_key_press_event_t# ## * Opcode for xcb_input_raw_button_press.# const# XCB_INPUT_RAW_BUTTON_PRESS* = 15# ## *# ## @brief xcb_input_raw_button_press_event_t# ### type# xcb_input_raw_button_press_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# detail*: uint32# sourceid*: xcb_input_device_id_t# valuators_len*: uint16# flags*: uint32# pad0*: array[4, uint8]# full_sequence*: uint32# ## * Opcode for xcb_input_raw_button_release.# const# XCB_INPUT_RAW_BUTTON_RELEASE* = 16# type# xcb_input_raw_button_release_event_t* = xcb_input_raw_button_press_event_t# ## * Opcode for xcb_input_raw_motion.# const# XCB_INPUT_RAW_MOTION* = 17# type# xcb_input_raw_motion_event_t* = xcb_input_raw_button_press_event_t# xcb_input_touch_event_flags_t* = enum# XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_PENDING_END = 65536,# XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_EMULATING_POINTER = 131072# ## * Opcode for xcb_input_touch_begin.# const# XCB_INPUT_TOUCH_BEGIN* = 18# ## *# ## @brief xcb_input_touch_begin_event_t# ### type# xcb_input_touch_begin_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# detail*: uint32# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# full_sequence*: uint32# root_x*: xcb_input_fp1616_t# root_y*: xcb_input_fp1616_t# event_x*: xcb_input_fp1616_t# event_y*: xcb_input_fp1616_t# buttons_len*: uint16# valuators_len*: uint16# sourceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# flags*: uint32# mods*: xcb_input_modifier_info_t# group*: xcb_input_group_info_t# ## * Opcode for xcb_input_touch_update.# const# XCB_INPUT_TOUCH_UPDATE* = 19# type# xcb_input_touch_update_event_t* = xcb_input_touch_begin_event_t# ## * Opcode for xcb_input_touch_end.# const# XCB_INPUT_TOUCH_END* = 20# type# xcb_input_touch_end_event_t* = xcb_input_touch_begin_event_t# xcb_input_touch_ownership_flags_t* = enum# XCB_INPUT_TOUCH_OWNERSHIP_FLAGS_NONE = 0# ## * Opcode for xcb_input_touch_ownership.# const# XCB_INPUT_TOUCH_OWNERSHIP* = 21# ## *# ## @brief xcb_input_touch_ownership_event_t# ### type# xcb_input_touch_ownership_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# touchid*: uint32# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# full_sequence*: uint32# sourceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# flags*: uint32# pad1*: array[8, uint8]# ## * Opcode for xcb_input_raw_touch_begin.# const# XCB_INPUT_RAW_TOUCH_BEGIN* = 22# ## *# ## @brief xcb_input_raw_touch_begin_event_t# ### type# xcb_input_raw_touch_begin_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# detail*: uint32# sourceid*: xcb_input_device_id_t# valuators_len*: uint16# flags*: uint32# pad0*: array[4, uint8]# full_sequence*: uint32# ## * Opcode for xcb_input_raw_touch_update.# const# XCB_INPUT_RAW_TOUCH_UPDATE* = 23# type# xcb_input_raw_touch_update_event_t* = xcb_input_raw_touch_begin_event_t# ## * Opcode for xcb_input_raw_touch_end.# const# XCB_INPUT_RAW_TOUCH_END* = 24# type# xcb_input_raw_touch_end_event_t* = xcb_input_raw_touch_begin_event_t# xcb_input_barrier_flags_t* = enum# XCB_INPUT_BARRIER_FLAGS_POINTER_RELEASED = 1,# XCB_INPUT_BARRIER_FLAGS_DEVICE_IS_GRABBED = 2# ## * Opcode for xcb_input_barrier_hit.# const# XCB_INPUT_BARRIER_HIT* = 25# ## *# ## @brief xcb_input_barrier_hit_event_t# ### type# xcb_input_barrier_hit_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# deviceid*: xcb_input_device_id_t# time*: xcb_timestamp_t# eventid*: uint32# root*: xcb_window_t# event*: xcb_window_t# barrier*: xcb_xfixes_barrier_t# full_sequence*: uint32# dtime*: uint32# flags*: uint32# sourceid*: xcb_input_device_id_t# pad0*: array[2, uint8]# root_x*: xcb_input_fp1616_t# root_y*: xcb_input_fp1616_t# dx*: xcb_input_fp3232_t# dy*: xcb_input_fp3232_t# ## * Opcode for xcb_input_barrier_leave.# const# XCB_INPUT_BARRIER_LEAVE* = 26# type# xcb_input_barrier_leave_event_t* = xcb_input_barrier_hit_event_t# ## *# ## @brief xcb_input_event_for_send_t# ### type# xcb_input_event_for_send_t* {.bycopy.} = object {.union.}# device_valuator*: xcb_input_device_valuator_event_t# device_key_press*: xcb_input_device_key_press_event_t# device_key_release*: xcb_input_device_key_release_event_t# device_button_press*: xcb_input_device_button_press_event_t# device_button_release*: xcb_input_device_button_release_event_t# device_motion_notify*: xcb_input_device_motion_notify_event_t# device_focus_in*: xcb_input_device_focus_in_event_t# device_focus_out*: xcb_input_device_focus_out_event_t# proximity_in*: xcb_input_proximity_in_event_t# proximity_out*: xcb_input_proximity_out_event_t# device_state_notify*: xcb_input_device_state_notify_event_t# device_mapping_notify*: xcb_input_device_mapping_notify_event_t# change_device_notify*: xcb_input_change_device_notify_event_t# device_key_state_notify*: xcb_input_device_key_state_notify_event_t# device_button_state_notify*: xcb_input_device_button_state_notify_event_t# device_presence_notify*: xcb_input_device_presence_notify_event_t# event_header*: xcb_raw_generic_event_t# ## *# ## @brief xcb_input_event_for_send_iterator_t# ### type# xcb_input_event_for_send_iterator_t* {.bycopy.} = object# data*: ptr xcb_input_event_for_send_t# rem*: cint# index*: cint# ## * Opcode for xcb_input_send_extension_event.# const# XCB_INPUT_SEND_EXTENSION_EVENT* = 31# ## *# ## @brief xcb_input_send_extension_event_request_t# ### type# xcb_input_send_extension_event_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# destination*: xcb_window_t# device_id*: uint8# propagate*: uint8# num_classes*: uint16# num_events*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_input_device.# const# XCB_INPUT_DEVICE* = 0# ## *# ## @brief xcb_input_device_error_t# ### type# xcb_input_device_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_input_event.# const# XCB_INPUT_EVENT* = 1# ## *# ## @brief xcb_input_event_error_t# ### type# xcb_input_event_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_input_mode.# const# XCB_INPUT_MODE* = 2# ## *# ## @brief xcb_input_mode_error_t# ### type# xcb_input_mode_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_input_device_busy.# const# XCB_INPUT_DEVICE_BUSY* = 3# ## *# ## @brief xcb_input_device_busy_error_t# ### type# xcb_input_device_busy_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_input_class.# const# XCB_INPUT_CLASS* = 4# ## *# ## @brief xcb_input_class_error_t# ### type# xcb_input_class_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_event_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_event_class_t)# ### proc xcb_input_event_class_next*(i: ptr xcb_input_event_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_event_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_event_class_end*(i: xcb_input_event_class_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_key_code_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_key_code_t)# ### proc xcb_input_key_code_next*(i: ptr xcb_input_key_code_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_key_code_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_key_code_end*(i: xcb_input_key_code_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_id_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_id_t)# ### proc xcb_input_device_id_next*(i: ptr xcb_input_device_id_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_id_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_id_end*(i: xcb_input_device_id_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_fp1616_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_fp1616_t)# ### proc xcb_input_fp1616_next*(i: ptr xcb_input_fp1616_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_fp1616_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_fp1616_end*(i: xcb_input_fp1616_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_fp3232_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_fp3232_t)# ### proc xcb_input_fp3232_next*(i: ptr xcb_input_fp3232_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_fp3232_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_fp3232_end*(i: xcb_input_fp3232_iterator_t): xcb_generic_iterator_t# proc xcb_input_get_extension_version_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_extension_version*(c: ptr xcb_connection_t; name_len: uint16;# name: cstring): xcb_input_get_extension_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_extension_version_unchecked*(c: ptr xcb_connection_t;# name_len: uint16; name: cstring): xcb_input_get_extension_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_extension_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_extension_version_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_extension_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_extension_version_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_info_t)# ### proc xcb_input_device_info_next*(i: ptr xcb_input_device_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_info_end*(i: xcb_input_device_info_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_key_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_key_info_t)# ### proc xcb_input_key_info_next*(i: ptr xcb_input_key_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_key_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_key_info_end*(i: xcb_input_key_info_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_button_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_button_info_t)# ### proc xcb_input_button_info_next*(i: ptr xcb_input_button_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_button_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_button_info_end*(i: xcb_input_button_info_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_axis_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_axis_info_t)# ### proc xcb_input_axis_info_next*(i: ptr xcb_input_axis_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_axis_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_axis_info_end*(i: xcb_input_axis_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_valuator_info_sizeof*(_buffer: pointer): cint# proc xcb_input_valuator_info_axes*(R: ptr xcb_input_valuator_info_t): ptr xcb_input_axis_info_t# proc xcb_input_valuator_info_axes_length*(R: ptr xcb_input_valuator_info_t): cint# proc xcb_input_valuator_info_axes_iterator*(R: ptr xcb_input_valuator_info_t): xcb_input_axis_info_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_valuator_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_valuator_info_t)# ### proc xcb_input_valuator_info_next*(i: ptr xcb_input_valuator_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_valuator_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_valuator_info_end*(i: xcb_input_valuator_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_input_info_info_valuator_axes*(S: ptr xcb_input_input_info_info_t): ptr xcb_input_axis_info_t# proc xcb_input_input_info_info_valuator_axes_length*(# R: ptr xcb_input_input_info_t; S: ptr xcb_input_input_info_info_t): cint# proc xcb_input_input_info_info_valuator_axes_iterator*(# R: ptr xcb_input_input_info_t; S: ptr xcb_input_input_info_info_t): xcb_input_axis_info_iterator_t# proc xcb_input_input_info_info_serialize*(_buffer: ptr pointer; class_id: uint8;# _aux: ptr xcb_input_input_info_info_t): cint# proc xcb_input_input_info_info_unpack*(_buffer: pointer; class_id: uint8;# _aux: ptr xcb_input_input_info_info_t): cint# proc xcb_input_input_info_info_sizeof*(_buffer: pointer; class_id: uint8): cint# proc xcb_input_input_info_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_input_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_input_info_t)# ### proc xcb_input_input_info_next*(i: ptr xcb_input_input_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_input_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_input_info_end*(i: xcb_input_input_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_device_name_sizeof*(_buffer: pointer): cint# proc xcb_input_device_name_string*(R: ptr xcb_input_device_name_t): cstring# proc xcb_input_device_name_string_length*(R: ptr xcb_input_device_name_t): cint# proc xcb_input_device_name_string_end*(R: ptr xcb_input_device_name_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_name_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_name_t)# ### proc xcb_input_device_name_next*(i: ptr xcb_input_device_name_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_name_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_name_end*(i: xcb_input_device_name_iterator_t): xcb_generic_iterator_t# proc xcb_input_list_input_devices_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_list_input_devices*(c: ptr xcb_connection_t): xcb_input_list_input_devices_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_list_input_devices_unchecked*(c: ptr xcb_connection_t): xcb_input_list_input_devices_cookie_t# proc xcb_input_list_input_devices_devices*(# R: ptr xcb_input_list_input_devices_reply_t): ptr xcb_input_device_info_t# proc xcb_input_list_input_devices_devices_length*(# R: ptr xcb_input_list_input_devices_reply_t): cint# proc xcb_input_list_input_devices_devices_iterator*(# R: ptr xcb_input_list_input_devices_reply_t): xcb_input_device_info_iterator_t# proc xcb_input_list_input_devices_infos_length*(# R: ptr xcb_input_list_input_devices_reply_t): cint# proc xcb_input_list_input_devices_infos_iterator*(# R: ptr xcb_input_list_input_devices_reply_t): xcb_input_input_info_iterator_t# proc xcb_input_list_input_devices_names_length*(# R: ptr xcb_input_list_input_devices_reply_t): cint# proc xcb_input_list_input_devices_names_iterator*(# R: ptr xcb_input_list_input_devices_reply_t): xcb_str_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_list_input_devices_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_list_input_devices_reply*(c: ptr xcb_connection_t; cookie: xcb_input_list_input_devices_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_list_input_devices_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_event_type_base_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_event_type_base_t)# ### proc xcb_input_event_type_base_next*(i: ptr xcb_input_event_type_base_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_event_type_base_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_event_type_base_end*(i: xcb_input_event_type_base_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_input_class_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_input_class_info_t)# ### proc xcb_input_input_class_info_next*(i: ptr xcb_input_input_class_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_input_class_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_input_class_info_end*(i: xcb_input_input_class_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_open_device_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_open_device*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_open_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_open_device_unchecked*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_open_device_cookie_t# proc xcb_input_open_device_class_info*(R: ptr xcb_input_open_device_reply_t): ptr xcb_input_input_class_info_t# proc xcb_input_open_device_class_info_length*(# R: ptr xcb_input_open_device_reply_t): cint# proc xcb_input_open_device_class_info_iterator*(# R: ptr xcb_input_open_device_reply_t): xcb_input_input_class_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_open_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_open_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_open_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_open_device_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_close_device_checked*(c: ptr xcb_connection_t; device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_close_device*(c: ptr xcb_connection_t; device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_set_device_mode*(c: ptr xcb_connection_t; device_id: uint8;# mode: uint8): xcb_input_set_device_mode_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_set_device_mode_unchecked*(c: ptr xcb_connection_t;# device_id: uint8; mode: uint8): xcb_input_set_device_mode_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_set_device_mode_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_set_device_mode_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_mode_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_mode_reply_t# proc xcb_input_select_extension_event_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_select_extension_event_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; num_classes: uint16;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_select_extension_event*(c: ptr xcb_connection_t;# window: xcb_window_t; num_classes: uint16;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# proc xcb_input_select_extension_event_classes*(# R: ptr xcb_input_select_extension_event_request_t): ptr xcb_input_event_class_t# proc xcb_input_select_extension_event_classes_length*(# R: ptr xcb_input_select_extension_event_request_t): cint# proc xcb_input_select_extension_event_classes_end*(# R: ptr xcb_input_select_extension_event_request_t): xcb_generic_iterator_t# proc xcb_input_get_selected_extension_events_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_selected_extension_events*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_input_get_selected_extension_events_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_selected_extension_events_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_input_get_selected_extension_events_cookie_t# proc xcb_input_get_selected_extension_events_this_classes*(# R: ptr xcb_input_get_selected_extension_events_reply_t): ptr xcb_input_event_class_t# proc xcb_input_get_selected_extension_events_this_classes_length*(# R: ptr xcb_input_get_selected_extension_events_reply_t): cint# proc xcb_input_get_selected_extension_events_this_classes_end*(# R: ptr xcb_input_get_selected_extension_events_reply_t): xcb_generic_iterator_t# proc xcb_input_get_selected_extension_events_all_classes*(# R: ptr xcb_input_get_selected_extension_events_reply_t): ptr xcb_input_event_class_t# proc xcb_input_get_selected_extension_events_all_classes_length*(# R: ptr xcb_input_get_selected_extension_events_reply_t): cint# proc xcb_input_get_selected_extension_events_all_classes_end*(# R: ptr xcb_input_get_selected_extension_events_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_selected_extension_events_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_selected_extension_events_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_selected_extension_events_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_selected_extension_events_reply_t# proc xcb_input_change_device_dont_propagate_list_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_change_device_dont_propagate_list_checked*(# c: ptr xcb_connection_t; window: xcb_window_t; num_classes: uint16;# mode: uint8; classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_device_dont_propagate_list*(c: ptr xcb_connection_t;# window: xcb_window_t; num_classes: uint16; mode: uint8;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# proc xcb_input_change_device_dont_propagate_list_classes*(# R: ptr xcb_input_change_device_dont_propagate_list_request_t): ptr xcb_input_event_class_t# proc xcb_input_change_device_dont_propagate_list_classes_length*(# R: ptr xcb_input_change_device_dont_propagate_list_request_t): cint# proc xcb_input_change_device_dont_propagate_list_classes_end*(# R: ptr xcb_input_change_device_dont_propagate_list_request_t): xcb_generic_iterator_t# proc xcb_input_get_device_dont_propagate_list_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_dont_propagate_list*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_input_get_device_dont_propagate_list_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_dont_propagate_list_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_input_get_device_dont_propagate_list_cookie_t# proc xcb_input_get_device_dont_propagate_list_classes*(# R: ptr xcb_input_get_device_dont_propagate_list_reply_t): ptr xcb_input_event_class_t# proc xcb_input_get_device_dont_propagate_list_classes_length*(# R: ptr xcb_input_get_device_dont_propagate_list_reply_t): cint# proc xcb_input_get_device_dont_propagate_list_classes_end*(# R: ptr xcb_input_get_device_dont_propagate_list_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_dont_propagate_list_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_dont_propagate_list_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_dont_propagate_list_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_dont_propagate_list_reply_t# proc xcb_input_device_time_coord_sizeof*(_buffer: pointer; num_axes: uint8): cint# proc xcb_input_device_time_coord_axisvalues*(R: ptr xcb_input_device_time_coord_t): ptr int32# proc xcb_input_device_time_coord_axisvalues_length*(# R: ptr xcb_input_device_time_coord_t; num_axes: uint8): cint# proc xcb_input_device_time_coord_axisvalues_end*(# R: ptr xcb_input_device_time_coord_t; num_axes: uint8): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_time_coord_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_time_coord_t)# ### proc xcb_input_device_time_coord_next*(i: ptr xcb_input_device_time_coord_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_time_coord_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_time_coord_end*(i: xcb_input_device_time_coord_iterator_t): xcb_generic_iterator_t# proc xcb_input_get_device_motion_events_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_motion_events*(c: ptr xcb_connection_t;# start: xcb_timestamp_t;# stop: xcb_timestamp_t; device_id: uint8): xcb_input_get_device_motion_events_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_motion_events_unchecked*(c: ptr xcb_connection_t;# start: xcb_timestamp_t; stop: xcb_timestamp_t; device_id: uint8): xcb_input_get_device_motion_events_cookie_t# proc xcb_input_get_device_motion_events_events_length*(# R: ptr xcb_input_get_device_motion_events_reply_t): cint# proc xcb_input_get_device_motion_events_events_iterator*(# R: ptr xcb_input_get_device_motion_events_reply_t): xcb_input_device_time_coord_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_motion_events_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_motion_events_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_motion_events_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_motion_events_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_keyboard_device*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_change_keyboard_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_change_keyboard_device_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_change_keyboard_device_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_change_keyboard_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_change_keyboard_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_change_keyboard_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_change_keyboard_device_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_pointer_device*(c: ptr xcb_connection_t; x_axis: uint8;# y_axis: uint8; device_id: uint8): xcb_input_change_pointer_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_change_pointer_device_unchecked*(c: ptr xcb_connection_t;# x_axis: uint8; y_axis: uint8; device_id: uint8): xcb_input_change_pointer_device_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_change_pointer_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_change_pointer_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_change_pointer_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_change_pointer_device_reply_t# proc xcb_input_grab_device_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_grab_device*(c: ptr xcb_connection_t; grab_window: xcb_window_t;# time: xcb_timestamp_t; num_classes: uint16;# this_device_mode: uint8; other_device_mode: uint8;# owner_events: uint8; device_id: uint8;# classes: ptr xcb_input_event_class_t): xcb_input_grab_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_grab_device_unchecked*(c: ptr xcb_connection_t;# grab_window: xcb_window_t;# time: xcb_timestamp_t; num_classes: uint16;# this_device_mode: uint8;# other_device_mode: uint8;# owner_events: uint8; device_id: uint8;# classes: ptr xcb_input_event_class_t): xcb_input_grab_device_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_grab_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_grab_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_grab_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_grab_device_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_ungrab_device_checked*(c: ptr xcb_connection_t;# time: xcb_timestamp_t; device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_ungrab_device*(c: ptr xcb_connection_t; time: xcb_timestamp_t;# device_id: uint8): xcb_void_cookie_t# proc xcb_input_grab_device_key_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_grab_device_key_checked*(c: ptr xcb_connection_t;# grab_window: xcb_window_t;# num_classes: uint16; modifiers: uint16;# modifier_device: uint8;# grabbed_device: uint8; key: uint8;# this_device_mode: uint8;# other_device_mode: uint8;# owner_events: uint8;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_grab_device_key*(c: ptr xcb_connection_t; grab_window: xcb_window_t;# num_classes: uint16; modifiers: uint16;# modifier_device: uint8; grabbed_device: uint8;# key: uint8; this_device_mode: uint8;# other_device_mode: uint8; owner_events: uint8;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# proc xcb_input_grab_device_key_classes*(R: ptr xcb_input_grab_device_key_request_t): ptr xcb_input_event_class_t# proc xcb_input_grab_device_key_classes_length*(# R: ptr xcb_input_grab_device_key_request_t): cint# proc xcb_input_grab_device_key_classes_end*(# R: ptr xcb_input_grab_device_key_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_ungrab_device_key_checked*(c: ptr xcb_connection_t;# grabWindow: xcb_window_t; modifiers: uint16; modifier_device: uint8;# key: uint8; grabbed_device: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_ungrab_device_key*(c: ptr xcb_connection_t; grabWindow: xcb_window_t;# modifiers: uint16; modifier_device: uint8;# key: uint8; grabbed_device: uint8): xcb_void_cookie_t# proc xcb_input_grab_device_button_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_grab_device_button_checked*(c: ptr xcb_connection_t;# grab_window: xcb_window_t; grabbed_device: uint8; modifier_device: uint8;# num_classes: uint16; modifiers: uint16; this_device_mode: uint8;# other_device_mode: uint8; button: uint8; owner_events: uint8;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_grab_device_button*(c: ptr xcb_connection_t;# grab_window: xcb_window_t;# grabbed_device: uint8;# modifier_device: uint8; num_classes: uint16;# modifiers: uint16; this_device_mode: uint8;# other_device_mode: uint8; button: uint8;# owner_events: uint8;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# proc xcb_input_grab_device_button_classes*(# R: ptr xcb_input_grab_device_button_request_t): ptr xcb_input_event_class_t# proc xcb_input_grab_device_button_classes_length*(# R: ptr xcb_input_grab_device_button_request_t): cint# proc xcb_input_grab_device_button_classes_end*(# R: ptr xcb_input_grab_device_button_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_ungrab_device_button_checked*(c: ptr xcb_connection_t;# grab_window: xcb_window_t; modifiers: uint16; modifier_device: uint8;# button: uint8; grabbed_device: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_ungrab_device_button*(c: ptr xcb_connection_t;# grab_window: xcb_window_t;# modifiers: uint16; modifier_device: uint8;# button: uint8; grabbed_device: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_allow_device_events_checked*(c: ptr xcb_connection_t;# time: xcb_timestamp_t; mode: uint8; device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_allow_device_events*(c: ptr xcb_connection_t; time: xcb_timestamp_t;# mode: uint8; device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_focus*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_get_device_focus_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_focus_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_get_device_focus_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_focus_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_focus_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_focus_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_focus_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_set_device_focus_checked*(c: ptr xcb_connection_t;# focus: xcb_window_t;# time: xcb_timestamp_t; revert_to: uint8;# device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_set_device_focus*(c: ptr xcb_connection_t; focus: xcb_window_t;# time: xcb_timestamp_t; revert_to: uint8;# device_id: uint8): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_kbd_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_kbd_feedback_state_t)# ### proc xcb_input_kbd_feedback_state_next*(i: ptr xcb_input_kbd_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_kbd_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_kbd_feedback_state_end*(i: xcb_input_kbd_feedback_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_ptr_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_ptr_feedback_state_t)# ### proc xcb_input_ptr_feedback_state_next*(i: ptr xcb_input_ptr_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_ptr_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_ptr_feedback_state_end*(i: xcb_input_ptr_feedback_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_integer_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_integer_feedback_state_t)# ### proc xcb_input_integer_feedback_state_next*(# i: ptr xcb_input_integer_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_integer_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_integer_feedback_state_end*(# i: xcb_input_integer_feedback_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_string_feedback_state_sizeof*(_buffer: pointer): cint# proc xcb_input_string_feedback_state_keysyms*(# R: ptr xcb_input_string_feedback_state_t): ptr xcb_keysym_t# proc xcb_input_string_feedback_state_keysyms_length*(# R: ptr xcb_input_string_feedback_state_t): cint# proc xcb_input_string_feedback_state_keysyms_end*(# R: ptr xcb_input_string_feedback_state_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_string_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_string_feedback_state_t)# ### proc xcb_input_string_feedback_state_next*(# i: ptr xcb_input_string_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_string_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_string_feedback_state_end*(# i: xcb_input_string_feedback_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_bell_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_bell_feedback_state_t)# ### proc xcb_input_bell_feedback_state_next*(i: ptr xcb_input_bell_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_bell_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_bell_feedback_state_end*(i: xcb_input_bell_feedback_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_led_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_led_feedback_state_t)# ### proc xcb_input_led_feedback_state_next*(i: ptr xcb_input_led_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_led_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_led_feedback_state_end*(i: xcb_input_led_feedback_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_feedback_state_data_string_keysyms*(# S: ptr xcb_input_feedback_state_data_t): ptr xcb_keysym_t# proc xcb_input_feedback_state_data_string_keysyms_length*(# R: ptr xcb_input_feedback_state_t; S: ptr xcb_input_feedback_state_data_t): cint# proc xcb_input_feedback_state_data_string_keysyms_end*(# R: ptr xcb_input_feedback_state_t; S: ptr xcb_input_feedback_state_data_t): xcb_generic_iterator_t# proc xcb_input_feedback_state_data_serialize*(_buffer: ptr pointer;# class_id: uint8; _aux: ptr xcb_input_feedback_state_data_t): cint# proc xcb_input_feedback_state_data_unpack*(_buffer: pointer; class_id: uint8;# _aux: ptr xcb_input_feedback_state_data_t): cint# proc xcb_input_feedback_state_data_sizeof*(_buffer: pointer; class_id: uint8): cint# proc xcb_input_feedback_state_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_feedback_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_feedback_state_t)# ### proc xcb_input_feedback_state_next*(i: ptr xcb_input_feedback_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_feedback_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_feedback_state_end*(i: xcb_input_feedback_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_get_feedback_control_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_feedback_control*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_get_feedback_control_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_feedback_control_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_get_feedback_control_cookie_t# proc xcb_input_get_feedback_control_feedbacks_length*(# R: ptr xcb_input_get_feedback_control_reply_t): cint# proc xcb_input_get_feedback_control_feedbacks_iterator*(# R: ptr xcb_input_get_feedback_control_reply_t): xcb_input_feedback_state_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_feedback_control_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_feedback_control_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_feedback_control_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_feedback_control_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_kbd_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_kbd_feedback_ctl_t)# ### proc xcb_input_kbd_feedback_ctl_next*(i: ptr xcb_input_kbd_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_kbd_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_kbd_feedback_ctl_end*(i: xcb_input_kbd_feedback_ctl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_ptr_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_ptr_feedback_ctl_t)# ### proc xcb_input_ptr_feedback_ctl_next*(i: ptr xcb_input_ptr_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_ptr_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_ptr_feedback_ctl_end*(i: xcb_input_ptr_feedback_ctl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_integer_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_integer_feedback_ctl_t)# ### proc xcb_input_integer_feedback_ctl_next*(# i: ptr xcb_input_integer_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_integer_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_integer_feedback_ctl_end*(i: xcb_input_integer_feedback_ctl_iterator_t): xcb_generic_iterator_t# proc xcb_input_string_feedback_ctl_sizeof*(_buffer: pointer): cint# proc xcb_input_string_feedback_ctl_keysyms*(# R: ptr xcb_input_string_feedback_ctl_t): ptr xcb_keysym_t# proc xcb_input_string_feedback_ctl_keysyms_length*(# R: ptr xcb_input_string_feedback_ctl_t): cint# proc xcb_input_string_feedback_ctl_keysyms_end*(# R: ptr xcb_input_string_feedback_ctl_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_string_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_string_feedback_ctl_t)# ### proc xcb_input_string_feedback_ctl_next*(i: ptr xcb_input_string_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_string_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_string_feedback_ctl_end*(i: xcb_input_string_feedback_ctl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_bell_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_bell_feedback_ctl_t)# ### proc xcb_input_bell_feedback_ctl_next*(i: ptr xcb_input_bell_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_bell_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_bell_feedback_ctl_end*(i: xcb_input_bell_feedback_ctl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_led_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_led_feedback_ctl_t)# ### proc xcb_input_led_feedback_ctl_next*(i: ptr xcb_input_led_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_led_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_led_feedback_ctl_end*(i: xcb_input_led_feedback_ctl_iterator_t): xcb_generic_iterator_t# proc xcb_input_feedback_ctl_data_string_keysyms*(# S: ptr xcb_input_feedback_ctl_data_t): ptr xcb_keysym_t# proc xcb_input_feedback_ctl_data_string_keysyms_length*(# R: ptr xcb_input_feedback_ctl_t; S: ptr xcb_input_feedback_ctl_data_t): cint# proc xcb_input_feedback_ctl_data_string_keysyms_end*(# R: ptr xcb_input_feedback_ctl_t; S: ptr xcb_input_feedback_ctl_data_t): xcb_generic_iterator_t# proc xcb_input_feedback_ctl_data_serialize*(_buffer: ptr pointer; class_id: uint8;# _aux: ptr xcb_input_feedback_ctl_data_t): cint# proc xcb_input_feedback_ctl_data_unpack*(_buffer: pointer; class_id: uint8;# _aux: ptr xcb_input_feedback_ctl_data_t): cint# proc xcb_input_feedback_ctl_data_sizeof*(_buffer: pointer; class_id: uint8): cint# proc xcb_input_feedback_ctl_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_feedback_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_feedback_ctl_t)# ### proc xcb_input_feedback_ctl_next*(i: ptr xcb_input_feedback_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_feedback_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_feedback_ctl_end*(i: xcb_input_feedback_ctl_iterator_t): xcb_generic_iterator_t# proc xcb_input_change_feedback_control_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_change_feedback_control_checked*(c: ptr xcb_connection_t;# mask: uint32; device_id: uint8; feedback_id: uint8;# feedback: ptr xcb_input_feedback_ctl_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_feedback_control*(c: ptr xcb_connection_t; mask: uint32;# device_id: uint8; feedback_id: uint8;# feedback: ptr xcb_input_feedback_ctl_t): xcb_void_cookie_t# proc xcb_input_change_feedback_control_feedback*(# R: ptr xcb_input_change_feedback_control_request_t): ptr xcb_input_feedback_ctl_t# proc xcb_input_get_device_key_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_key_mapping*(c: ptr xcb_connection_t; device_id: uint8;# first_keycode: xcb_input_key_code_t;# count: uint8): xcb_input_get_device_key_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_key_mapping_unchecked*(c: ptr xcb_connection_t;# device_id: uint8; first_keycode: xcb_input_key_code_t; count: uint8): xcb_input_get_device_key_mapping_cookie_t# proc xcb_input_get_device_key_mapping_keysyms*(# R: ptr xcb_input_get_device_key_mapping_reply_t): ptr xcb_keysym_t# proc xcb_input_get_device_key_mapping_keysyms_length*(# R: ptr xcb_input_get_device_key_mapping_reply_t): cint# proc xcb_input_get_device_key_mapping_keysyms_end*(# R: ptr xcb_input_get_device_key_mapping_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_key_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_key_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_key_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_key_mapping_reply_t# proc xcb_input_change_device_key_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_change_device_key_mapping_checked*(c: ptr xcb_connection_t;# device_id: uint8; first_keycode: xcb_input_key_code_t;# keysyms_per_keycode: uint8; keycode_count: uint8; keysyms: ptr xcb_keysym_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_device_key_mapping*(c: ptr xcb_connection_t;# device_id: uint8; first_keycode: xcb_input_key_code_t;# keysyms_per_keycode: uint8; keycode_count: uint8; keysyms: ptr xcb_keysym_t): xcb_void_cookie_t# proc xcb_input_change_device_key_mapping_keysyms*(# R: ptr xcb_input_change_device_key_mapping_request_t): ptr xcb_keysym_t# proc xcb_input_change_device_key_mapping_keysyms_length*(# R: ptr xcb_input_change_device_key_mapping_request_t): cint# proc xcb_input_change_device_key_mapping_keysyms_end*(# R: ptr xcb_input_change_device_key_mapping_request_t): xcb_generic_iterator_t# proc xcb_input_get_device_modifier_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_modifier_mapping*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_get_device_modifier_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_modifier_mapping_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_get_device_modifier_mapping_cookie_t# proc xcb_input_get_device_modifier_mapping_keymaps*(# R: ptr xcb_input_get_device_modifier_mapping_reply_t): ptr uint8# proc xcb_input_get_device_modifier_mapping_keymaps_length*(# R: ptr xcb_input_get_device_modifier_mapping_reply_t): cint# proc xcb_input_get_device_modifier_mapping_keymaps_end*(# R: ptr xcb_input_get_device_modifier_mapping_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_modifier_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_modifier_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_modifier_mapping_reply_t# proc xcb_input_set_device_modifier_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_set_device_modifier_mapping*(c: ptr xcb_connection_t;# device_id: uint8; keycodes_per_modifier: uint8; keymaps: ptr uint8): xcb_input_set_device_modifier_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_set_device_modifier_mapping_unchecked*(c: ptr xcb_connection_t;# device_id: uint8; keycodes_per_modifier: uint8; keymaps: ptr uint8): xcb_input_set_device_modifier_mapping_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_set_device_modifier_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_set_device_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_modifier_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_modifier_mapping_reply_t# proc xcb_input_get_device_button_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_button_mapping*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_get_device_button_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_button_mapping_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_get_device_button_mapping_cookie_t# proc xcb_input_get_device_button_mapping_map*(# R: ptr xcb_input_get_device_button_mapping_reply_t): ptr uint8# proc xcb_input_get_device_button_mapping_map_length*(# R: ptr xcb_input_get_device_button_mapping_reply_t): cint# proc xcb_input_get_device_button_mapping_map_end*(# R: ptr xcb_input_get_device_button_mapping_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_button_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_button_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_button_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_button_mapping_reply_t# proc xcb_input_set_device_button_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_set_device_button_mapping*(c: ptr xcb_connection_t;# device_id: uint8; map_size: uint8; map: ptr uint8): xcb_input_set_device_button_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_set_device_button_mapping_unchecked*(c: ptr xcb_connection_t;# device_id: uint8; map_size: uint8; map: ptr uint8): xcb_input_set_device_button_mapping_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_set_device_button_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_set_device_button_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_button_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_button_mapping_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_key_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_key_state_t)# ### proc xcb_input_key_state_next*(i: ptr xcb_input_key_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_key_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_key_state_end*(i: xcb_input_key_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_button_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_button_state_t)# ### proc xcb_input_button_state_next*(i: ptr xcb_input_button_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_button_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_button_state_end*(i: xcb_input_button_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_valuator_state_sizeof*(_buffer: pointer): cint# proc xcb_input_valuator_state_valuators*(R: ptr xcb_input_valuator_state_t): ptr int32# proc xcb_input_valuator_state_valuators_length*(R: ptr xcb_input_valuator_state_t): cint# proc xcb_input_valuator_state_valuators_end*(R: ptr xcb_input_valuator_state_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_valuator_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_valuator_state_t)# ### proc xcb_input_valuator_state_next*(i: ptr xcb_input_valuator_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_valuator_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_valuator_state_end*(i: xcb_input_valuator_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_input_state_data_valuator_valuators*(# S: ptr xcb_input_input_state_data_t): ptr int32# proc xcb_input_input_state_data_valuator_valuators_length*(# R: ptr xcb_input_input_state_t; S: ptr xcb_input_input_state_data_t): cint# proc xcb_input_input_state_data_valuator_valuators_end*(# R: ptr xcb_input_input_state_t; S: ptr xcb_input_input_state_data_t): xcb_generic_iterator_t# proc xcb_input_input_state_data_serialize*(_buffer: ptr pointer; class_id: uint8;# _aux: ptr xcb_input_input_state_data_t): cint# proc xcb_input_input_state_data_unpack*(_buffer: pointer; class_id: uint8;# _aux: ptr xcb_input_input_state_data_t): cint# proc xcb_input_input_state_data_sizeof*(_buffer: pointer; class_id: uint8): cint# proc xcb_input_input_state_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_input_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_input_state_t)# ### proc xcb_input_input_state_next*(i: ptr xcb_input_input_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_input_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_input_state_end*(i: xcb_input_input_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_query_device_state_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_query_device_state*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_query_device_state_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_query_device_state_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_query_device_state_cookie_t# proc xcb_input_query_device_state_classes_length*(# R: ptr xcb_input_query_device_state_reply_t): cint# proc xcb_input_query_device_state_classes_iterator*(# R: ptr xcb_input_query_device_state_reply_t): xcb_input_input_state_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_query_device_state_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_query_device_state_reply*(c: ptr xcb_connection_t; cookie: xcb_input_query_device_state_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_query_device_state_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_device_bell_checked*(c: ptr xcb_connection_t; device_id: uint8;# feedback_id: uint8; feedback_class: uint8;# percent: int8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_device_bell*(c: ptr xcb_connection_t; device_id: uint8;# feedback_id: uint8; feedback_class: uint8;# percent: int8): xcb_void_cookie_t# proc xcb_input_set_device_valuators_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_set_device_valuators*(c: ptr xcb_connection_t; device_id: uint8;# first_valuator: uint8;# num_valuators: uint8; valuators: ptr int32): xcb_input_set_device_valuators_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_set_device_valuators_unchecked*(c: ptr xcb_connection_t;# device_id: uint8; first_valuator: uint8; num_valuators: uint8;# valuators: ptr int32): xcb_input_set_device_valuators_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_set_device_valuators_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_set_device_valuators_reply*(c: ptr xcb_connection_t; cookie: xcb_input_set_device_valuators_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_set_device_valuators_reply_t# proc xcb_input_device_resolution_state_sizeof*(_buffer: pointer): cint# proc xcb_input_device_resolution_state_resolution_values*(# R: ptr xcb_input_device_resolution_state_t): ptr uint32# proc xcb_input_device_resolution_state_resolution_values_length*(# R: ptr xcb_input_device_resolution_state_t): cint# proc xcb_input_device_resolution_state_resolution_values_end*(# R: ptr xcb_input_device_resolution_state_t): xcb_generic_iterator_t# proc xcb_input_device_resolution_state_resolution_min*(# R: ptr xcb_input_device_resolution_state_t): ptr uint32# proc xcb_input_device_resolution_state_resolution_min_length*(# R: ptr xcb_input_device_resolution_state_t): cint# proc xcb_input_device_resolution_state_resolution_min_end*(# R: ptr xcb_input_device_resolution_state_t): xcb_generic_iterator_t# proc xcb_input_device_resolution_state_resolution_max*(# R: ptr xcb_input_device_resolution_state_t): ptr uint32# proc xcb_input_device_resolution_state_resolution_max_length*(# R: ptr xcb_input_device_resolution_state_t): cint# proc xcb_input_device_resolution_state_resolution_max_end*(# R: ptr xcb_input_device_resolution_state_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_resolution_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_resolution_state_t)# ### proc xcb_input_device_resolution_state_next*(# i: ptr xcb_input_device_resolution_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_resolution_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_resolution_state_end*(# i: xcb_input_device_resolution_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_abs_calib_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_abs_calib_state_t)# ### proc xcb_input_device_abs_calib_state_next*(# i: ptr xcb_input_device_abs_calib_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_abs_calib_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_abs_calib_state_end*(# i: xcb_input_device_abs_calib_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_abs_area_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_abs_area_state_t)# ### proc xcb_input_device_abs_area_state_next*(# i: ptr xcb_input_device_abs_area_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_abs_area_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_abs_area_state_end*(# i: xcb_input_device_abs_area_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_core_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_core_state_t)# ### proc xcb_input_device_core_state_next*(i: ptr xcb_input_device_core_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_core_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_core_state_end*(i: xcb_input_device_core_state_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_enable_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_enable_state_t)# ### proc xcb_input_device_enable_state_next*(i: ptr xcb_input_device_enable_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_enable_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_enable_state_end*(i: xcb_input_device_enable_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_device_state_data_resolution_resolution_values*(# S: ptr xcb_input_device_state_data_t): ptr uint32# proc xcb_input_device_state_data_resolution_resolution_values_length*(# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): cint# proc xcb_input_device_state_data_resolution_resolution_values_end*(# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): xcb_generic_iterator_t# proc xcb_input_device_state_data_resolution_resolution_min*(# S: ptr xcb_input_device_state_data_t): ptr uint32# proc xcb_input_device_state_data_resolution_resolution_min_length*(# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): cint# proc xcb_input_device_state_data_resolution_resolution_min_end*(# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): xcb_generic_iterator_t# proc xcb_input_device_state_data_resolution_resolution_max*(# S: ptr xcb_input_device_state_data_t): ptr uint32# proc xcb_input_device_state_data_resolution_resolution_max_length*(# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): cint# proc xcb_input_device_state_data_resolution_resolution_max_end*(# R: ptr xcb_input_device_state_t; S: ptr xcb_input_device_state_data_t): xcb_generic_iterator_t# proc xcb_input_device_state_data_serialize*(_buffer: ptr pointer;# control_id: uint16; _aux: ptr xcb_input_device_state_data_t): cint# proc xcb_input_device_state_data_unpack*(_buffer: pointer; control_id: uint16;# _aux: ptr xcb_input_device_state_data_t): cint# proc xcb_input_device_state_data_sizeof*(_buffer: pointer; control_id: uint16): cint# proc xcb_input_device_state_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_state_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_state_t)# ### proc xcb_input_device_state_next*(i: ptr xcb_input_device_state_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_state_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_state_end*(i: xcb_input_device_state_iterator_t): xcb_generic_iterator_t# proc xcb_input_get_device_control_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_control*(c: ptr xcb_connection_t; control_id: uint16;# device_id: uint8): xcb_input_get_device_control_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_control_unchecked*(c: ptr xcb_connection_t;# control_id: uint16; device_id: uint8): xcb_input_get_device_control_cookie_t# proc xcb_input_get_device_control_control*(# R: ptr xcb_input_get_device_control_reply_t): ptr xcb_input_device_state_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_control_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_control_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_control_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_control_reply_t# proc xcb_input_device_resolution_ctl_sizeof*(_buffer: pointer): cint# proc xcb_input_device_resolution_ctl_resolution_values*(# R: ptr xcb_input_device_resolution_ctl_t): ptr uint32# proc xcb_input_device_resolution_ctl_resolution_values_length*(# R: ptr xcb_input_device_resolution_ctl_t): cint# proc xcb_input_device_resolution_ctl_resolution_values_end*(# R: ptr xcb_input_device_resolution_ctl_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_resolution_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_resolution_ctl_t)# ### proc xcb_input_device_resolution_ctl_next*(# i: ptr xcb_input_device_resolution_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_resolution_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_resolution_ctl_end*(# i: xcb_input_device_resolution_ctl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_abs_calib_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_abs_calib_ctl_t)# ### proc xcb_input_device_abs_calib_ctl_next*(# i: ptr xcb_input_device_abs_calib_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_abs_calib_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_abs_calib_ctl_end*(i: xcb_input_device_abs_calib_ctl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_abs_area_ctrl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_abs_area_ctrl_t)# ### proc xcb_input_device_abs_area_ctrl_next*(# i: ptr xcb_input_device_abs_area_ctrl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_abs_area_ctrl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_abs_area_ctrl_end*(i: xcb_input_device_abs_area_ctrl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_core_ctrl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_core_ctrl_t)# ### proc xcb_input_device_core_ctrl_next*(i: ptr xcb_input_device_core_ctrl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_core_ctrl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_core_ctrl_end*(i: xcb_input_device_core_ctrl_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_enable_ctrl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_enable_ctrl_t)# ### proc xcb_input_device_enable_ctrl_next*(i: ptr xcb_input_device_enable_ctrl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_enable_ctrl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_enable_ctrl_end*(i: xcb_input_device_enable_ctrl_iterator_t): xcb_generic_iterator_t# proc xcb_input_device_ctl_data_resolution_resolution_values*(# S: ptr xcb_input_device_ctl_data_t): ptr uint32# proc xcb_input_device_ctl_data_resolution_resolution_values_length*(# R: ptr xcb_input_device_ctl_t; S: ptr xcb_input_device_ctl_data_t): cint# proc xcb_input_device_ctl_data_resolution_resolution_values_end*(# R: ptr xcb_input_device_ctl_t; S: ptr xcb_input_device_ctl_data_t): xcb_generic_iterator_t# proc xcb_input_device_ctl_data_serialize*(_buffer: ptr pointer;# control_id: uint16; _aux: ptr xcb_input_device_ctl_data_t): cint# proc xcb_input_device_ctl_data_unpack*(_buffer: pointer; control_id: uint16;# _aux: ptr xcb_input_device_ctl_data_t): cint# proc xcb_input_device_ctl_data_sizeof*(_buffer: pointer; control_id: uint16): cint# proc xcb_input_device_ctl_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_ctl_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_ctl_t)# ### proc xcb_input_device_ctl_next*(i: ptr xcb_input_device_ctl_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_ctl_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_ctl_end*(i: xcb_input_device_ctl_iterator_t): xcb_generic_iterator_t# proc xcb_input_change_device_control_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_device_control*(c: ptr xcb_connection_t; control_id: uint16;# device_id: uint8;# control: ptr xcb_input_device_ctl_t): xcb_input_change_device_control_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_change_device_control_unchecked*(c: ptr xcb_connection_t;# control_id: uint16; device_id: uint8; control: ptr xcb_input_device_ctl_t): xcb_input_change_device_control_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_change_device_control_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_change_device_control_reply*(c: ptr xcb_connection_t; cookie: xcb_input_change_device_control_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_change_device_control_reply_t# proc xcb_input_list_device_properties_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_list_device_properties*(c: ptr xcb_connection_t; device_id: uint8): xcb_input_list_device_properties_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_list_device_properties_unchecked*(c: ptr xcb_connection_t;# device_id: uint8): xcb_input_list_device_properties_cookie_t# proc xcb_input_list_device_properties_atoms*(# R: ptr xcb_input_list_device_properties_reply_t): ptr xcb_atom_t# proc xcb_input_list_device_properties_atoms_length*(# R: ptr xcb_input_list_device_properties_reply_t): cint# proc xcb_input_list_device_properties_atoms_end*(# R: ptr xcb_input_list_device_properties_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_list_device_properties_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_list_device_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_input_list_device_properties_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_list_device_properties_reply_t# proc xcb_input_change_device_property_items_data_8*(# S: ptr xcb_input_change_device_property_items_t): ptr uint8# proc xcb_input_change_device_property_items_data_8_length*(# R: ptr xcb_input_change_device_property_request_t;# S: ptr xcb_input_change_device_property_items_t): cint# proc xcb_input_change_device_property_items_data_8_end*(# R: ptr xcb_input_change_device_property_request_t;# S: ptr xcb_input_change_device_property_items_t): xcb_generic_iterator_t# proc xcb_input_change_device_property_items_data_16*(# S: ptr xcb_input_change_device_property_items_t): ptr uint16# proc xcb_input_change_device_property_items_data_16_length*(# R: ptr xcb_input_change_device_property_request_t;# S: ptr xcb_input_change_device_property_items_t): cint# proc xcb_input_change_device_property_items_data_16_end*(# R: ptr xcb_input_change_device_property_request_t;# S: ptr xcb_input_change_device_property_items_t): xcb_generic_iterator_t# proc xcb_input_change_device_property_items_data_32*(# S: ptr xcb_input_change_device_property_items_t): ptr uint32# proc xcb_input_change_device_property_items_data_32_length*(# R: ptr xcb_input_change_device_property_request_t;# S: ptr xcb_input_change_device_property_items_t): cint# proc xcb_input_change_device_property_items_data_32_end*(# R: ptr xcb_input_change_device_property_request_t;# S: ptr xcb_input_change_device_property_items_t): xcb_generic_iterator_t# proc xcb_input_change_device_property_items_serialize*(_buffer: ptr pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_change_device_property_items_t): cint# proc xcb_input_change_device_property_items_unpack*(_buffer: pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_change_device_property_items_t): cint# proc xcb_input_change_device_property_items_sizeof*(_buffer: pointer;# num_items: uint32; format: uint8): cint# proc xcb_input_change_device_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_change_device_property_checked*(c: ptr xcb_connection_t;# property: xcb_atom_t; `type`: xcb_atom_t; device_id: uint8; format: uint8;# mode: uint8; num_items: uint32; items: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_device_property*(c: ptr xcb_connection_t;# property: xcb_atom_t; `type`: xcb_atom_t;# device_id: uint8; format: uint8;# mode: uint8; num_items: uint32;# items: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_change_device_property_aux_checked*(c: ptr xcb_connection_t;# property: xcb_atom_t; `type`: xcb_atom_t; device_id: uint8; format: uint8;# mode: uint8; num_items: uint32;# items: ptr xcb_input_change_device_property_items_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_change_device_property_aux*(c: ptr xcb_connection_t;# property: xcb_atom_t; `type`: xcb_atom_t; device_id: uint8; format: uint8;# mode: uint8; num_items: uint32;# items: ptr xcb_input_change_device_property_items_t): xcb_void_cookie_t# proc xcb_input_change_device_property_items*(# R: ptr xcb_input_change_device_property_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_delete_device_property_checked*(c: ptr xcb_connection_t;# property: xcb_atom_t; device_id: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_delete_device_property*(c: ptr xcb_connection_t;# property: xcb_atom_t; device_id: uint8): xcb_void_cookie_t# proc xcb_input_get_device_property_items_data_8*(# S: ptr xcb_input_get_device_property_items_t): ptr uint8# proc xcb_input_get_device_property_items_data_8_length*(# R: ptr xcb_input_get_device_property_reply_t;# S: ptr xcb_input_get_device_property_items_t): cint# proc xcb_input_get_device_property_items_data_8_end*(# R: ptr xcb_input_get_device_property_reply_t;# S: ptr xcb_input_get_device_property_items_t): xcb_generic_iterator_t# proc xcb_input_get_device_property_items_data_16*(# S: ptr xcb_input_get_device_property_items_t): ptr uint16# proc xcb_input_get_device_property_items_data_16_length*(# R: ptr xcb_input_get_device_property_reply_t;# S: ptr xcb_input_get_device_property_items_t): cint# proc xcb_input_get_device_property_items_data_16_end*(# R: ptr xcb_input_get_device_property_reply_t;# S: ptr xcb_input_get_device_property_items_t): xcb_generic_iterator_t# proc xcb_input_get_device_property_items_data_32*(# S: ptr xcb_input_get_device_property_items_t): ptr uint32# proc xcb_input_get_device_property_items_data_32_length*(# R: ptr xcb_input_get_device_property_reply_t;# S: ptr xcb_input_get_device_property_items_t): cint# proc xcb_input_get_device_property_items_data_32_end*(# R: ptr xcb_input_get_device_property_reply_t;# S: ptr xcb_input_get_device_property_items_t): xcb_generic_iterator_t# proc xcb_input_get_device_property_items_serialize*(_buffer: ptr pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_get_device_property_items_t): cint# proc xcb_input_get_device_property_items_unpack*(_buffer: pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_get_device_property_items_t): cint# proc xcb_input_get_device_property_items_sizeof*(_buffer: pointer;# num_items: uint32; format: uint8): cint# proc xcb_input_get_device_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_get_device_property*(c: ptr xcb_connection_t; property: xcb_atom_t;# `type`: xcb_atom_t; offset: uint32;# len: uint32; device_id: uint8;# _delete: uint8): xcb_input_get_device_property_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_get_device_property_unchecked*(c: ptr xcb_connection_t;# property: xcb_atom_t; `type`: xcb_atom_t; offset: uint32; len: uint32;# device_id: uint8; _delete: uint8): xcb_input_get_device_property_cookie_t# proc xcb_input_get_device_property_items*(# R: ptr xcb_input_get_device_property_reply_t): pointer# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_get_device_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_get_device_property_reply*(c: ptr xcb_connection_t; cookie: xcb_input_get_device_property_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_get_device_property_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_group_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_group_info_t)# ### proc xcb_input_group_info_next*(i: ptr xcb_input_group_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_group_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_group_info_end*(i: xcb_input_group_info_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_modifier_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_modifier_info_t)# ### proc xcb_input_modifier_info_next*(i: ptr xcb_input_modifier_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_modifier_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_modifier_info_end*(i: xcb_input_modifier_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_query_pointer_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_query_pointer*(c: ptr xcb_connection_t; window: xcb_window_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_query_pointer_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_query_pointer_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; deviceid: xcb_input_device_id_t): xcb_input_xi_query_pointer_cookie_t# proc xcb_input_xi_query_pointer_buttons*(R: ptr xcb_input_xi_query_pointer_reply_t): ptr uint32# proc xcb_input_xi_query_pointer_buttons_length*(# R: ptr xcb_input_xi_query_pointer_reply_t): cint# proc xcb_input_xi_query_pointer_buttons_end*(# R: ptr xcb_input_xi_query_pointer_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_query_pointer_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_query_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_query_pointer_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_query_pointer_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_warp_pointer_checked*(c: ptr xcb_connection_t;# src_win: xcb_window_t;# dst_win: xcb_window_t;# src_x: xcb_input_fp1616_t;# src_y: xcb_input_fp1616_t;# src_width: uint16; src_height: uint16;# dst_x: xcb_input_fp1616_t;# dst_y: xcb_input_fp1616_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_warp_pointer*(c: ptr xcb_connection_t; src_win: xcb_window_t;# dst_win: xcb_window_t; src_x: xcb_input_fp1616_t;# src_y: xcb_input_fp1616_t; src_width: uint16;# src_height: uint16; dst_x: xcb_input_fp1616_t;# dst_y: xcb_input_fp1616_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_change_cursor_checked*(c: ptr xcb_connection_t;# window: xcb_window_t;# cursor: xcb_cursor_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_change_cursor*(c: ptr xcb_connection_t; window: xcb_window_t;# cursor: xcb_cursor_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# proc xcb_input_add_master_sizeof*(_buffer: pointer): cint# proc xcb_input_add_master_name*(R: ptr xcb_input_add_master_t): cstring# proc xcb_input_add_master_name_length*(R: ptr xcb_input_add_master_t): cint# proc xcb_input_add_master_name_end*(R: ptr xcb_input_add_master_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_add_master_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_add_master_t)# ### proc xcb_input_add_master_next*(i: ptr xcb_input_add_master_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_add_master_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_add_master_end*(i: xcb_input_add_master_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_remove_master_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_remove_master_t)# ### proc xcb_input_remove_master_next*(i: ptr xcb_input_remove_master_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_remove_master_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_remove_master_end*(i: xcb_input_remove_master_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_attach_slave_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_attach_slave_t)# ### proc xcb_input_attach_slave_next*(i: ptr xcb_input_attach_slave_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_attach_slave_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_attach_slave_end*(i: xcb_input_attach_slave_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_detach_slave_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_detach_slave_t)# ### proc xcb_input_detach_slave_next*(i: ptr xcb_input_detach_slave_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_detach_slave_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_detach_slave_end*(i: xcb_input_detach_slave_iterator_t): xcb_generic_iterator_t# proc xcb_input_hierarchy_change_data_add_master_name*(# S: ptr xcb_input_hierarchy_change_data_t): cstring# proc xcb_input_hierarchy_change_data_add_master_name_length*(# R: ptr xcb_input_hierarchy_change_t; S: ptr xcb_input_hierarchy_change_data_t): cint# proc xcb_input_hierarchy_change_data_add_master_name_end*(# R: ptr xcb_input_hierarchy_change_t; S: ptr xcb_input_hierarchy_change_data_t): xcb_generic_iterator_t# proc xcb_input_hierarchy_change_data_serialize*(_buffer: ptr pointer;# `type`: uint16; _aux: ptr xcb_input_hierarchy_change_data_t): cint# proc xcb_input_hierarchy_change_data_unpack*(_buffer: pointer; `type`: uint16;# _aux: ptr xcb_input_hierarchy_change_data_t): cint# proc xcb_input_hierarchy_change_data_sizeof*(_buffer: pointer; `type`: uint16): cint# proc xcb_input_hierarchy_change_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_hierarchy_change_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_hierarchy_change_t)# ### proc xcb_input_hierarchy_change_next*(i: ptr xcb_input_hierarchy_change_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_hierarchy_change_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_hierarchy_change_end*(i: xcb_input_hierarchy_change_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_change_hierarchy_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_change_hierarchy_checked*(c: ptr xcb_connection_t;# num_changes: uint8; changes: ptr xcb_input_hierarchy_change_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_change_hierarchy*(c: ptr xcb_connection_t; num_changes: uint8;# changes: ptr xcb_input_hierarchy_change_t): xcb_void_cookie_t# proc xcb_input_xi_change_hierarchy_changes_length*(# R: ptr xcb_input_xi_change_hierarchy_request_t): cint# proc xcb_input_xi_change_hierarchy_changes_iterator*(# R: ptr xcb_input_xi_change_hierarchy_request_t): xcb_input_hierarchy_change_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_set_client_pointer_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_set_client_pointer*(c: ptr xcb_connection_t; window: xcb_window_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_get_client_pointer*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_input_xi_get_client_pointer_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_get_client_pointer_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_input_xi_get_client_pointer_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_get_client_pointer_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_get_client_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_client_pointer_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_client_pointer_reply_t# proc xcb_input_event_mask_sizeof*(_buffer: pointer): cint# proc xcb_input_event_mask_mask*(R: ptr xcb_input_event_mask_t): ptr uint32# proc xcb_input_event_mask_mask_length*(R: ptr xcb_input_event_mask_t): cint# proc xcb_input_event_mask_mask_end*(R: ptr xcb_input_event_mask_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_event_mask_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_event_mask_t)# ### proc xcb_input_event_mask_next*(i: ptr xcb_input_event_mask_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_event_mask_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_event_mask_end*(i: xcb_input_event_mask_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_select_events_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_select_events_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; num_mask: uint16;# masks: ptr xcb_input_event_mask_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_select_events*(c: ptr xcb_connection_t; window: xcb_window_t;# num_mask: uint16;# masks: ptr xcb_input_event_mask_t): xcb_void_cookie_t# proc xcb_input_xi_select_events_masks_length*(# R: ptr xcb_input_xi_select_events_request_t): cint# proc xcb_input_xi_select_events_masks_iterator*(# R: ptr xcb_input_xi_select_events_request_t): xcb_input_event_mask_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_query_version*(c: ptr xcb_connection_t; major_version: uint16;# minor_version: uint16): xcb_input_xi_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_query_version_unchecked*(c: ptr xcb_connection_t;# major_version: uint16; minor_version: uint16): xcb_input_xi_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_query_version_reply_t# proc xcb_input_button_class_sizeof*(_buffer: pointer): cint# proc xcb_input_button_class_state*(R: ptr xcb_input_button_class_t): ptr uint32# proc xcb_input_button_class_state_length*(R: ptr xcb_input_button_class_t): cint# proc xcb_input_button_class_state_end*(R: ptr xcb_input_button_class_t): xcb_generic_iterator_t# proc xcb_input_button_class_labels*(R: ptr xcb_input_button_class_t): ptr xcb_atom_t# proc xcb_input_button_class_labels_length*(R: ptr xcb_input_button_class_t): cint# proc xcb_input_button_class_labels_end*(R: ptr xcb_input_button_class_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_button_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_button_class_t)# ### proc xcb_input_button_class_next*(i: ptr xcb_input_button_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_button_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_button_class_end*(i: xcb_input_button_class_iterator_t): xcb_generic_iterator_t# proc xcb_input_key_class_sizeof*(_buffer: pointer): cint# proc xcb_input_key_class_keys*(R: ptr xcb_input_key_class_t): ptr uint32# proc xcb_input_key_class_keys_length*(R: ptr xcb_input_key_class_t): cint# proc xcb_input_key_class_keys_end*(R: ptr xcb_input_key_class_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_key_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_key_class_t)# ### proc xcb_input_key_class_next*(i: ptr xcb_input_key_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_key_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_key_class_end*(i: xcb_input_key_class_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_scroll_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_scroll_class_t)# ### proc xcb_input_scroll_class_next*(i: ptr xcb_input_scroll_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_scroll_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_scroll_class_end*(i: xcb_input_scroll_class_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_touch_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_touch_class_t)# ### proc xcb_input_touch_class_next*(i: ptr xcb_input_touch_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_touch_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_touch_class_end*(i: xcb_input_touch_class_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_valuator_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_valuator_class_t)# ### proc xcb_input_valuator_class_next*(i: ptr xcb_input_valuator_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_valuator_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_valuator_class_end*(i: xcb_input_valuator_class_iterator_t): xcb_generic_iterator_t# proc xcb_input_device_class_data_key_keys*(S: ptr xcb_input_device_class_data_t): ptr uint32# proc xcb_input_device_class_data_key_keys_length*(# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): cint# proc xcb_input_device_class_data_key_keys_end*(R: ptr xcb_input_device_class_t;# S: ptr xcb_input_device_class_data_t): xcb_generic_iterator_t# proc xcb_input_device_class_data_button_state*(# S: ptr xcb_input_device_class_data_t): ptr uint32# proc xcb_input_device_class_data_button_state_length*(# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): cint# proc xcb_input_device_class_data_button_state_end*(# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): xcb_generic_iterator_t# proc xcb_input_device_class_data_button_labels*(# S: ptr xcb_input_device_class_data_t): ptr xcb_atom_t# proc xcb_input_device_class_data_button_labels_length*(# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): cint# proc xcb_input_device_class_data_button_labels_end*(# R: ptr xcb_input_device_class_t; S: ptr xcb_input_device_class_data_t): xcb_generic_iterator_t# proc xcb_input_device_class_data_serialize*(_buffer: ptr pointer; `type`: uint16;# _aux: ptr xcb_input_device_class_data_t): cint# proc xcb_input_device_class_data_unpack*(_buffer: pointer; `type`: uint16;# _aux: ptr xcb_input_device_class_data_t): cint# proc xcb_input_device_class_data_sizeof*(_buffer: pointer; `type`: uint16): cint# proc xcb_input_device_class_sizeof*(_buffer: pointer): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_device_class_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_device_class_t)# ### proc xcb_input_device_class_next*(i: ptr xcb_input_device_class_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_device_class_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_device_class_end*(i: xcb_input_device_class_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_device_info_sizeof*(_buffer: pointer): cint# proc xcb_input_xi_device_info_name*(R: ptr xcb_input_xi_device_info_t): cstring# proc xcb_input_xi_device_info_name_length*(R: ptr xcb_input_xi_device_info_t): cint# proc xcb_input_xi_device_info_name_end*(R: ptr xcb_input_xi_device_info_t): xcb_generic_iterator_t# proc xcb_input_xi_device_info_classes_length*(R: ptr xcb_input_xi_device_info_t): cint# proc xcb_input_xi_device_info_classes_iterator*(R: ptr xcb_input_xi_device_info_t): xcb_input_device_class_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_xi_device_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_xi_device_info_t)# ### proc xcb_input_xi_device_info_next*(i: ptr xcb_input_xi_device_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_xi_device_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_xi_device_info_end*(i: xcb_input_xi_device_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_query_device_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_query_device*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_query_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_query_device_unchecked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_query_device_cookie_t# proc xcb_input_xi_query_device_infos_length*(# R: ptr xcb_input_xi_query_device_reply_t): cint# proc xcb_input_xi_query_device_infos_iterator*(# R: ptr xcb_input_xi_query_device_reply_t): xcb_input_xi_device_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_query_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_query_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_query_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_query_device_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_set_focus_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# time: xcb_timestamp_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_set_focus*(c: ptr xcb_connection_t; window: xcb_window_t;# time: xcb_timestamp_t; deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_get_focus*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_get_focus_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_get_focus_unchecked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_get_focus_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_get_focus_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_get_focus_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_focus_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_focus_reply_t# proc xcb_input_xi_grab_device_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_grab_device*(c: ptr xcb_connection_t; window: xcb_window_t;# time: xcb_timestamp_t; cursor: xcb_cursor_t;# deviceid: xcb_input_device_id_t; mode: uint8;# paired_device_mode: uint8; owner_events: uint8;# mask_len: uint16; mask: ptr uint32): xcb_input_xi_grab_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_grab_device_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t;# time: xcb_timestamp_t;# cursor: xcb_cursor_t;# deviceid: xcb_input_device_id_t;# mode: uint8;# paired_device_mode: uint8;# owner_events: uint8; mask_len: uint16;# mask: ptr uint32): xcb_input_xi_grab_device_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_grab_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_grab_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_grab_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_grab_device_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_ungrab_device_checked*(c: ptr xcb_connection_t;# time: xcb_timestamp_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_ungrab_device*(c: ptr xcb_connection_t; time: xcb_timestamp_t;# deviceid: xcb_input_device_id_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_allow_events_checked*(c: ptr xcb_connection_t;# time: xcb_timestamp_t;# deviceid: xcb_input_device_id_t;# event_mode: uint8; touchid: uint32;# grab_window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_allow_events*(c: ptr xcb_connection_t; time: xcb_timestamp_t;# deviceid: xcb_input_device_id_t;# event_mode: uint8; touchid: uint32;# grab_window: xcb_window_t): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_grab_modifier_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_grab_modifier_info_t)# ### proc xcb_input_grab_modifier_info_next*(i: ptr xcb_input_grab_modifier_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_grab_modifier_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_grab_modifier_info_end*(i: xcb_input_grab_modifier_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_passive_grab_device_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_passive_grab_device*(c: ptr xcb_connection_t;# time: xcb_timestamp_t;# grab_window: xcb_window_t;# cursor: xcb_cursor_t; detail: uint32;# deviceid: xcb_input_device_id_t;# num_modifiers: uint16; mask_len: uint16;# grab_type: uint8; grab_mode: uint8;# paired_device_mode: uint8;# owner_events: uint8; mask: ptr uint32;# modifiers: ptr uint32): xcb_input_xi_passive_grab_device_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_passive_grab_device_unchecked*(c: ptr xcb_connection_t;# time: xcb_timestamp_t; grab_window: xcb_window_t; cursor: xcb_cursor_t;# detail: uint32; deviceid: xcb_input_device_id_t; num_modifiers: uint16;# mask_len: uint16; grab_type: uint8; grab_mode: uint8;# paired_device_mode: uint8; owner_events: uint8; mask: ptr uint32;# modifiers: ptr uint32): xcb_input_xi_passive_grab_device_cookie_t# proc xcb_input_xi_passive_grab_device_modifiers*(# R: ptr xcb_input_xi_passive_grab_device_reply_t): ptr xcb_input_grab_modifier_info_t# proc xcb_input_xi_passive_grab_device_modifiers_length*(# R: ptr xcb_input_xi_passive_grab_device_reply_t): cint# proc xcb_input_xi_passive_grab_device_modifiers_iterator*(# R: ptr xcb_input_xi_passive_grab_device_reply_t): xcb_input_grab_modifier_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_passive_grab_device_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_passive_grab_device_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_passive_grab_device_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_passive_grab_device_reply_t# proc xcb_input_xi_passive_ungrab_device_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_passive_ungrab_device_checked*(c: ptr xcb_connection_t;# grab_window: xcb_window_t; detail: uint32; deviceid: xcb_input_device_id_t;# num_modifiers: uint16; grab_type: uint8; modifiers: ptr uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_passive_ungrab_device*(c: ptr xcb_connection_t;# grab_window: xcb_window_t;# detail: uint32;# deviceid: xcb_input_device_id_t;# num_modifiers: uint16;# grab_type: uint8;# modifiers: ptr uint32): xcb_void_cookie_t# proc xcb_input_xi_passive_ungrab_device_modifiers*(# R: ptr xcb_input_xi_passive_ungrab_device_request_t): ptr uint32# proc xcb_input_xi_passive_ungrab_device_modifiers_length*(# R: ptr xcb_input_xi_passive_ungrab_device_request_t): cint# proc xcb_input_xi_passive_ungrab_device_modifiers_end*(# R: ptr xcb_input_xi_passive_ungrab_device_request_t): xcb_generic_iterator_t# proc xcb_input_xi_list_properties_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_list_properties*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_list_properties_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_list_properties_unchecked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t): xcb_input_xi_list_properties_cookie_t# proc xcb_input_xi_list_properties_properties*(# R: ptr xcb_input_xi_list_properties_reply_t): ptr xcb_atom_t# proc xcb_input_xi_list_properties_properties_length*(# R: ptr xcb_input_xi_list_properties_reply_t): cint# proc xcb_input_xi_list_properties_properties_end*(# R: ptr xcb_input_xi_list_properties_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_list_properties_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_list_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_list_properties_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_list_properties_reply_t# proc xcb_input_xi_change_property_items_data_8*(# S: ptr xcb_input_xi_change_property_items_t): ptr uint8# proc xcb_input_xi_change_property_items_data_8_length*(# R: ptr xcb_input_xi_change_property_request_t;# S: ptr xcb_input_xi_change_property_items_t): cint# proc xcb_input_xi_change_property_items_data_8_end*(# R: ptr xcb_input_xi_change_property_request_t;# S: ptr xcb_input_xi_change_property_items_t): xcb_generic_iterator_t# proc xcb_input_xi_change_property_items_data_16*(# S: ptr xcb_input_xi_change_property_items_t): ptr uint16# proc xcb_input_xi_change_property_items_data_16_length*(# R: ptr xcb_input_xi_change_property_request_t;# S: ptr xcb_input_xi_change_property_items_t): cint# proc xcb_input_xi_change_property_items_data_16_end*(# R: ptr xcb_input_xi_change_property_request_t;# S: ptr xcb_input_xi_change_property_items_t): xcb_generic_iterator_t# proc xcb_input_xi_change_property_items_data_32*(# S: ptr xcb_input_xi_change_property_items_t): ptr uint32# proc xcb_input_xi_change_property_items_data_32_length*(# R: ptr xcb_input_xi_change_property_request_t;# S: ptr xcb_input_xi_change_property_items_t): cint# proc xcb_input_xi_change_property_items_data_32_end*(# R: ptr xcb_input_xi_change_property_request_t;# S: ptr xcb_input_xi_change_property_items_t): xcb_generic_iterator_t# proc xcb_input_xi_change_property_items_serialize*(_buffer: ptr pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_xi_change_property_items_t): cint# proc xcb_input_xi_change_property_items_unpack*(_buffer: pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_xi_change_property_items_t): cint# proc xcb_input_xi_change_property_items_sizeof*(_buffer: pointer;# num_items: uint32; format: uint8): cint# proc xcb_input_xi_change_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_change_property_checked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t; mode: uint8; format: uint8;# property: xcb_atom_t; `type`: xcb_atom_t; num_items: uint32; items: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_change_property*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t; mode: uint8;# format: uint8; property: xcb_atom_t;# `type`: xcb_atom_t; num_items: uint32;# items: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_change_property_aux_checked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t; mode: uint8; format: uint8;# property: xcb_atom_t; `type`: xcb_atom_t; num_items: uint32;# items: ptr xcb_input_xi_change_property_items_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_change_property_aux*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t;# mode: uint8; format: uint8;# property: xcb_atom_t; `type`: xcb_atom_t;# num_items: uint32; items: ptr xcb_input_xi_change_property_items_t): xcb_void_cookie_t# proc xcb_input_xi_change_property_items*(R: ptr xcb_input_xi_change_property_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_delete_property_checked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t; property: xcb_atom_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_delete_property*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t;# property: xcb_atom_t): xcb_void_cookie_t# proc xcb_input_xi_get_property_items_data_8*(# S: ptr xcb_input_xi_get_property_items_t): ptr uint8# proc xcb_input_xi_get_property_items_data_8_length*(# R: ptr xcb_input_xi_get_property_reply_t;# S: ptr xcb_input_xi_get_property_items_t): cint# proc xcb_input_xi_get_property_items_data_8_end*(# R: ptr xcb_input_xi_get_property_reply_t;# S: ptr xcb_input_xi_get_property_items_t): xcb_generic_iterator_t# proc xcb_input_xi_get_property_items_data_16*(# S: ptr xcb_input_xi_get_property_items_t): ptr uint16# proc xcb_input_xi_get_property_items_data_16_length*(# R: ptr xcb_input_xi_get_property_reply_t;# S: ptr xcb_input_xi_get_property_items_t): cint# proc xcb_input_xi_get_property_items_data_16_end*(# R: ptr xcb_input_xi_get_property_reply_t;# S: ptr xcb_input_xi_get_property_items_t): xcb_generic_iterator_t# proc xcb_input_xi_get_property_items_data_32*(# S: ptr xcb_input_xi_get_property_items_t): ptr uint32# proc xcb_input_xi_get_property_items_data_32_length*(# R: ptr xcb_input_xi_get_property_reply_t;# S: ptr xcb_input_xi_get_property_items_t): cint# proc xcb_input_xi_get_property_items_data_32_end*(# R: ptr xcb_input_xi_get_property_reply_t;# S: ptr xcb_input_xi_get_property_items_t): xcb_generic_iterator_t# proc xcb_input_xi_get_property_items_serialize*(_buffer: ptr pointer;# num_items: uint32; format: uint8;# _aux: ptr xcb_input_xi_get_property_items_t): cint# proc xcb_input_xi_get_property_items_unpack*(_buffer: pointer; num_items: uint32;# format: uint8; _aux: ptr xcb_input_xi_get_property_items_t): cint# proc xcb_input_xi_get_property_items_sizeof*(_buffer: pointer; num_items: uint32;# format: uint8): cint# proc xcb_input_xi_get_property_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_get_property*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t; _delete: uint8;# property: xcb_atom_t; `type`: xcb_atom_t;# offset: uint32; len: uint32): xcb_input_xi_get_property_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_get_property_unchecked*(c: ptr xcb_connection_t;# deviceid: xcb_input_device_id_t; _delete: uint8; property: xcb_atom_t;# `type`: xcb_atom_t; offset: uint32; len: uint32): xcb_input_xi_get_property_cookie_t# proc xcb_input_xi_get_property_items*(R: ptr xcb_input_xi_get_property_reply_t): pointer# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_get_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_get_property_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_property_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_property_reply_t# proc xcb_input_xi_get_selected_events_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_get_selected_events*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_input_xi_get_selected_events_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_input_xi_get_selected_events_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_input_xi_get_selected_events_cookie_t# proc xcb_input_xi_get_selected_events_masks_length*(# R: ptr xcb_input_xi_get_selected_events_reply_t): cint# proc xcb_input_xi_get_selected_events_masks_iterator*(# R: ptr xcb_input_xi_get_selected_events_reply_t): xcb_input_event_mask_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_input_xi_get_selected_events_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_input_xi_get_selected_events_reply*(c: ptr xcb_connection_t; cookie: xcb_input_xi_get_selected_events_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_input_xi_get_selected_events_reply_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_barrier_release_pointer_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_barrier_release_pointer_info_t)# ### proc xcb_input_barrier_release_pointer_info_next*(# i: ptr xcb_input_barrier_release_pointer_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_barrier_release_pointer_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_barrier_release_pointer_info_end*(# i: xcb_input_barrier_release_pointer_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_xi_barrier_release_pointer_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_xi_barrier_release_pointer_checked*(c: ptr xcb_connection_t;# num_barriers: uint32; barriers: ptr xcb_input_barrier_release_pointer_info_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_xi_barrier_release_pointer*(c: ptr xcb_connection_t;# num_barriers: uint32; barriers: ptr xcb_input_barrier_release_pointer_info_t): xcb_void_cookie_t# proc xcb_input_xi_barrier_release_pointer_barriers*(# R: ptr xcb_input_xi_barrier_release_pointer_request_t): ptr xcb_input_barrier_release_pointer_info_t# proc xcb_input_xi_barrier_release_pointer_barriers_length*(# R: ptr xcb_input_xi_barrier_release_pointer_request_t): cint# proc xcb_input_xi_barrier_release_pointer_barriers_iterator*(# R: ptr xcb_input_xi_barrier_release_pointer_request_t): xcb_input_barrier_release_pointer_info_iterator_t# proc xcb_input_device_changed_sizeof*(_buffer: pointer): cint# proc xcb_input_device_changed_classes_length*(# R: ptr xcb_input_device_changed_event_t): cint# proc xcb_input_device_changed_classes_iterator*(# R: ptr xcb_input_device_changed_event_t): xcb_input_device_class_iterator_t# proc xcb_input_key_press_sizeof*(_buffer: pointer): cint# proc xcb_input_key_press_button_mask*(R: ptr xcb_input_key_press_event_t): ptr uint32# proc xcb_input_key_press_button_mask_length*(R: ptr xcb_input_key_press_event_t): cint# proc xcb_input_key_press_button_mask_end*(R: ptr xcb_input_key_press_event_t): xcb_generic_iterator_t# proc xcb_input_key_press_valuator_mask*(R: ptr xcb_input_key_press_event_t): ptr uint32# proc xcb_input_key_press_valuator_mask_length*(R: ptr xcb_input_key_press_event_t): cint# proc xcb_input_key_press_valuator_mask_end*(R: ptr xcb_input_key_press_event_t): xcb_generic_iterator_t# proc xcb_input_key_press_axisvalues*(R: ptr xcb_input_key_press_event_t): ptr xcb_input_fp3232_t# proc xcb_input_key_press_axisvalues_length*(R: ptr xcb_input_key_press_event_t): cint# proc xcb_input_key_press_axisvalues_iterator*(R: ptr xcb_input_key_press_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_key_release_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_button_press_sizeof*(_buffer: pointer): cint# proc xcb_input_button_press_button_mask*(R: ptr xcb_input_button_press_event_t): ptr uint32# proc xcb_input_button_press_button_mask_length*(# R: ptr xcb_input_button_press_event_t): cint# proc xcb_input_button_press_button_mask_end*(# R: ptr xcb_input_button_press_event_t): xcb_generic_iterator_t# proc xcb_input_button_press_valuator_mask*(R: ptr xcb_input_button_press_event_t): ptr uint32# proc xcb_input_button_press_valuator_mask_length*(# R: ptr xcb_input_button_press_event_t): cint# proc xcb_input_button_press_valuator_mask_end*(# R: ptr xcb_input_button_press_event_t): xcb_generic_iterator_t# proc xcb_input_button_press_axisvalues*(R: ptr xcb_input_button_press_event_t): ptr xcb_input_fp3232_t# proc xcb_input_button_press_axisvalues_length*(# R: ptr xcb_input_button_press_event_t): cint# proc xcb_input_button_press_axisvalues_iterator*(# R: ptr xcb_input_button_press_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_button_release_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_motion_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_enter_sizeof*(_buffer: pointer): cint# proc xcb_input_enter_buttons*(R: ptr xcb_input_enter_event_t): ptr uint32# proc xcb_input_enter_buttons_length*(R: ptr xcb_input_enter_event_t): cint# proc xcb_input_enter_buttons_end*(R: ptr xcb_input_enter_event_t): xcb_generic_iterator_t# proc xcb_input_leave_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_focus_in_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_focus_out_sizeof*(_buffer: pointer): cint# ## *<# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_hierarchy_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_hierarchy_info_t)# ### proc xcb_input_hierarchy_info_next*(i: ptr xcb_input_hierarchy_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_hierarchy_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_hierarchy_info_end*(i: xcb_input_hierarchy_info_iterator_t): xcb_generic_iterator_t# proc xcb_input_hierarchy_sizeof*(_buffer: pointer): cint# proc xcb_input_hierarchy_infos*(R: ptr xcb_input_hierarchy_event_t): ptr xcb_input_hierarchy_info_t# proc xcb_input_hierarchy_infos_length*(R: ptr xcb_input_hierarchy_event_t): cint# proc xcb_input_hierarchy_infos_iterator*(R: ptr xcb_input_hierarchy_event_t): xcb_input_hierarchy_info_iterator_t# proc xcb_input_raw_key_press_sizeof*(_buffer: pointer): cint# proc xcb_input_raw_key_press_valuator_mask*(# R: ptr xcb_input_raw_key_press_event_t): ptr uint32# proc xcb_input_raw_key_press_valuator_mask_length*(# R: ptr xcb_input_raw_key_press_event_t): cint# proc xcb_input_raw_key_press_valuator_mask_end*(# R: ptr xcb_input_raw_key_press_event_t): xcb_generic_iterator_t# proc xcb_input_raw_key_press_axisvalues*(R: ptr xcb_input_raw_key_press_event_t): ptr xcb_input_fp3232_t# proc xcb_input_raw_key_press_axisvalues_length*(# R: ptr xcb_input_raw_key_press_event_t): cint# proc xcb_input_raw_key_press_axisvalues_iterator*(# R: ptr xcb_input_raw_key_press_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_raw_key_press_axisvalues_raw*(# R: ptr xcb_input_raw_key_press_event_t): ptr xcb_input_fp3232_t# proc xcb_input_raw_key_press_axisvalues_raw_length*(# R: ptr xcb_input_raw_key_press_event_t): cint# proc xcb_input_raw_key_press_axisvalues_raw_iterator*(# R: ptr xcb_input_raw_key_press_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_raw_key_release_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_raw_button_press_sizeof*(_buffer: pointer): cint# proc xcb_input_raw_button_press_valuator_mask*(# R: ptr xcb_input_raw_button_press_event_t): ptr uint32# proc xcb_input_raw_button_press_valuator_mask_length*(# R: ptr xcb_input_raw_button_press_event_t): cint# proc xcb_input_raw_button_press_valuator_mask_end*(# R: ptr xcb_input_raw_button_press_event_t): xcb_generic_iterator_t# proc xcb_input_raw_button_press_axisvalues*(# R: ptr xcb_input_raw_button_press_event_t): ptr xcb_input_fp3232_t# proc xcb_input_raw_button_press_axisvalues_length*(# R: ptr xcb_input_raw_button_press_event_t): cint# proc xcb_input_raw_button_press_axisvalues_iterator*(# R: ptr xcb_input_raw_button_press_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_raw_button_press_axisvalues_raw*(# R: ptr xcb_input_raw_button_press_event_t): ptr xcb_input_fp3232_t# proc xcb_input_raw_button_press_axisvalues_raw_length*(# R: ptr xcb_input_raw_button_press_event_t): cint# proc xcb_input_raw_button_press_axisvalues_raw_iterator*(# R: ptr xcb_input_raw_button_press_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_raw_button_release_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_raw_motion_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_touch_begin_sizeof*(_buffer: pointer): cint# proc xcb_input_touch_begin_button_mask*(R: ptr xcb_input_touch_begin_event_t): ptr uint32# proc xcb_input_touch_begin_button_mask_length*(# R: ptr xcb_input_touch_begin_event_t): cint# proc xcb_input_touch_begin_button_mask_end*(R: ptr xcb_input_touch_begin_event_t): xcb_generic_iterator_t# proc xcb_input_touch_begin_valuator_mask*(R: ptr xcb_input_touch_begin_event_t): ptr uint32# proc xcb_input_touch_begin_valuator_mask_length*(# R: ptr xcb_input_touch_begin_event_t): cint# proc xcb_input_touch_begin_valuator_mask_end*(# R: ptr xcb_input_touch_begin_event_t): xcb_generic_iterator_t# proc xcb_input_touch_begin_axisvalues*(R: ptr xcb_input_touch_begin_event_t): ptr xcb_input_fp3232_t# proc xcb_input_touch_begin_axisvalues_length*(# R: ptr xcb_input_touch_begin_event_t): cint# proc xcb_input_touch_begin_axisvalues_iterator*(# R: ptr xcb_input_touch_begin_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_touch_update_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_touch_end_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_raw_touch_begin_sizeof*(_buffer: pointer): cint# proc xcb_input_raw_touch_begin_valuator_mask*(# R: ptr xcb_input_raw_touch_begin_event_t): ptr uint32# proc xcb_input_raw_touch_begin_valuator_mask_length*(# R: ptr xcb_input_raw_touch_begin_event_t): cint# proc xcb_input_raw_touch_begin_valuator_mask_end*(# R: ptr xcb_input_raw_touch_begin_event_t): xcb_generic_iterator_t# proc xcb_input_raw_touch_begin_axisvalues*(# R: ptr xcb_input_raw_touch_begin_event_t): ptr xcb_input_fp3232_t# proc xcb_input_raw_touch_begin_axisvalues_length*(# R: ptr xcb_input_raw_touch_begin_event_t): cint# proc xcb_input_raw_touch_begin_axisvalues_iterator*(# R: ptr xcb_input_raw_touch_begin_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_raw_touch_begin_axisvalues_raw*(# R: ptr xcb_input_raw_touch_begin_event_t): ptr xcb_input_fp3232_t# proc xcb_input_raw_touch_begin_axisvalues_raw_length*(# R: ptr xcb_input_raw_touch_begin_event_t): cint# proc xcb_input_raw_touch_begin_axisvalues_raw_iterator*(# R: ptr xcb_input_raw_touch_begin_event_t): xcb_input_fp3232_iterator_t# proc xcb_input_raw_touch_update_sizeof*(_buffer: pointer): cint# ## *<# proc xcb_input_raw_touch_end_sizeof*(_buffer: pointer): cint# ## *<# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_input_event_for_send_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_input_event_for_send_t)# ### proc xcb_input_event_for_send_next*(i: ptr xcb_input_event_for_send_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_input_event_for_send_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_input_event_for_send_end*(i: xcb_input_event_for_send_iterator_t): xcb_generic_iterator_t# proc xcb_input_send_extension_event_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_input_send_extension_event_checked*(c: ptr xcb_connection_t;# destination: xcb_window_t; device_id: uint8; propagate: uint8;# num_classes: uint16; num_events: uint8;# events: ptr xcb_input_event_for_send_t; classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_input_send_extension_event*(c: ptr xcb_connection_t;# destination: xcb_window_t; device_id: uint8;# propagate: uint8; num_classes: uint16;# num_events: uint8;# events: ptr xcb_input_event_for_send_t;# classes: ptr xcb_input_event_class_t): xcb_void_cookie_t# proc xcb_input_send_extension_event_events*(# R: ptr xcb_input_send_extension_event_request_t): ptr xcb_input_event_for_send_t# proc xcb_input_send_extension_event_events_length*(# R: ptr xcb_input_send_extension_event_request_t): cint# proc xcb_input_send_extension_event_events_iterator*(# R: ptr xcb_input_send_extension_event_request_t): xcb_input_event_for_send_iterator_t# proc xcb_input_send_extension_event_classes*(# R: ptr xcb_input_send_extension_event_request_t): ptr xcb_input_event_class_t# proc xcb_input_send_extension_event_classes_length*(# R: ptr xcb_input_send_extension_event_request_t): cint# proc xcb_input_send_extension_event_classes_end*(# R: ptr xcb_input_send_extension_event_request_t): xcb_generic_iterator_t# ## *# ## @}# ### ### ## This file generated automatically from xkb.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_xkb_API XCB xkb API# ## @brief xkb XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# type# xcb_xkb_const_t* = enum# XCB_XKB_CONST_KEY_NAME_LENGTH = 4, XCB_XKB_CONST_PER_KEY_BIT_ARRAY_SIZE = 32,# XCB_XKB_CONST_MAX_LEGAL_KEY_CODE = 255# xcb_xkb_event_type_t* = enum# XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY = 1, XCB_XKB_EVENT_TYPE_MAP_NOTIFY = 2,# XCB_XKB_EVENT_TYPE_STATE_NOTIFY = 4, XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY = 8,# XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY = 16,# XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY = 32,# XCB_XKB_EVENT_TYPE_NAMES_NOTIFY = 64,# XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY = 128,# XCB_XKB_EVENT_TYPE_BELL_NOTIFY = 256, XCB_XKB_EVENT_TYPE_ACTION_MESSAGE = 512,# XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY = 1024,# XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY = 2048# xcb_xkb_nkn_detail_t* = enum# XCB_XKB_NKN_DETAIL_KEYCODES = 1, XCB_XKB_NKN_DETAIL_GEOMETRY = 2,# XCB_XKB_NKN_DETAIL_DEVICE_ID = 4# xcb_xkb_axn_detail_t* = enum# XCB_XKB_AXN_DETAIL_SK_PRESS = 1, XCB_XKB_AXN_DETAIL_SK_ACCEPT = 2,# XCB_XKB_AXN_DETAIL_SK_REJECT = 4, XCB_XKB_AXN_DETAIL_SK_RELEASE = 8,# XCB_XKB_AXN_DETAIL_BK_ACCEPT = 16, XCB_XKB_AXN_DETAIL_BK_REJECT = 32,# XCB_XKB_AXN_DETAIL_AXK_WARNING = 64# xcb_xkb_map_part_t* = enum# XCB_XKB_MAP_PART_KEY_TYPES = 1, XCB_XKB_MAP_PART_KEY_SYMS = 2,# XCB_XKB_MAP_PART_MODIFIER_MAP = 4, XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS = 8,# XCB_XKB_MAP_PART_KEY_ACTIONS = 16, XCB_XKB_MAP_PART_KEY_BEHAVIORS = 32,# XCB_XKB_MAP_PART_VIRTUAL_MODS = 64, XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP = 128# xcb_xkb_set_map_flags_t* = enum# XCB_XKB_SET_MAP_FLAGS_RESIZE_TYPES = 1,# XCB_XKB_SET_MAP_FLAGS_RECOMPUTE_ACTIONS = 2# xcb_xkb_state_part_t* = enum# XCB_XKB_STATE_PART_MODIFIER_STATE = 1, XCB_XKB_STATE_PART_MODIFIER_BASE = 2,# XCB_XKB_STATE_PART_MODIFIER_LATCH = 4, XCB_XKB_STATE_PART_MODIFIER_LOCK = 8,# XCB_XKB_STATE_PART_GROUP_STATE = 16, XCB_XKB_STATE_PART_GROUP_BASE = 32,# XCB_XKB_STATE_PART_GROUP_LATCH = 64, XCB_XKB_STATE_PART_GROUP_LOCK = 128,# XCB_XKB_STATE_PART_COMPAT_STATE = 256, XCB_XKB_STATE_PART_GRAB_MODS = 512,# XCB_XKB_STATE_PART_COMPAT_GRAB_MODS = 1024,# XCB_XKB_STATE_PART_LOOKUP_MODS = 2048,# XCB_XKB_STATE_PART_COMPAT_LOOKUP_MODS = 4096,# XCB_XKB_STATE_PART_POINTER_BUTTONS = 8192# xcb_xkb_bool_ctrl_t* = enum# XCB_XKB_BOOL_CTRL_REPEAT_KEYS = 1, XCB_XKB_BOOL_CTRL_SLOW_KEYS = 2,# XCB_XKB_BOOL_CTRL_BOUNCE_KEYS = 4, XCB_XKB_BOOL_CTRL_STICKY_KEYS = 8,# XCB_XKB_BOOL_CTRL_MOUSE_KEYS = 16, XCB_XKB_BOOL_CTRL_MOUSE_KEYS_ACCEL = 32,# XCB_XKB_BOOL_CTRL_ACCESS_X_KEYS = 64,# XCB_XKB_BOOL_CTRL_ACCESS_X_TIMEOUT_MASK = 128,# XCB_XKB_BOOL_CTRL_ACCESS_X_FEEDBACK_MASK = 256,# XCB_XKB_BOOL_CTRL_AUDIBLE_BELL_MASK = 512,# XCB_XKB_BOOL_CTRL_OVERLAY_1_MASK = 1024,# XCB_XKB_BOOL_CTRL_OVERLAY_2_MASK = 2048,# XCB_XKB_BOOL_CTRL_IGNORE_GROUP_LOCK_MASK = 4096# xcb_xkb_control_t* = enum# XCB_XKB_CONTROL_GROUPS_WRAP = 134217728,# XCB_XKB_CONTROL_INTERNAL_MODS = 268435456,# XCB_XKB_CONTROL_IGNORE_LOCK_MODS = 536870912,# XCB_XKB_CONTROL_PER_KEY_REPEAT = 1073741824,# XCB_XKB_CONTROL_CONTROLS_ENABLED = 2147483648'i64# xcb_xkb_ax_option_t* = enum# XCB_XKB_AX_OPTION_SK_PRESS_FB = 1, XCB_XKB_AX_OPTION_SK_ACCEPT_FB = 2,# XCB_XKB_AX_OPTION_FEATURE_FB = 4, XCB_XKB_AX_OPTION_SLOW_WARN_FB = 8,# XCB_XKB_AX_OPTION_INDICATOR_FB = 16, XCB_XKB_AX_OPTION_STICKY_KEYS_FB = 32,# XCB_XKB_AX_OPTION_TWO_KEYS = 64, XCB_XKB_AX_OPTION_LATCH_TO_LOCK = 128,# XCB_XKB_AX_OPTION_SK_RELEASE_FB = 256, XCB_XKB_AX_OPTION_SK_REJECT_FB = 512,# XCB_XKB_AX_OPTION_BK_REJECT_FB = 1024, XCB_XKB_AX_OPTION_DUMB_BELL = 2048# xcb_xkb_device_spec_t* = uint16# ## *# ## @brief xcb_xkb_device_spec_iterator_t# ### type# xcb_xkb_device_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_device_spec_t# rem*: cint# index*: cint# xcb_xkb_led_class_result_t* = enum# XCB_XKB_LED_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0,# XCB_XKB_LED_CLASS_RESULT_LED_FEEDBACK_CLASS = 4# xcb_xkb_led_class_t* = enum# XCB_XKB_LED_CLASS_KBD_FEEDBACK_CLASS = 0,# XCB_XKB_LED_CLASS_LED_FEEDBACK_CLASS = 4,# XCB_XKB_LED_CLASS_DFLT_XI_CLASS = 768, XCB_XKB_LED_CLASS_ALL_XI_CLASSES = 1280# xcb_xkb_led_class_spec_t* = uint16# ## *# ## @brief xcb_xkb_led_class_spec_iterator_t# ### type# xcb_xkb_led_class_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_led_class_spec_t# rem*: cint# index*: cint# xcb_xkb_bell_class_result_t* = enum# XCB_XKB_BELL_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0,# XCB_XKB_BELL_CLASS_RESULT_BELL_FEEDBACK_CLASS = 5# xcb_xkb_bell_class_t* = enum# XCB_XKB_BELL_CLASS_KBD_FEEDBACK_CLASS = 0,# XCB_XKB_BELL_CLASS_BELL_FEEDBACK_CLASS = 5,# XCB_XKB_BELL_CLASS_DFLT_XI_CLASS = 768# xcb_xkb_bell_class_spec_t* = uint16# ## *# ## @brief xcb_xkb_bell_class_spec_iterator_t# ### type# xcb_xkb_bell_class_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_bell_class_spec_t# rem*: cint# index*: cint# xcb_xkb_id_t* = enum# XCB_XKB_ID_USE_CORE_KBD = 256, XCB_XKB_ID_USE_CORE_PTR = 512,# XCB_XKB_ID_DFLT_XI_CLASS = 768, XCB_XKB_ID_DFLT_XI_ID = 1024,# XCB_XKB_ID_ALL_XI_CLASS = 1280, XCB_XKB_ID_ALL_XI_ID = 1536,# XCB_XKB_ID_XI_NONE = 65280# xcb_xkb_id_spec_t* = uint16# ## *# ## @brief xcb_xkb_id_spec_iterator_t# ### type# xcb_xkb_id_spec_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_id_spec_t# rem*: cint# index*: cint# xcb_xkb_group_t* = enum# XCB_XKB_GROUP_1 = 0, XCB_XKB_GROUP_2 = 1, XCB_XKB_GROUP_3 = 2, XCB_XKB_GROUP_4 = 3# xcb_xkb_groups_t* = enum# XCB_XKB_GROUPS_ANY = 254, XCB_XKB_GROUPS_ALL = 255# xcb_xkb_set_of_group_t* = enum# XCB_XKB_SET_OF_GROUP_GROUP_1 = 1, XCB_XKB_SET_OF_GROUP_GROUP_2 = 2,# XCB_XKB_SET_OF_GROUP_GROUP_3 = 4, XCB_XKB_SET_OF_GROUP_GROUP_4 = 8# xcb_xkb_set_of_groups_t* = enum# XCB_XKB_SET_OF_GROUPS_ANY = 128# xcb_xkb_groups_wrap_t* = enum# XCB_XKB_GROUPS_WRAP_WRAP_INTO_RANGE = 0,# XCB_XKB_GROUPS_WRAP_CLAMP_INTO_RANGE = 64,# XCB_XKB_GROUPS_WRAP_REDIRECT_INTO_RANGE = 128# xcb_xkb_v_mods_high_t* = enum# XCB_XKB_V_MODS_HIGH_8 = 1, XCB_XKB_V_MODS_HIGH_9 = 2, XCB_XKB_V_MODS_HIGH_10 = 4,# XCB_XKB_V_MODS_HIGH_11 = 8, XCB_XKB_V_MODS_HIGH_12 = 16,# XCB_XKB_V_MODS_HIGH_13 = 32, XCB_XKB_V_MODS_HIGH_14 = 64,# XCB_XKB_V_MODS_HIGH_15 = 128# xcb_xkb_v_mods_low_t* = enum# XCB_XKB_V_MODS_LOW_0 = 1, XCB_XKB_V_MODS_LOW_1 = 2, XCB_XKB_V_MODS_LOW_2 = 4,# XCB_XKB_V_MODS_LOW_3 = 8, XCB_XKB_V_MODS_LOW_4 = 16, XCB_XKB_V_MODS_LOW_5 = 32,# XCB_XKB_V_MODS_LOW_6 = 64, XCB_XKB_V_MODS_LOW_7 = 128# xcb_xkb_v_mod_t* = enum# XCB_XKB_V_MOD_0 = 1, XCB_XKB_V_MOD_1 = 2, XCB_XKB_V_MOD_2 = 4, XCB_XKB_V_MOD_3 = 8,# XCB_XKB_V_MOD_4 = 16, XCB_XKB_V_MOD_5 = 32, XCB_XKB_V_MOD_6 = 64,# XCB_XKB_V_MOD_7 = 128, XCB_XKB_V_MOD_8 = 256, XCB_XKB_V_MOD_9 = 512,# XCB_XKB_V_MOD_10 = 1024, XCB_XKB_V_MOD_11 = 2048, XCB_XKB_V_MOD_12 = 4096,# XCB_XKB_V_MOD_13 = 8192, XCB_XKB_V_MOD_14 = 16384, XCB_XKB_V_MOD_15 = 32768# xcb_xkb_explicit_t* = enum# XCB_XKB_EXPLICIT_KEY_TYPE_1 = 1, XCB_XKB_EXPLICIT_KEY_TYPE_2 = 2,# XCB_XKB_EXPLICIT_KEY_TYPE_3 = 4, XCB_XKB_EXPLICIT_KEY_TYPE_4 = 8,# XCB_XKB_EXPLICIT_INTERPRET = 16, XCB_XKB_EXPLICIT_AUTO_REPEAT = 32,# XCB_XKB_EXPLICIT_BEHAVIOR = 64, XCB_XKB_EXPLICIT_V_MOD_MAP = 128# xcb_xkb_sym_interpret_match_t* = enum# XCB_XKB_SYM_INTERPRET_MATCH_NONE_OF = 0,# XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF_OR_NONE = 1,# XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF = 2, XCB_XKB_SYM_INTERPRET_MATCH_ALL_OF = 3,# XCB_XKB_SYM_INTERPRET_MATCH_EXACTLY = 4# xcb_xkb_sym_interp_match_t* = enum# XCB_XKB_SYM_INTERP_MATCH_OP_MASK = 127,# XCB_XKB_SYM_INTERP_MATCH_LEVEL_ONE_ONLY = 128# xcb_xkb_im_flag_t* = enum# XCB_XKB_IM_FLAG_LED_DRIVES_KB = 32, XCB_XKB_IM_FLAG_NO_AUTOMATIC = 64,# XCB_XKB_IM_FLAG_NO_EXPLICIT = 128# xcb_xkb_im_mods_which_t* = enum# XCB_XKB_IM_MODS_WHICH_USE_BASE = 1, XCB_XKB_IM_MODS_WHICH_USE_LATCHED = 2,# XCB_XKB_IM_MODS_WHICH_USE_LOCKED = 4, XCB_XKB_IM_MODS_WHICH_USE_EFFECTIVE = 8,# XCB_XKB_IM_MODS_WHICH_USE_COMPAT = 16# xcb_xkb_im_groups_which_t* = enum# XCB_XKB_IM_GROUPS_WHICH_USE_BASE = 1, XCB_XKB_IM_GROUPS_WHICH_USE_LATCHED = 2,# XCB_XKB_IM_GROUPS_WHICH_USE_LOCKED = 4,# XCB_XKB_IM_GROUPS_WHICH_USE_EFFECTIVE = 8,# XCB_XKB_IM_GROUPS_WHICH_USE_COMPAT = 16# ## *# ## @brief xcb_xkb_indicator_map_t# ### type# xcb_xkb_indicator_map_t* {.bycopy.} = object# flags*: uint8# whichGroups*: uint8# groups*: uint8# whichMods*: uint8# mods*: uint8# realMods*: uint8# vmods*: uint16# ctrls*: uint32# ## *# ## @brief xcb_xkb_indicator_map_iterator_t# ### type# xcb_xkb_indicator_map_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_indicator_map_t# rem*: cint# index*: cint# xcb_xkb_cm_detail_t* = enum# XCB_XKB_CM_DETAIL_SYM_INTERP = 1, XCB_XKB_CM_DETAIL_GROUP_COMPAT = 2# xcb_xkb_name_detail_t* = enum# XCB_XKB_NAME_DETAIL_KEYCODES = 1, XCB_XKB_NAME_DETAIL_GEOMETRY = 2,# XCB_XKB_NAME_DETAIL_SYMBOLS = 4, XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS = 8,# XCB_XKB_NAME_DETAIL_TYPES = 16, XCB_XKB_NAME_DETAIL_COMPAT = 32,# XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES = 64,# XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES = 128,# XCB_XKB_NAME_DETAIL_INDICATOR_NAMES = 256, XCB_XKB_NAME_DETAIL_KEY_NAMES = 512,# XCB_XKB_NAME_DETAIL_KEY_ALIASES = 1024,# XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES = 2048,# XCB_XKB_NAME_DETAIL_GROUP_NAMES = 4096, XCB_XKB_NAME_DETAIL_RG_NAMES = 8192# xcb_xkb_gbn_detail_t* = enum# XCB_XKB_GBN_DETAIL_TYPES = 1, XCB_XKB_GBN_DETAIL_COMPAT_MAP = 2,# XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS = 4, XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS = 8,# XCB_XKB_GBN_DETAIL_INDICATOR_MAPS = 16, XCB_XKB_GBN_DETAIL_KEY_NAMES = 32,# XCB_XKB_GBN_DETAIL_GEOMETRY = 64, XCB_XKB_GBN_DETAIL_OTHER_NAMES = 128# xcb_xkb_xi_feature_t* = enum# XCB_XKB_XI_FEATURE_KEYBOARDS = 1, XCB_XKB_XI_FEATURE_BUTTON_ACTIONS = 2,# XCB_XKB_XI_FEATURE_INDICATOR_NAMES = 4, XCB_XKB_XI_FEATURE_INDICATOR_MAPS = 8,# XCB_XKB_XI_FEATURE_INDICATOR_STATE = 16# xcb_xkb_per_client_flag_t* = enum# XCB_XKB_PER_CLIENT_FLAG_DETECTABLE_AUTO_REPEAT = 1,# XCB_XKB_PER_CLIENT_FLAG_GRABS_USE_XKB_STATE = 2,# XCB_XKB_PER_CLIENT_FLAG_AUTO_RESET_CONTROLS = 4,# XCB_XKB_PER_CLIENT_FLAG_LOOKUP_STATE_WHEN_GRABBED = 8,# XCB_XKB_PER_CLIENT_FLAG_SEND_EVENT_USES_XKB_STATE = 16# ## *# ## @brief xcb_xkb_mod_def_t# ### type# xcb_xkb_mod_def_t* {.bycopy.} = object# mask*: uint8# realMods*: uint8# vmods*: uint16# ## *# ## @brief xcb_xkb_mod_def_iterator_t# ### type# xcb_xkb_mod_def_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_mod_def_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_name_t# ### type# xcb_xkb_key_name_t* {.bycopy.} = object# name*: array[4, char]# ## *# ## @brief xcb_xkb_key_name_iterator_t# ### type# xcb_xkb_key_name_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_name_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_alias_t# ### type# xcb_xkb_key_alias_t* {.bycopy.} = object# real*: array[4, char]# alias*: array[4, char]# ## *# ## @brief xcb_xkb_key_alias_iterator_t# ### type# xcb_xkb_key_alias_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_alias_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_counted_string_16_t# ### type# xcb_xkb_counted_string_16_t* {.bycopy.} = object# length*: uint16# ## *# ## @brief xcb_xkb_counted_string_16_iterator_t# ### type# xcb_xkb_counted_string_16_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_counted_string_16_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_kt_map_entry_t# ### type# xcb_xkb_kt_map_entry_t* {.bycopy.} = object# active*: uint8# mods_mask*: uint8# level*: uint8# mods_mods*: uint8# mods_vmods*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_kt_map_entry_iterator_t# ### type# xcb_xkb_kt_map_entry_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_kt_map_entry_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_type_t# ### type# xcb_xkb_key_type_t* {.bycopy.} = object# mods_mask*: uint8# mods_mods*: uint8# mods_vmods*: uint16# numLevels*: uint8# nMapEntries*: uint8# hasPreserve*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_key_type_iterator_t# ### type# xcb_xkb_key_type_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_type_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_sym_map_t# ### type# xcb_xkb_key_sym_map_t* {.bycopy.} = object# kt_index*: array[4, uint8]# groupInfo*: uint8# width*: uint8# nSyms*: uint16# ## *# ## @brief xcb_xkb_key_sym_map_iterator_t# ### type# xcb_xkb_key_sym_map_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_sym_map_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_common_behavior_t# ### type# xcb_xkb_common_behavior_t* {.bycopy.} = object# `type`*: uint8# data*: uint8# ## *# ## @brief xcb_xkb_common_behavior_iterator_t# ### type# xcb_xkb_common_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_common_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_default_behavior_t# ### type# xcb_xkb_default_behavior_t* {.bycopy.} = object# `type`*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_default_behavior_iterator_t# ### type# xcb_xkb_default_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_default_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_lock_behavior_t# ### type# xcb_xkb_lock_behavior_t* {.bycopy.} = object# `type`*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_lock_behavior_iterator_t# ### type# xcb_xkb_lock_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_lock_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_radio_group_behavior_t# ### type# xcb_xkb_radio_group_behavior_t* {.bycopy.} = object# `type`*: uint8# group*: uint8# ## *# ## @brief xcb_xkb_radio_group_behavior_iterator_t# ### type# xcb_xkb_radio_group_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_radio_group_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_overlay_behavior_t# ### type# xcb_xkb_overlay_behavior_t* {.bycopy.} = object# `type`*: uint8# key*: xcb_keycode_t# ## *# ## @brief xcb_xkb_overlay_behavior_iterator_t# ### type# xcb_xkb_overlay_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_overlay_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_permament_lock_behavior_t# ### type# xcb_xkb_permament_lock_behavior_t* {.bycopy.} = object# `type`*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_permament_lock_behavior_iterator_t# ### type# xcb_xkb_permament_lock_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_permament_lock_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_permament_radio_group_behavior_t# ### type# xcb_xkb_permament_radio_group_behavior_t* {.bycopy.} = object# `type`*: uint8# group*: uint8# ## *# ## @brief xcb_xkb_permament_radio_group_behavior_iterator_t# ### type# xcb_xkb_permament_radio_group_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_permament_radio_group_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_permament_overlay_behavior_t# ### type# xcb_xkb_permament_overlay_behavior_t* {.bycopy.} = object# `type`*: uint8# key*: xcb_keycode_t# ## *# ## @brief xcb_xkb_permament_overlay_behavior_iterator_t# ### type# xcb_xkb_permament_overlay_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_permament_overlay_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_behavior_t# ### type# xcb_xkb_behavior_t* {.bycopy.} = object {.union.}# common*: xcb_xkb_common_behavior_t# _default*: xcb_xkb_default_behavior_t# lock*: xcb_xkb_lock_behavior_t# radioGroup*: xcb_xkb_radio_group_behavior_t# overlay1*: xcb_xkb_overlay_behavior_t# overlay2*: xcb_xkb_overlay_behavior_t# permamentLock*: xcb_xkb_permament_lock_behavior_t# permamentRadioGroup*: xcb_xkb_permament_radio_group_behavior_t# permamentOverlay1*: xcb_xkb_permament_overlay_behavior_t# permamentOverlay2*: xcb_xkb_permament_overlay_behavior_t# `type`*: uint8# ## *# ## @brief xcb_xkb_behavior_iterator_t# ### type# xcb_xkb_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_behavior_t# rem*: cint# index*: cint# xcb_xkb_behavior_type_t* = enum# XCB_XKB_BEHAVIOR_TYPE_DEFAULT = 0, XCB_XKB_BEHAVIOR_TYPE_LOCK = 1,# XCB_XKB_BEHAVIOR_TYPE_RADIO_GROUP = 2, XCB_XKB_BEHAVIOR_TYPE_OVERLAY_1 = 3,# XCB_XKB_BEHAVIOR_TYPE_OVERLAY_2 = 4,# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_LOCK = 129,# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_RADIO_GROUP = 130,# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_1 = 131,# XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_2 = 132# ## *# ## @brief xcb_xkb_set_behavior_t# ### type# xcb_xkb_set_behavior_t* {.bycopy.} = object# keycode*: xcb_keycode_t# behavior*: xcb_xkb_behavior_t# pad0*: uint8# ## *# ## @brief xcb_xkb_set_behavior_iterator_t# ### type# xcb_xkb_set_behavior_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_set_behavior_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_set_explicit_t# ### type# xcb_xkb_set_explicit_t* {.bycopy.} = object# keycode*: xcb_keycode_t# explicit*: uint8# ## *# ## @brief xcb_xkb_set_explicit_iterator_t# ### type# xcb_xkb_set_explicit_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_set_explicit_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_mod_map_t# ### type# xcb_xkb_key_mod_map_t* {.bycopy.} = object# keycode*: xcb_keycode_t# mods*: uint8# ## *# ## @brief xcb_xkb_key_mod_map_iterator_t# ### type# xcb_xkb_key_mod_map_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_mod_map_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_v_mod_map_t# ### type# xcb_xkb_key_v_mod_map_t* {.bycopy.} = object# keycode*: xcb_keycode_t# pad0*: uint8# vmods*: uint16# ## *# ## @brief xcb_xkb_key_v_mod_map_iterator_t# ### type# xcb_xkb_key_v_mod_map_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_v_mod_map_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_kt_set_map_entry_t# ### type# xcb_xkb_kt_set_map_entry_t* {.bycopy.} = object# level*: uint8# realMods*: uint8# virtualMods*: uint16# ## *# ## @brief xcb_xkb_kt_set_map_entry_iterator_t# ### type# xcb_xkb_kt_set_map_entry_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_kt_set_map_entry_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_set_key_type_t# ### type# xcb_xkb_set_key_type_t* {.bycopy.} = object# mask*: uint8# realMods*: uint8# virtualMods*: uint16# numLevels*: uint8# nMapEntries*: uint8# preserve*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_set_key_type_iterator_t# ### type# xcb_xkb_set_key_type_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_set_key_type_t# rem*: cint# index*: cint# xcb_xkb_string8_t* = char# ## *# ## @brief xcb_xkb_string8_iterator_t# ### type# xcb_xkb_string8_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_string8_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_outline_t# ### type# xcb_xkb_outline_t* {.bycopy.} = object# nPoints*: uint8# cornerRadius*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_outline_iterator_t# ### type# xcb_xkb_outline_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_outline_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_shape_t# ### type# xcb_xkb_shape_t* {.bycopy.} = object# name*: xcb_atom_t# nOutlines*: uint8# primaryNdx*: uint8# approxNdx*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_shape_iterator_t# ### type# xcb_xkb_shape_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_shape_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_key_t# ### type# xcb_xkb_key_t* {.bycopy.} = object# name*: array[4, xcb_xkb_string8_t]# gap*: int16# shapeNdx*: uint8# colorNdx*: uint8# ## *# ## @brief xcb_xkb_key_iterator_t# ### type# xcb_xkb_key_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_key_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_overlay_key_t# ### type# xcb_xkb_overlay_key_t* {.bycopy.} = object# over*: array[4, xcb_xkb_string8_t]# under*: array[4, xcb_xkb_string8_t]# ## *# ## @brief xcb_xkb_overlay_key_iterator_t# ### type# xcb_xkb_overlay_key_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_overlay_key_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_overlay_row_t# ### type# xcb_xkb_overlay_row_t* {.bycopy.} = object# rowUnder*: uint8# nKeys*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_overlay_row_iterator_t# ### type# xcb_xkb_overlay_row_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_overlay_row_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_overlay_t# ### type# xcb_xkb_overlay_t* {.bycopy.} = object# name*: xcb_atom_t# nRows*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_xkb_overlay_iterator_t# ### type# xcb_xkb_overlay_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_overlay_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_row_t# ### type# xcb_xkb_row_t* {.bycopy.} = object# top*: int16# left*: int16# nKeys*: uint8# vertical*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_row_iterator_t# ### type# xcb_xkb_row_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_row_t# rem*: cint# index*: cint# xcb_xkb_doodad_type_t* = enum# XCB_XKB_DOODAD_TYPE_OUTLINE = 1, XCB_XKB_DOODAD_TYPE_SOLID = 2,# XCB_XKB_DOODAD_TYPE_TEXT = 3, XCB_XKB_DOODAD_TYPE_INDICATOR = 4,# XCB_XKB_DOODAD_TYPE_LOGO = 5# ## *# ## @brief xcb_xkb_listing_t# ### type# xcb_xkb_listing_t* {.bycopy.} = object# flags*: uint16# length*: uint16# ## *# ## @brief xcb_xkb_listing_iterator_t# ### type# xcb_xkb_listing_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_listing_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_device_led_info_t# ### type# xcb_xkb_device_led_info_t* {.bycopy.} = object# ledClass*: xcb_xkb_led_class_spec_t# ledID*: xcb_xkb_id_spec_t# namesPresent*: uint32# mapsPresent*: uint32# physIndicators*: uint32# state*: uint32# ## *# ## @brief xcb_xkb_device_led_info_iterator_t# ### type# xcb_xkb_device_led_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_device_led_info_t# rem*: cint# index*: cint# xcb_xkb_error_t* = enum# XCB_XKB_ERROR_BAD_ID = 253, XCB_XKB_ERROR_BAD_CLASS = 254,# XCB_XKB_ERROR_BAD_DEVICE = 255# ## * Opcode for xcb_xkb_keyboard.# const# XCB_XKB_KEYBOARD* = 0# ## *# ## @brief xcb_xkb_keyboard_error_t# ### type# xcb_xkb_keyboard_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# value*: uint32# minorOpcode*: uint16# majorOpcode*: uint8# pad0*: array[21, uint8]# xcb_xkb_sa_t* = enum# XCB_XKB_SA_CLEAR_LOCKS = 1, XCB_XKB_SA_LATCH_TO_LOCK = 2,# XCB_XKB_SA_USE_MOD_MAP_MODS = 4# xcb_xkb_sa_type_t* = enum# XCB_XKB_SA_TYPE_NO_ACTION = 0, XCB_XKB_SA_TYPE_SET_MODS = 1,# XCB_XKB_SA_TYPE_LATCH_MODS = 2, XCB_XKB_SA_TYPE_LOCK_MODS = 3,# XCB_XKB_SA_TYPE_SET_GROUP = 4, XCB_XKB_SA_TYPE_LATCH_GROUP = 5,# XCB_XKB_SA_TYPE_LOCK_GROUP = 6, XCB_XKB_SA_TYPE_MOVE_PTR = 7,# XCB_XKB_SA_TYPE_PTR_BTN = 8, XCB_XKB_SA_TYPE_LOCK_PTR_BTN = 9,# XCB_XKB_SA_TYPE_SET_PTR_DFLT = 10, XCB_XKB_SA_TYPE_ISO_LOCK = 11,# XCB_XKB_SA_TYPE_TERMINATE = 12, XCB_XKB_SA_TYPE_SWITCH_SCREEN = 13,# XCB_XKB_SA_TYPE_SET_CONTROLS = 14, XCB_XKB_SA_TYPE_LOCK_CONTROLS = 15,# XCB_XKB_SA_TYPE_ACTION_MESSAGE = 16, XCB_XKB_SA_TYPE_REDIRECT_KEY = 17,# XCB_XKB_SA_TYPE_DEVICE_BTN = 18, XCB_XKB_SA_TYPE_LOCK_DEVICE_BTN = 19,# XCB_XKB_SA_TYPE_DEVICE_VALUATOR = 20# const# XCB_XKB_SA_GROUP_ABSOLUTE = XCB_XKB_SA_USE_MOD_MAP_MODS# ## *# ## @brief xcb_xkb_sa_no_action_t# ### type# xcb_xkb_sa_no_action_t* {.bycopy.} = object# `type`*: uint8# pad0*: array[7, uint8]# ## *# ## @brief xcb_xkb_sa_no_action_iterator_t# ### type# xcb_xkb_sa_no_action_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_no_action_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_set_mods_t# ### type# xcb_xkb_sa_set_mods_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# mask*: uint8# realMods*: uint8# vmodsHigh*: uint8# vmodsLow*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_sa_set_mods_iterator_t# ### type# xcb_xkb_sa_set_mods_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_set_mods_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_latch_mods_t# ### type# xcb_xkb_sa_latch_mods_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# mask*: uint8# realMods*: uint8# vmodsHigh*: uint8# vmodsLow*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_sa_latch_mods_iterator_t# ### type# xcb_xkb_sa_latch_mods_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_latch_mods_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_lock_mods_t# ### type# xcb_xkb_sa_lock_mods_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# mask*: uint8# realMods*: uint8# vmodsHigh*: uint8# vmodsLow*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_sa_lock_mods_iterator_t# ### type# xcb_xkb_sa_lock_mods_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_lock_mods_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_set_group_t# ### type# xcb_xkb_sa_set_group_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# group*: int8# pad0*: array[5, uint8]# ## *# ## @brief xcb_xkb_sa_set_group_iterator_t# ### type# xcb_xkb_sa_set_group_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_set_group_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_latch_group_t# ### type# xcb_xkb_sa_latch_group_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# group*: int8# pad0*: array[5, uint8]# ## *# ## @brief xcb_xkb_sa_latch_group_iterator_t# ### type# xcb_xkb_sa_latch_group_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_latch_group_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_lock_group_t# ### type# xcb_xkb_sa_lock_group_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# group*: int8# pad0*: array[5, uint8]# ## *# ## @brief xcb_xkb_sa_lock_group_iterator_t# ### type# xcb_xkb_sa_lock_group_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_lock_group_t# rem*: cint# index*: cint# xcb_xkb_sa_move_ptr_flag_t* = enum# XCB_XKB_SA_MOVE_PTR_FLAG_NO_ACCELERATION = 1,# XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_X = 2,# XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_Y = 4# ## *# ## @brief xcb_xkb_sa_move_ptr_t# ### type# xcb_xkb_sa_move_ptr_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# xHigh*: int8# xLow*: uint8# yHigh*: int8# yLow*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_sa_move_ptr_iterator_t# ### type# xcb_xkb_sa_move_ptr_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_move_ptr_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_ptr_btn_t# ### type# xcb_xkb_sa_ptr_btn_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# count*: uint8# button*: uint8# pad0*: array[4, uint8]# ## *# ## @brief xcb_xkb_sa_ptr_btn_iterator_t# ### type# xcb_xkb_sa_ptr_btn_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_ptr_btn_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_lock_ptr_btn_t# ### type# xcb_xkb_sa_lock_ptr_btn_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# pad0*: uint8# button*: uint8# pad1*: array[4, uint8]# ## *# ## @brief xcb_xkb_sa_lock_ptr_btn_iterator_t# ### type# xcb_xkb_sa_lock_ptr_btn_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_lock_ptr_btn_t# rem*: cint# index*: cint# xcb_xkb_sa_set_ptr_dflt_flag_t* = enum# XCB_XKB_SA_SET_PTR_DFLT_FLAG_AFFECT_DFLT_BUTTON = 1,# XCB_XKB_SA_SET_PTR_DFLT_FLAG_DFLT_BTN_ABSOLUTE = 4# ## *# ## @brief xcb_xkb_sa_set_ptr_dflt_t# ### type# xcb_xkb_sa_set_ptr_dflt_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# affect*: uint8# value*: int8# pad0*: array[4, uint8]# ## *# ## @brief xcb_xkb_sa_set_ptr_dflt_iterator_t# ### type# xcb_xkb_sa_set_ptr_dflt_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_set_ptr_dflt_t# rem*: cint# index*: cint# xcb_xkb_sa_iso_lock_flag_t* = enum# XCB_XKB_SA_ISO_LOCK_FLAG_NO_LOCK = 1, XCB_XKB_SA_ISO_LOCK_FLAG_NO_UNLOCK = 2,# XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODS = 4,# XCB_XKB_SA_ISO_LOCK_FLAG_ISO_DFLT_IS_GROUP = 8# xcb_xkb_sa_iso_lock_no_affect_t* = enum# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_CTRLS = 8,# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_PTR = 16,# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_GROUP = 32,# XCB_XKB_SA_ISO_LOCK_NO_AFFECT_MODS = 64# const# XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE = XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODS# ## *# ## @brief xcb_xkb_sa_iso_lock_t# ### type# xcb_xkb_sa_iso_lock_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# mask*: uint8# realMods*: uint8# group*: int8# affect*: uint8# vmodsHigh*: uint8# vmodsLow*: uint8# ## *# ## @brief xcb_xkb_sa_iso_lock_iterator_t# ### type# xcb_xkb_sa_iso_lock_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_iso_lock_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_terminate_t# ### type# xcb_xkb_sa_terminate_t* {.bycopy.} = object# `type`*: uint8# pad0*: array[7, uint8]# ## *# ## @brief xcb_xkb_sa_terminate_iterator_t# ### type# xcb_xkb_sa_terminate_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_terminate_t# rem*: cint# index*: cint# xcb_xkb_switch_screen_flag_t* = enum# XCB_XKB_SWITCH_SCREEN_FLAG_APPLICATION = 1,# XCB_XKB_SWITCH_SCREEN_FLAG_ABSOLUTE = 4# ## *# ## @brief xcb_xkb_sa_switch_screen_t# ### type# xcb_xkb_sa_switch_screen_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# newScreen*: int8# pad0*: array[5, uint8]# ## *# ## @brief xcb_xkb_sa_switch_screen_iterator_t# ### type# xcb_xkb_sa_switch_screen_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_switch_screen_t# rem*: cint# index*: cint# xcb_xkb_bool_ctrls_high_t* = enum# XCB_XKB_BOOL_CTRLS_HIGH_ACCESS_X_FEEDBACK = 1,# XCB_XKB_BOOL_CTRLS_HIGH_AUDIBLE_BELL = 2,# XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_1 = 4, XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_2 = 8,# XCB_XKB_BOOL_CTRLS_HIGH_IGNORE_GROUP_LOCK = 16# xcb_xkb_bool_ctrls_low_t* = enum# XCB_XKB_BOOL_CTRLS_LOW_REPEAT_KEYS = 1, XCB_XKB_BOOL_CTRLS_LOW_SLOW_KEYS = 2,# XCB_XKB_BOOL_CTRLS_LOW_BOUNCE_KEYS = 4, XCB_XKB_BOOL_CTRLS_LOW_STICKY_KEYS = 8,# XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS = 16,# XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS_ACCEL = 32,# XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_KEYS = 64,# XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_TIMEOUT = 128# ## *# ## @brief xcb_xkb_sa_set_controls_t# ### type# xcb_xkb_sa_set_controls_t* {.bycopy.} = object# `type`*: uint8# pad0*: array[3, uint8]# boolCtrlsHigh*: uint8# boolCtrlsLow*: uint8# pad1*: array[2, uint8]# ## *# ## @brief xcb_xkb_sa_set_controls_iterator_t# ### type# xcb_xkb_sa_set_controls_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_set_controls_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_lock_controls_t# ### type# xcb_xkb_sa_lock_controls_t* {.bycopy.} = object# `type`*: uint8# pad0*: array[3, uint8]# boolCtrlsHigh*: uint8# boolCtrlsLow*: uint8# pad1*: array[2, uint8]# ## *# ## @brief xcb_xkb_sa_lock_controls_iterator_t# ### type# xcb_xkb_sa_lock_controls_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_lock_controls_t# rem*: cint# index*: cint# xcb_xkb_action_message_flag_t* = enum# XCB_XKB_ACTION_MESSAGE_FLAG_ON_PRESS = 1,# XCB_XKB_ACTION_MESSAGE_FLAG_ON_RELEASE = 2,# XCB_XKB_ACTION_MESSAGE_FLAG_GEN_KEY_EVENT = 4# ## *# ## @brief xcb_xkb_sa_action_message_t# ### type# xcb_xkb_sa_action_message_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# message*: array[6, uint8]# ## *# ## @brief xcb_xkb_sa_action_message_iterator_t# ### type# xcb_xkb_sa_action_message_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_action_message_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_redirect_key_t# ### type# xcb_xkb_sa_redirect_key_t* {.bycopy.} = object# `type`*: uint8# newkey*: xcb_keycode_t# mask*: uint8# realModifiers*: uint8# vmodsMaskHigh*: uint8# vmodsMaskLow*: uint8# vmodsHigh*: uint8# vmodsLow*: uint8# ## *# ## @brief xcb_xkb_sa_redirect_key_iterator_t# ### type# xcb_xkb_sa_redirect_key_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_redirect_key_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sa_device_btn_t# ### type# xcb_xkb_sa_device_btn_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# count*: uint8# button*: uint8# device*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_xkb_sa_device_btn_iterator_t# ### type# xcb_xkb_sa_device_btn_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_device_btn_t# rem*: cint# index*: cint# xcb_xkb_lock_device_flags_t* = enum# XCB_XKB_LOCK_DEVICE_FLAGS_NO_LOCK = 1, XCB_XKB_LOCK_DEVICE_FLAGS_NO_UNLOCK = 2# ## *# ## @brief xcb_xkb_sa_lock_device_btn_t# ### type# xcb_xkb_sa_lock_device_btn_t* {.bycopy.} = object# `type`*: uint8# flags*: uint8# pad0*: uint8# button*: uint8# device*: uint8# pad1*: array[3, uint8]# ## *# ## @brief xcb_xkb_sa_lock_device_btn_iterator_t# ### type# xcb_xkb_sa_lock_device_btn_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_lock_device_btn_t# rem*: cint# index*: cint# xcb_xkb_sa_val_what_t* = enum# XCB_XKB_SA_VAL_WHAT_IGNORE_VAL = 0, XCB_XKB_SA_VAL_WHAT_SET_VAL_MIN = 1,# XCB_XKB_SA_VAL_WHAT_SET_VAL_CENTER = 2, XCB_XKB_SA_VAL_WHAT_SET_VAL_MAX = 3,# XCB_XKB_SA_VAL_WHAT_SET_VAL_RELATIVE = 4,# XCB_XKB_SA_VAL_WHAT_SET_VAL_ABSOLUTE = 5# ## *# ## @brief xcb_xkb_sa_device_valuator_t# ### type# xcb_xkb_sa_device_valuator_t* {.bycopy.} = object# `type`*: uint8# device*: uint8# val1what*: uint8# val1index*: uint8# val1value*: uint8# val2what*: uint8# val2index*: uint8# val2value*: uint8# ## *# ## @brief xcb_xkb_sa_device_valuator_iterator_t# ### type# xcb_xkb_sa_device_valuator_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sa_device_valuator_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_si_action_t# ### type# xcb_xkb_si_action_t* {.bycopy.} = object# `type`*: uint8# data*: array[7, uint8]# ## *# ## @brief xcb_xkb_si_action_iterator_t# ### type# xcb_xkb_si_action_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_si_action_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_sym_interpret_t# ### type# xcb_xkb_sym_interpret_t* {.bycopy.} = object# sym*: xcb_keysym_t# mods*: uint8# match*: uint8# virtualMod*: uint8# flags*: uint8# action*: xcb_xkb_si_action_t# ## *# ## @brief xcb_xkb_sym_interpret_iterator_t# ### type# xcb_xkb_sym_interpret_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_sym_interpret_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_action_t# ### type# xcb_xkb_action_t* {.bycopy.} = object {.union.}# noaction*: xcb_xkb_sa_no_action_t# setmods*: xcb_xkb_sa_set_mods_t# latchmods*: xcb_xkb_sa_latch_mods_t# lockmods*: xcb_xkb_sa_lock_mods_t# setgroup*: xcb_xkb_sa_set_group_t# latchgroup*: xcb_xkb_sa_latch_group_t# lockgroup*: xcb_xkb_sa_lock_group_t# moveptr*: xcb_xkb_sa_move_ptr_t# ptrbtn*: xcb_xkb_sa_ptr_btn_t# lockptrbtn*: xcb_xkb_sa_lock_ptr_btn_t# setptrdflt*: xcb_xkb_sa_set_ptr_dflt_t# isolock*: xcb_xkb_sa_iso_lock_t# terminate*: xcb_xkb_sa_terminate_t# switchscreen*: xcb_xkb_sa_switch_screen_t# setcontrols*: xcb_xkb_sa_set_controls_t# lockcontrols*: xcb_xkb_sa_lock_controls_t# message*: xcb_xkb_sa_action_message_t# redirect*: xcb_xkb_sa_redirect_key_t# devbtn*: xcb_xkb_sa_device_btn_t# lockdevbtn*: xcb_xkb_sa_lock_device_btn_t# devval*: xcb_xkb_sa_device_valuator_t# `type`*: uint8# ## *# ## @brief xcb_xkb_action_iterator_t# ### type# xcb_xkb_action_iterator_t* {.bycopy.} = object# data*: ptr xcb_xkb_action_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xkb_use_extension_cookie_t# ### type# xcb_xkb_use_extension_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_use_extension.# const# XCB_XKB_USE_EXTENSION* = 0# ## *# ## @brief xcb_xkb_use_extension_request_t# ### type# xcb_xkb_use_extension_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# wantedMajor*: uint16# wantedMinor*: uint16# ## *# ## @brief xcb_xkb_use_extension_reply_t# ### type# xcb_xkb_use_extension_reply_t* {.bycopy.} = object# response_type*: uint8# supported*: uint8# sequence*: uint16# length*: uint32# serverMajor*: uint16# serverMinor*: uint16# pad0*: array[20, uint8]# ## *# ## @brief xcb_xkb_select_events_details_t# ### type# xcb_xkb_select_events_details_t* {.bycopy.} = object# affectNewKeyboard*: uint16# newKeyboardDetails*: uint16# affectState*: uint16# stateDetails*: uint16# affectCtrls*: uint32# ctrlDetails*: uint32# affectIndicatorState*: uint32# indicatorStateDetails*: uint32# affectIndicatorMap*: uint32# indicatorMapDetails*: uint32# affectNames*: uint16# namesDetails*: uint16# affectCompat*: uint8# compatDetails*: uint8# affectBell*: uint8# bellDetails*: uint8# affectMsgDetails*: uint8# msgDetails*: uint8# affectAccessX*: uint16# accessXDetails*: uint16# affectExtDev*: uint16# extdevDetails*: uint16# ## * Opcode for xcb_xkb_select_events.# const# XCB_XKB_SELECT_EVENTS* = 1# ## *# ## @brief xcb_xkb_select_events_request_t# ### type# xcb_xkb_select_events_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# affectWhich*: uint16# clear*: uint16# selectAll*: uint16# affectMap*: uint16# map*: uint16# ## * Opcode for xcb_xkb_bell.# const# XCB_XKB_BELL* = 3# ## *# ## @brief xcb_xkb_bell_request_t# ### type# xcb_xkb_bell_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# bellClass*: xcb_xkb_bell_class_spec_t# bellID*: xcb_xkb_id_spec_t# percent*: int8# forceSound*: uint8# eventOnly*: uint8# pad0*: uint8# pitch*: int16# duration*: int16# pad1*: array[2, uint8]# name*: xcb_atom_t# window*: xcb_window_t# ## *# ## @brief xcb_xkb_get_state_cookie_t# ### type# xcb_xkb_get_state_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_state.# const# XCB_XKB_GET_STATE* = 4# ## *# ## @brief xcb_xkb_get_state_request_t# ### type# xcb_xkb_get_state_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_get_state_reply_t# ### type# xcb_xkb_get_state_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# mods*: uint8# baseMods*: uint8# latchedMods*: uint8# lockedMods*: uint8# group*: uint8# lockedGroup*: uint8# baseGroup*: int16# latchedGroup*: int16# compatState*: uint8# grabMods*: uint8# compatGrabMods*: uint8# lookupMods*: uint8# compatLookupMods*: uint8# pad0*: uint8# ptrBtnState*: uint16# pad1*: array[6, uint8]# ## * Opcode for xcb_xkb_latch_lock_state.# const# XCB_XKB_LATCH_LOCK_STATE* = 5# ## *# ## @brief xcb_xkb_latch_lock_state_request_t# ### type# xcb_xkb_latch_lock_state_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# affectModLocks*: uint8# modLocks*: uint8# lockGroup*: uint8# groupLock*: uint8# affectModLatches*: uint8# pad0*: uint8# pad1*: uint8# latchGroup*: uint8# groupLatch*: uint16# ## *# ## @brief xcb_xkb_get_controls_cookie_t# ### type# xcb_xkb_get_controls_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_controls.# const# XCB_XKB_GET_CONTROLS* = 6# ## *# ## @brief xcb_xkb_get_controls_request_t# ### type# xcb_xkb_get_controls_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_get_controls_reply_t# ### type# xcb_xkb_get_controls_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# mouseKeysDfltBtn*: uint8# numGroups*: uint8# groupsWrap*: uint8# internalModsMask*: uint8# ignoreLockModsMask*: uint8# internalModsRealMods*: uint8# ignoreLockModsRealMods*: uint8# pad0*: uint8# internalModsVmods*: uint16# ignoreLockModsVmods*: uint16# repeatDelay*: uint16# repeatInterval*: uint16# slowKeysDelay*: uint16# debounceDelay*: uint16# mouseKeysDelay*: uint16# mouseKeysInterval*: uint16# mouseKeysTimeToMax*: uint16# mouseKeysMaxSpeed*: uint16# mouseKeysCurve*: int16# accessXOption*: uint16# accessXTimeout*: uint16# accessXTimeoutOptionsMask*: uint16# accessXTimeoutOptionsValues*: uint16# pad1*: array[2, uint8]# accessXTimeoutMask*: uint32# accessXTimeoutValues*: uint32# enabledControls*: uint32# perKeyRepeat*: array[32, uint8]# ## * Opcode for xcb_xkb_set_controls.# const# XCB_XKB_SET_CONTROLS* = 7# ## *# ## @brief xcb_xkb_set_controls_request_t# ### type# xcb_xkb_set_controls_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# affectInternalRealMods*: uint8# internalRealMods*: uint8# affectIgnoreLockRealMods*: uint8# ignoreLockRealMods*: uint8# affectInternalVirtualMods*: uint16# internalVirtualMods*: uint16# affectIgnoreLockVirtualMods*: uint16# ignoreLockVirtualMods*: uint16# mouseKeysDfltBtn*: uint8# groupsWrap*: uint8# accessXOptions*: uint16# pad0*: array[2, uint8]# affectEnabledControls*: uint32# enabledControls*: uint32# changeControls*: uint32# repeatDelay*: uint16# repeatInterval*: uint16# slowKeysDelay*: uint16# debounceDelay*: uint16# mouseKeysDelay*: uint16# mouseKeysInterval*: uint16# mouseKeysTimeToMax*: uint16# mouseKeysMaxSpeed*: uint16# mouseKeysCurve*: int16# accessXTimeout*: uint16# accessXTimeoutMask*: uint32# accessXTimeoutValues*: uint32# accessXTimeoutOptionsMask*: uint16# accessXTimeoutOptionsValues*: uint16# perKeyRepeat*: array[32, uint8]# ## *# ## @brief xcb_xkb_get_map_cookie_t# ### type# xcb_xkb_get_map_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_map.# const# XCB_XKB_GET_MAP* = 8# ## *# ## @brief xcb_xkb_get_map_request_t# ### type# xcb_xkb_get_map_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# full*: uint16# partial*: uint16# firstType*: uint8# nTypes*: uint8# firstKeySym*: xcb_keycode_t# nKeySyms*: uint8# firstKeyAction*: xcb_keycode_t# nKeyActions*: uint8# firstKeyBehavior*: xcb_keycode_t# nKeyBehaviors*: uint8# virtualMods*: uint16# firstKeyExplicit*: xcb_keycode_t# nKeyExplicit*: uint8# firstModMapKey*: xcb_keycode_t# nModMapKeys*: uint8# firstVModMapKey*: xcb_keycode_t# nVModMapKeys*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_get_map_map_t# ### type# xcb_xkb_get_map_map_t* {.bycopy.} = object# types_rtrn*: ptr xcb_xkb_key_type_t# syms_rtrn*: ptr xcb_xkb_key_sym_map_t# acts_rtrn_count*: ptr uint8# pad2*: ptr uint8# acts_rtrn_acts*: ptr xcb_xkb_action_t# behaviors_rtrn*: ptr xcb_xkb_set_behavior_t# vmods_rtrn*: ptr uint8# pad3*: ptr uint8# explicit_rtrn*: ptr xcb_xkb_set_explicit_t# pad4*: ptr uint8# modmap_rtrn*: ptr xcb_xkb_key_mod_map_t# pad5*: ptr uint8# vmodmap_rtrn*: ptr xcb_xkb_key_v_mod_map_t# ## *# ## @brief xcb_xkb_get_map_reply_t# ### type# xcb_xkb_get_map_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# pad0*: array[2, uint8]# minKeyCode*: xcb_keycode_t# maxKeyCode*: xcb_keycode_t# present*: uint16# firstType*: uint8# nTypes*: uint8# totalTypes*: uint8# firstKeySym*: xcb_keycode_t# totalSyms*: uint16# nKeySyms*: uint8# firstKeyAction*: xcb_keycode_t# totalActions*: uint16# nKeyActions*: uint8# firstKeyBehavior*: xcb_keycode_t# nKeyBehaviors*: uint8# totalKeyBehaviors*: uint8# firstKeyExplicit*: xcb_keycode_t# nKeyExplicit*: uint8# totalKeyExplicit*: uint8# firstModMapKey*: xcb_keycode_t# nModMapKeys*: uint8# totalModMapKeys*: uint8# firstVModMapKey*: xcb_keycode_t# nVModMapKeys*: uint8# totalVModMapKeys*: uint8# pad1*: uint8# virtualMods*: uint16# ## *# ## @brief xcb_xkb_set_map_values_t# ### type# xcb_xkb_set_map_values_t* {.bycopy.} = object# types*: ptr xcb_xkb_set_key_type_t# syms*: ptr xcb_xkb_key_sym_map_t# actionsCount*: ptr uint8# actions*: ptr xcb_xkb_action_t# behaviors*: ptr xcb_xkb_set_behavior_t# vmods*: ptr uint8# explicit*: ptr xcb_xkb_set_explicit_t# modmap*: ptr xcb_xkb_key_mod_map_t# vmodmap*: ptr xcb_xkb_key_v_mod_map_t# ## * Opcode for xcb_xkb_set_map.# const# XCB_XKB_SET_MAP* = 9# ## *# ## @brief xcb_xkb_set_map_request_t# ### type# xcb_xkb_set_map_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# present*: uint16# flags*: uint16# minKeyCode*: xcb_keycode_t# maxKeyCode*: xcb_keycode_t# firstType*: uint8# nTypes*: uint8# firstKeySym*: xcb_keycode_t# nKeySyms*: uint8# totalSyms*: uint16# firstKeyAction*: xcb_keycode_t# nKeyActions*: uint8# totalActions*: uint16# firstKeyBehavior*: xcb_keycode_t# nKeyBehaviors*: uint8# totalKeyBehaviors*: uint8# firstKeyExplicit*: xcb_keycode_t# nKeyExplicit*: uint8# totalKeyExplicit*: uint8# firstModMapKey*: xcb_keycode_t# nModMapKeys*: uint8# totalModMapKeys*: uint8# firstVModMapKey*: xcb_keycode_t# nVModMapKeys*: uint8# totalVModMapKeys*: uint8# virtualMods*: uint16# ## *# ## @brief xcb_xkb_get_compat_map_cookie_t# ### type# xcb_xkb_get_compat_map_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_compat_map.# const# XCB_XKB_GET_COMPAT_MAP* = 10# ## *# ## @brief xcb_xkb_get_compat_map_request_t# ### type# xcb_xkb_get_compat_map_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# groups*: uint8# getAllSI*: uint8# firstSI*: uint16# nSI*: uint16# ## *# ## @brief xcb_xkb_get_compat_map_reply_t# ### type# xcb_xkb_get_compat_map_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# groupsRtrn*: uint8# pad0*: uint8# firstSIRtrn*: uint16# nSIRtrn*: uint16# nTotalSI*: uint16# pad1*: array[16, uint8]# ## * Opcode for xcb_xkb_set_compat_map.# const# XCB_XKB_SET_COMPAT_MAP* = 11# ## *# ## @brief xcb_xkb_set_compat_map_request_t# ### type# xcb_xkb_set_compat_map_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: uint8# recomputeActions*: uint8# truncateSI*: uint8# groups*: uint8# firstSI*: uint16# nSI*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_xkb_get_indicator_state_cookie_t# ### type# xcb_xkb_get_indicator_state_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_indicator_state.# const# XCB_XKB_GET_INDICATOR_STATE* = 12# ## *# ## @brief xcb_xkb_get_indicator_state_request_t# ### type# xcb_xkb_get_indicator_state_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# ## *# ## @brief xcb_xkb_get_indicator_state_reply_t# ### type# xcb_xkb_get_indicator_state_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# state*: uint32# pad0*: array[20, uint8]# ## *# ## @brief xcb_xkb_get_indicator_map_cookie_t# ### type# xcb_xkb_get_indicator_map_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_indicator_map.# const# XCB_XKB_GET_INDICATOR_MAP* = 13# ## *# ## @brief xcb_xkb_get_indicator_map_request_t# ### type# xcb_xkb_get_indicator_map_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# which*: uint32# ## *# ## @brief xcb_xkb_get_indicator_map_reply_t# ### type# xcb_xkb_get_indicator_map_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# which*: uint32# realIndicators*: uint32# nIndicators*: uint8# pad0*: array[15, uint8]# ## * Opcode for xcb_xkb_set_indicator_map.# const# XCB_XKB_SET_INDICATOR_MAP* = 14# ## *# ## @brief xcb_xkb_set_indicator_map_request_t# ### type# xcb_xkb_set_indicator_map_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# which*: uint32# ## *# ## @brief xcb_xkb_get_named_indicator_cookie_t# ### type# xcb_xkb_get_named_indicator_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_named_indicator.# const# XCB_XKB_GET_NAMED_INDICATOR* = 15# ## *# ## @brief xcb_xkb_get_named_indicator_request_t# ### type# xcb_xkb_get_named_indicator_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# ledClass*: xcb_xkb_led_class_spec_t# ledID*: xcb_xkb_id_spec_t# pad0*: array[2, uint8]# indicator*: xcb_atom_t# ## *# ## @brief xcb_xkb_get_named_indicator_reply_t# ### type# xcb_xkb_get_named_indicator_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# indicator*: xcb_atom_t# found*: uint8# on*: uint8# realIndicator*: uint8# ndx*: uint8# map_flags*: uint8# map_whichGroups*: uint8# map_groups*: uint8# map_whichMods*: uint8# map_mods*: uint8# map_realMods*: uint8# map_vmod*: uint16# map_ctrls*: uint32# supported*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_xkb_set_named_indicator.# const# XCB_XKB_SET_NAMED_INDICATOR* = 16# ## *# ## @brief xcb_xkb_set_named_indicator_request_t# ### type# xcb_xkb_set_named_indicator_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# ledClass*: xcb_xkb_led_class_spec_t# ledID*: xcb_xkb_id_spec_t# pad0*: array[2, uint8]# indicator*: xcb_atom_t# setState*: uint8# on*: uint8# setMap*: uint8# createMap*: uint8# pad1*: uint8# map_flags*: uint8# map_whichGroups*: uint8# map_groups*: uint8# map_whichMods*: uint8# map_realMods*: uint8# map_vmods*: uint16# map_ctrls*: uint32# ## *# ## @brief xcb_xkb_get_names_cookie_t# ### type# xcb_xkb_get_names_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_names.# const# XCB_XKB_GET_NAMES* = 17# ## *# ## @brief xcb_xkb_get_names_request_t# ### type# xcb_xkb_get_names_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# which*: uint32# ## *# ## @brief xcb_xkb_get_names_value_list_t# ### type# xcb_xkb_get_names_value_list_t* {.bycopy.} = object# keycodesName*: xcb_atom_t# geometryName*: xcb_atom_t# symbolsName*: xcb_atom_t# physSymbolsName*: xcb_atom_t# typesName*: xcb_atom_t# compatName*: xcb_atom_t# typeNames*: ptr xcb_atom_t# nLevelsPerType*: ptr uint8# pad1*: ptr uint8# ktLevelNames*: ptr xcb_atom_t# indicatorNames*: ptr xcb_atom_t# virtualModNames*: ptr xcb_atom_t# groups*: ptr xcb_atom_t# keyNames*: ptr xcb_xkb_key_name_t# keyAliases*: ptr xcb_xkb_key_alias_t# radioGroupNames*: ptr xcb_atom_t# ## *# ## @brief xcb_xkb_get_names_reply_t# ### type# xcb_xkb_get_names_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# which*: uint32# minKeyCode*: xcb_keycode_t# maxKeyCode*: xcb_keycode_t# nTypes*: uint8# groupNames*: uint8# virtualMods*: uint16# firstKey*: xcb_keycode_t# nKeys*: uint8# indicators*: uint32# nRadioGroups*: uint8# nKeyAliases*: uint8# nKTLevels*: uint16# pad0*: array[4, uint8]# ## *# ## @brief xcb_xkb_set_names_values_t# ### type# xcb_xkb_set_names_values_t* {.bycopy.} = object# keycodesName*: xcb_atom_t# geometryName*: xcb_atom_t# symbolsName*: xcb_atom_t# physSymbolsName*: xcb_atom_t# typesName*: xcb_atom_t# compatName*: xcb_atom_t# typeNames*: ptr xcb_atom_t# nLevelsPerType*: ptr uint8# ktLevelNames*: ptr xcb_atom_t# indicatorNames*: ptr xcb_atom_t# virtualModNames*: ptr xcb_atom_t# groups*: ptr xcb_atom_t# keyNames*: ptr xcb_xkb_key_name_t# keyAliases*: ptr xcb_xkb_key_alias_t# radioGroupNames*: ptr xcb_atom_t# ## * Opcode for xcb_xkb_set_names.# const# XCB_XKB_SET_NAMES* = 18# ## *# ## @brief xcb_xkb_set_names_request_t# ### type# xcb_xkb_set_names_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# virtualMods*: uint16# which*: uint32# firstType*: uint8# nTypes*: uint8# firstKTLevelt*: uint8# nKTLevels*: uint8# indicators*: uint32# groupNames*: uint8# nRadioGroups*: uint8# firstKey*: xcb_keycode_t# nKeys*: uint8# nKeyAliases*: uint8# pad0*: uint8# totalKTLevelNames*: uint16# ## *# ## @brief xcb_xkb_per_client_flags_cookie_t# ### type# xcb_xkb_per_client_flags_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_per_client_flags.# const# XCB_XKB_PER_CLIENT_FLAGS* = 21# ## *# ## @brief xcb_xkb_per_client_flags_request_t# ### type# xcb_xkb_per_client_flags_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# pad0*: array[2, uint8]# change*: uint32# value*: uint32# ctrlsToChange*: uint32# autoCtrls*: uint32# autoCtrlsValues*: uint32# ## *# ## @brief xcb_xkb_per_client_flags_reply_t# ### type# xcb_xkb_per_client_flags_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# supported*: uint32# value*: uint32# autoCtrls*: uint32# autoCtrlsValues*: uint32# pad0*: array[8, uint8]# ## *# ## @brief xcb_xkb_list_components_cookie_t# ### type# xcb_xkb_list_components_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_list_components.# const# XCB_XKB_LIST_COMPONENTS* = 22# ## *# ## @brief xcb_xkb_list_components_request_t# ### type# xcb_xkb_list_components_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# maxNames*: uint16# ## *# ## @brief xcb_xkb_list_components_reply_t# ### type# xcb_xkb_list_components_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# nKeymaps*: uint16# nKeycodes*: uint16# nTypes*: uint16# nCompatMaps*: uint16# nSymbols*: uint16# nGeometries*: uint16# extra*: uint16# pad0*: array[10, uint8]# ## *# ## @brief xcb_xkb_get_kbd_by_name_cookie_t# ### type# xcb_xkb_get_kbd_by_name_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_kbd_by_name.# const# XCB_XKB_GET_KBD_BY_NAME* = 23# ## *# ## @brief xcb_xkb_get_kbd_by_name_request_t# ### type# xcb_xkb_get_kbd_by_name_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# need*: uint16# want*: uint16# load*: uint8# pad0*: uint8# ## *# ## @brief xcb_xkb_get_kbd_by_name_replies_types_map_t# ### type# xcb_xkb_get_kbd_by_name_replies_types_map_t* {.bycopy.} = object# types_rtrn*: ptr xcb_xkb_key_type_t# syms_rtrn*: ptr xcb_xkb_key_sym_map_t# acts_rtrn_count*: ptr uint8# acts_rtrn_acts*: ptr xcb_xkb_action_t# behaviors_rtrn*: ptr xcb_xkb_set_behavior_t# vmods_rtrn*: ptr uint8# explicit_rtrn*: ptr xcb_xkb_set_explicit_t# modmap_rtrn*: ptr xcb_xkb_key_mod_map_t# vmodmap_rtrn*: ptr xcb_xkb_key_v_mod_map_t# ## *# ## @brief xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t# ### type# xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t* {.bycopy.} = object# keycodesName*: xcb_atom_t# geometryName*: xcb_atom_t# symbolsName*: xcb_atom_t# physSymbolsName*: xcb_atom_t# typesName*: xcb_atom_t# compatName*: xcb_atom_t# typeNames*: ptr xcb_atom_t# nLevelsPerType*: ptr uint8# ktLevelNames*: ptr xcb_atom_t# indicatorNames*: ptr xcb_atom_t# virtualModNames*: ptr xcb_atom_t# groups*: ptr xcb_atom_t# keyNames*: ptr xcb_xkb_key_name_t# keyAliases*: ptr xcb_xkb_key_alias_t# radioGroupNames*: ptr xcb_atom_t# ## *# ## @brief xcb_xkb_get_kbd_by_name_replies_t# ### type# INNER_C_STRUCT_xkb_2530* {.bycopy.} = object# getmap_type*: uint8# typeDeviceID*: uint8# getmap_sequence*: uint16# getmap_length*: uint32# pad1*: array[2, uint8]# typeMinKeyCode*: xcb_keycode_t# typeMaxKeyCode*: xcb_keycode_t# present*: uint16# firstType*: uint8# nTypes*: uint8# totalTypes*: uint8# firstKeySym*: xcb_keycode_t# totalSyms*: uint16# nKeySyms*: uint8# firstKeyAction*: xcb_keycode_t# totalActions*: uint16# nKeyActions*: uint8# firstKeyBehavior*: xcb_keycode_t# nKeyBehaviors*: uint8# totalKeyBehaviors*: uint8# firstKeyExplicit*: xcb_keycode_t# nKeyExplicit*: uint8# totalKeyExplicit*: uint8# firstModMapKey*: xcb_keycode_t# nModMapKeys*: uint8# totalModMapKeys*: uint8# firstVModMapKey*: xcb_keycode_t# nVModMapKeys*: uint8# totalVModMapKeys*: uint8# pad2*: uint8# virtualMods*: uint16# map*: xcb_xkb_get_kbd_by_name_replies_types_map_t# INNER_C_STRUCT_xkb_2564* {.bycopy.} = object# compatmap_type*: uint8# compatDeviceID*: uint8# compatmap_sequence*: uint16# compatmap_length*: uint32# groupsRtrn*: uint8# pad7*: uint8# firstSIRtrn*: uint16# nSIRtrn*: uint16# nTotalSI*: uint16# pad8*: array[16, uint8]# si_rtrn*: ptr xcb_xkb_sym_interpret_t# group_rtrn*: ptr xcb_xkb_mod_def_t# INNER_C_STRUCT_xkb_2578* {.bycopy.} = object# indicatormap_type*: uint8# indicatorDeviceID*: uint8# indicatormap_sequence*: uint16# indicatormap_length*: uint32# which*: uint32# realIndicators*: uint32# nIndicators*: uint8# pad9*: array[15, uint8]# maps*: ptr xcb_xkb_indicator_map_t# INNER_C_STRUCT_xkb_2589* {.bycopy.} = object# keyname_type*: uint8# keyDeviceID*: uint8# keyname_sequence*: uint16# keyname_length*: uint32# which*: uint32# keyMinKeyCode*: xcb_keycode_t# keyMaxKeyCode*: xcb_keycode_t# nTypes*: uint8# groupNames*: uint8# virtualMods*: uint16# firstKey*: xcb_keycode_t# nKeys*: uint8# indicators*: uint32# nRadioGroups*: uint8# nKeyAliases*: uint8# nKTLevels*: uint16# pad10*: array[4, uint8]# valueList*: xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t# INNER_C_STRUCT_xkb_2609* {.bycopy.} = object# geometry_type*: uint8# geometryDeviceID*: uint8# geometry_sequence*: uint16# geometry_length*: uint32# name*: xcb_atom_t# geometryFound*: uint8# pad12*: uint8# widthMM*: uint16# heightMM*: uint16# nProperties*: uint16# nColors*: uint16# nShapes*: uint16# nSections*: uint16# nDoodads*: uint16# nKeyAliases*: uint16# baseColorNdx*: uint8# labelColorNdx*: uint8# labelFont*: ptr xcb_xkb_counted_string_16_t# xcb_xkb_get_kbd_by_name_replies_t* {.bycopy.} = object# types*: INNER_C_STRUCT_xkb_2530# compat_map*: INNER_C_STRUCT_xkb_2564# indicator_maps*: INNER_C_STRUCT_xkb_2578# key_names*: INNER_C_STRUCT_xkb_2589# geometry*: INNER_C_STRUCT_xkb_2609# proc xcb_xkb_get_kbd_by_name_replies_types_map*(# R: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_get_kbd_by_name_replies_types_map_t# ## *# ## @brief xcb_xkb_get_kbd_by_name_reply_t# ### type# xcb_xkb_get_kbd_by_name_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# minKeyCode*: xcb_keycode_t# maxKeyCode*: xcb_keycode_t# loaded*: uint8# newKeyboard*: uint8# found*: uint16# reported*: uint16# pad0*: array[16, uint8]# ## *# ## @brief xcb_xkb_get_device_info_cookie_t# ### type# xcb_xkb_get_device_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_get_device_info.# const# XCB_XKB_GET_DEVICE_INFO* = 24# ## *# ## @brief xcb_xkb_get_device_info_request_t# ### type# xcb_xkb_get_device_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# wanted*: uint16# allButtons*: uint8# firstButton*: uint8# nButtons*: uint8# pad0*: uint8# ledClass*: xcb_xkb_led_class_spec_t# ledID*: xcb_xkb_id_spec_t# ## *# ## @brief xcb_xkb_get_device_info_reply_t# ### type# xcb_xkb_get_device_info_reply_t* {.bycopy.} = object# response_type*: uint8# deviceID*: uint8# sequence*: uint16# length*: uint32# present*: uint16# supported*: uint16# unsupported*: uint16# nDeviceLedFBs*: uint16# firstBtnWanted*: uint8# nBtnsWanted*: uint8# firstBtnRtrn*: uint8# nBtnsRtrn*: uint8# totalBtns*: uint8# hasOwnState*: uint8# dfltKbdFB*: uint16# dfltLedFB*: uint16# pad0*: array[2, uint8]# devType*: xcb_atom_t# nameLen*: uint16# ## * Opcode for xcb_xkb_set_device_info.# const# XCB_XKB_SET_DEVICE_INFO* = 25# ## *# ## @brief xcb_xkb_set_device_info_request_t# ### type# xcb_xkb_set_device_info_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# deviceSpec*: xcb_xkb_device_spec_t# firstBtn*: uint8# nBtns*: uint8# change*: uint16# nDeviceLedFBs*: uint16# ## *# ## @brief xcb_xkb_set_debugging_flags_cookie_t# ### type# xcb_xkb_set_debugging_flags_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xkb_set_debugging_flags.# const# XCB_XKB_SET_DEBUGGING_FLAGS* = 101# ## *# ## @brief xcb_xkb_set_debugging_flags_request_t# ### type# xcb_xkb_set_debugging_flags_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# msgLength*: uint16# pad0*: array[2, uint8]# affectFlags*: uint32# flags*: uint32# affectCtrls*: uint32# ctrls*: uint32# ## *# ## @brief xcb_xkb_set_debugging_flags_reply_t# ### type# xcb_xkb_set_debugging_flags_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# currentFlags*: uint32# currentCtrls*: uint32# supportedFlags*: uint32# supportedCtrls*: uint32# pad1*: array[8, uint8]# ## * Opcode for xcb_xkb_new_keyboard_notify.# const# XCB_XKB_NEW_KEYBOARD_NOTIFY* = 0# ## *# ## @brief xcb_xkb_new_keyboard_notify_event_t# ### type# xcb_xkb_new_keyboard_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# oldDeviceID*: uint8# minKeyCode*: xcb_keycode_t# maxKeyCode*: xcb_keycode_t# oldMinKeyCode*: xcb_keycode_t# oldMaxKeyCode*: xcb_keycode_t# requestMajor*: uint8# requestMinor*: uint8# changed*: uint16# pad0*: array[14, uint8]# ## * Opcode for xcb_xkb_map_notify.# const# XCB_XKB_MAP_NOTIFY* = 1# ## *# ## @brief xcb_xkb_map_notify_event_t# ### type# xcb_xkb_map_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# ptrBtnActions*: uint8# changed*: uint16# minKeyCode*: xcb_keycode_t# maxKeyCode*: xcb_keycode_t# firstType*: uint8# nTypes*: uint8# firstKeySym*: xcb_keycode_t# nKeySyms*: uint8# firstKeyAct*: xcb_keycode_t# nKeyActs*: uint8# firstKeyBehavior*: xcb_keycode_t# nKeyBehavior*: uint8# firstKeyExplicit*: xcb_keycode_t# nKeyExplicit*: uint8# firstModMapKey*: xcb_keycode_t# nModMapKeys*: uint8# firstVModMapKey*: xcb_keycode_t# nVModMapKeys*: uint8# virtualMods*: uint16# pad0*: array[2, uint8]# ## * Opcode for xcb_xkb_state_notify.# const# XCB_XKB_STATE_NOTIFY* = 2# ## *# ## @brief xcb_xkb_state_notify_event_t# ### type# xcb_xkb_state_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# mods*: uint8# baseMods*: uint8# latchedMods*: uint8# lockedMods*: uint8# group*: uint8# baseGroup*: int16# latchedGroup*: int16# lockedGroup*: uint8# compatState*: uint8# grabMods*: uint8# compatGrabMods*: uint8# lookupMods*: uint8# compatLoockupMods*: uint8# ptrBtnState*: uint16# changed*: uint16# keycode*: xcb_keycode_t# eventType*: uint8# requestMajor*: uint8# requestMinor*: uint8# ## * Opcode for xcb_xkb_controls_notify.# const# XCB_XKB_CONTROLS_NOTIFY* = 3# ## *# ## @brief xcb_xkb_controls_notify_event_t# ### type# xcb_xkb_controls_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# numGroups*: uint8# pad0*: array[2, uint8]# changedControls*: uint32# enabledControls*: uint32# enabledControlChanges*: uint32# keycode*: xcb_keycode_t# eventType*: uint8# requestMajor*: uint8# requestMinor*: uint8# pad1*: array[4, uint8]# ## * Opcode for xcb_xkb_indicator_state_notify.# const# XCB_XKB_INDICATOR_STATE_NOTIFY* = 4# ## *# ## @brief xcb_xkb_indicator_state_notify_event_t# ### type# xcb_xkb_indicator_state_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# pad0*: array[3, uint8]# state*: uint32# stateChanged*: uint32# pad1*: array[12, uint8]# ## * Opcode for xcb_xkb_indicator_map_notify.# const# XCB_XKB_INDICATOR_MAP_NOTIFY* = 5# ## *# ## @brief xcb_xkb_indicator_map_notify_event_t# ### type# xcb_xkb_indicator_map_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# pad0*: array[3, uint8]# state*: uint32# mapChanged*: uint32# pad1*: array[12, uint8]# ## * Opcode for xcb_xkb_names_notify.# const# XCB_XKB_NAMES_NOTIFY* = 6# ## *# ## @brief xcb_xkb_names_notify_event_t# ### type# xcb_xkb_names_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# pad0*: uint8# changed*: uint16# firstType*: uint8# nTypes*: uint8# firstLevelName*: uint8# nLevelNames*: uint8# pad1*: uint8# nRadioGroups*: uint8# nKeyAliases*: uint8# changedGroupNames*: uint8# changedVirtualMods*: uint16# firstKey*: xcb_keycode_t# nKeys*: uint8# changedIndicators*: uint32# pad2*: array[4, uint8]# ## * Opcode for xcb_xkb_compat_map_notify.# const# XCB_XKB_COMPAT_MAP_NOTIFY* = 7# ## *# ## @brief xcb_xkb_compat_map_notify_event_t# ### type# xcb_xkb_compat_map_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# changedGroups*: uint8# firstSI*: uint16# nSI*: uint16# nTotalSI*: uint16# pad0*: array[16, uint8]# ## * Opcode for xcb_xkb_bell_notify.# const# XCB_XKB_BELL_NOTIFY* = 8# ## *# ## @brief xcb_xkb_bell_notify_event_t# ### type# xcb_xkb_bell_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# bellClass*: uint8# bellID*: uint8# percent*: uint8# pitch*: uint16# duration*: uint16# name*: xcb_atom_t# window*: xcb_window_t# eventOnly*: uint8# pad0*: array[7, uint8]# ## * Opcode for xcb_xkb_action_message.# const# XCB_XKB_ACTION_MESSAGE* = 9# ## *# ## @brief xcb_xkb_action_message_event_t# ### type# xcb_xkb_action_message_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# keycode*: xcb_keycode_t# press*: uint8# keyEventFollows*: uint8# mods*: uint8# group*: uint8# message*: array[8, xcb_xkb_string8_t]# pad0*: array[10, uint8]# ## * Opcode for xcb_xkb_access_x_notify.# const# XCB_XKB_ACCESS_X_NOTIFY* = 10# ## *# ## @brief xcb_xkb_access_x_notify_event_t# ### type# xcb_xkb_access_x_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# keycode*: xcb_keycode_t# detailt*: uint16# slowKeysDelay*: uint16# debounceDelay*: uint16# pad0*: array[16, uint8]# ## * Opcode for xcb_xkb_extension_device_notify.# const# XCB_XKB_EXTENSION_DEVICE_NOTIFY* = 11# ## *# ## @brief xcb_xkb_extension_device_notify_event_t# ### type# xcb_xkb_extension_device_notify_event_t* {.bycopy.} = object# response_type*: uint8# xkbType*: uint8# sequence*: uint16# time*: xcb_timestamp_t# deviceID*: uint8# pad0*: uint8# reason*: uint16# ledClass*: uint16# ledID*: uint16# ledsDefined*: uint32# ledState*: uint32# firstButton*: uint8# nButtons*: uint8# supported*: uint16# unsupported*: uint16# pad1*: array[2, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_device_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_device_spec_t)# ### proc xcb_xkb_device_spec_next*(i: ptr xcb_xkb_device_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_device_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_device_spec_end*(i: xcb_xkb_device_spec_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_led_class_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_led_class_spec_t)# ### proc xcb_xkb_led_class_spec_next*(i: ptr xcb_xkb_led_class_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_led_class_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_led_class_spec_end*(i: xcb_xkb_led_class_spec_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_bell_class_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_bell_class_spec_t)# ### proc xcb_xkb_bell_class_spec_next*(i: ptr xcb_xkb_bell_class_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_bell_class_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_bell_class_spec_end*(i: xcb_xkb_bell_class_spec_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_id_spec_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_id_spec_t)# ### proc xcb_xkb_id_spec_next*(i: ptr xcb_xkb_id_spec_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_id_spec_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_id_spec_end*(i: xcb_xkb_id_spec_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_indicator_map_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_indicator_map_t)# ### proc xcb_xkb_indicator_map_next*(i: ptr xcb_xkb_indicator_map_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_indicator_map_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_indicator_map_end*(i: xcb_xkb_indicator_map_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_mod_def_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_mod_def_t)# ### proc xcb_xkb_mod_def_next*(i: ptr xcb_xkb_mod_def_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_mod_def_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_mod_def_end*(i: xcb_xkb_mod_def_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_key_name_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_key_name_t)# ### proc xcb_xkb_key_name_next*(i: ptr xcb_xkb_key_name_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_key_name_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_key_name_end*(i: xcb_xkb_key_name_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_key_alias_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_key_alias_t)# ### proc xcb_xkb_key_alias_next*(i: ptr xcb_xkb_key_alias_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_key_alias_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_key_alias_end*(i: xcb_xkb_key_alias_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_counted_string_16_sizeof*(_buffer: pointer): cint# proc xcb_xkb_counted_string_16_string*(R: ptr xcb_xkb_counted_string_16_t): cstring# proc xcb_xkb_counted_string_16_string_length*(R: ptr xcb_xkb_counted_string_16_t): cint# proc xcb_xkb_counted_string_16_string_end*(R: ptr xcb_xkb_counted_string_16_t): xcb_generic_iterator_t# proc xcb_xkb_counted_string_16_alignment_pad*(R: ptr xcb_xkb_counted_string_16_t): pointer# proc xcb_xkb_counted_string_16_alignment_pad_length*(# R: ptr xcb_xkb_counted_string_16_t): cint# proc xcb_xkb_counted_string_16_alignment_pad_end*(# R: ptr xcb_xkb_counted_string_16_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_counted_string_16_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_counted_string_16_t)# ### proc xcb_xkb_counted_string_16_next*(i: ptr xcb_xkb_counted_string_16_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_counted_string_16_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_counted_string_16_end*(i: xcb_xkb_counted_string_16_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_kt_map_entry_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_kt_map_entry_t)# ### proc xcb_xkb_key_type_end*(i: xcb_xkb_key_type_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_key_sym_map_sizeof*(_buffer: pointer): cint# proc xcb_xkb_key_sym_map_syms*(R: ptr xcb_xkb_key_sym_map_t): ptr xcb_keysym_t# proc xcb_xkb_key_sym_map_syms_length*(R: ptr xcb_xkb_key_sym_map_t): cint# proc xcb_xkb_key_sym_map_syms_end*(R: ptr xcb_xkb_key_sym_map_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_key_sym_map_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_key_sym_map_t)# ### proc xcb_xkb_key_sym_map_next*(i: ptr xcb_xkb_key_sym_map_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_key_sym_map_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_key_sym_map_end*(i: xcb_xkb_key_sym_map_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_common_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_common_behavior_t)# ### proc xcb_xkb_common_behavior_next*(i: ptr xcb_xkb_common_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_common_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_common_behavior_end*(i: xcb_xkb_common_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_default_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_default_behavior_t)# ### proc xcb_xkb_default_behavior_next*(i: ptr xcb_xkb_default_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_default_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_default_behavior_end*(i: xcb_xkb_default_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_lock_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_lock_behavior_t)# ### proc xcb_xkb_lock_behavior_next*(i: ptr xcb_xkb_lock_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_lock_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_lock_behavior_end*(i: xcb_xkb_lock_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_radio_group_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_radio_group_behavior_t)# ### proc xcb_xkb_radio_group_behavior_next*(i: ptr xcb_xkb_radio_group_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_radio_group_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_radio_group_behavior_end*(i: xcb_xkb_radio_group_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_overlay_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_overlay_behavior_t)# ### proc xcb_xkb_overlay_behavior_next*(i: ptr xcb_xkb_overlay_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_overlay_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_overlay_behavior_end*(i: xcb_xkb_overlay_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_permament_lock_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_permament_lock_behavior_t)# ### proc xcb_xkb_permament_lock_behavior_next*(# i: ptr xcb_xkb_permament_lock_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_permament_lock_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_permament_lock_behavior_end*(# i: xcb_xkb_permament_lock_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_permament_radio_group_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_permament_radio_group_behavior_t)# ### proc xcb_xkb_permament_radio_group_behavior_next*(# i: ptr xcb_xkb_permament_radio_group_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_permament_radio_group_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_permament_radio_group_behavior_end*(# i: xcb_xkb_permament_radio_group_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_permament_overlay_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_permament_overlay_behavior_t)# ### proc xcb_xkb_permament_overlay_behavior_next*(# i: ptr xcb_xkb_permament_overlay_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_permament_overlay_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_permament_overlay_behavior_end*(# i: xcb_xkb_permament_overlay_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_behavior_t)# ### proc xcb_xkb_behavior_next*(i: ptr xcb_xkb_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_behavior_end*(i: xcb_xkb_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_set_behavior_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_set_behavior_t)# ### proc xcb_xkb_set_behavior_next*(i: ptr xcb_xkb_set_behavior_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_set_behavior_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_set_behavior_end*(i: xcb_xkb_set_behavior_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_set_explicit_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_set_explicit_t)# ### proc xcb_xkb_set_explicit_next*(i: ptr xcb_xkb_set_explicit_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_set_explicit_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_set_explicit_end*(i: xcb_xkb_set_explicit_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_key_mod_map_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_key_mod_map_t)# ### proc xcb_xkb_key_mod_map_next*(i: ptr xcb_xkb_key_mod_map_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_key_mod_map_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_key_mod_map_end*(i: xcb_xkb_key_mod_map_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_key_v_mod_map_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_key_v_mod_map_t)# ### proc xcb_xkb_key_v_mod_map_next*(i: ptr xcb_xkb_key_v_mod_map_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_key_v_mod_map_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_key_v_mod_map_end*(i: xcb_xkb_key_v_mod_map_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_kt_set_map_entry_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_kt_set_map_entry_t)# ### proc xcb_xkb_kt_set_map_entry_next*(i: ptr xcb_xkb_kt_set_map_entry_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_kt_set_map_entry_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_kt_set_map_entry_end*(i: xcb_xkb_kt_set_map_entry_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_set_key_type_sizeof*(_buffer: pointer): cint# proc xcb_xkb_set_key_type_entries*(R: ptr xcb_xkb_set_key_type_t): ptr xcb_xkb_kt_set_map_entry_t# proc xcb_xkb_set_key_type_entries_length*(R: ptr xcb_xkb_set_key_type_t): cint# proc xcb_xkb_set_key_type_entries_iterator*(R: ptr xcb_xkb_set_key_type_t): xcb_xkb_kt_set_map_entry_iterator_t# proc xcb_xkb_set_key_type_preserve_entries*(R: ptr xcb_xkb_set_key_type_t): ptr xcb_xkb_kt_set_map_entry_t# proc xcb_xkb_set_key_type_preserve_entries_length*(R: ptr xcb_xkb_set_key_type_t): cint# proc xcb_xkb_set_key_type_preserve_entries_iterator*(# R: ptr xcb_xkb_set_key_type_t): xcb_xkb_kt_set_map_entry_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_set_key_type_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_set_key_type_t)# ### proc xcb_xkb_set_key_type_next*(i: ptr xcb_xkb_set_key_type_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_set_key_type_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_set_key_type_end*(i: xcb_xkb_set_key_type_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_string8_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_string8_t)# ### proc xcb_xkb_string8_next*(i: ptr xcb_xkb_string8_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_string8_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_string8_end*(i: xcb_xkb_string8_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_outline_sizeof*(_buffer: pointer): cint# proc xcb_xkb_outline_points*(R: ptr xcb_xkb_outline_t): ptr xcb_point_t# proc xcb_xkb_outline_points_length*(R: ptr xcb_xkb_outline_t): cint# proc xcb_xkb_outline_points_iterator*(R: ptr xcb_xkb_outline_t): xcb_point_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_outline_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_outline_t)# ### proc xcb_xkb_outline_next*(i: ptr xcb_xkb_outline_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_outline_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_outline_end*(i: xcb_xkb_outline_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_shape_sizeof*(_buffer: pointer): cint# proc xcb_xkb_shape_outlines_length*(R: ptr xcb_xkb_shape_t): cint# proc xcb_xkb_shape_outlines_iterator*(R: ptr xcb_xkb_shape_t): xcb_xkb_outline_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_shape_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_shape_t)# ### proc xcb_xkb_shape_next*(i: ptr xcb_xkb_shape_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_shape_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_shape_end*(i: xcb_xkb_shape_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_key_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_key_t)# ### proc xcb_xkb_key_next*(i: ptr xcb_xkb_key_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_key_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_key_end*(i: xcb_xkb_key_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_overlay_key_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_overlay_key_t)# ### proc xcb_xkb_overlay_key_next*(i: ptr xcb_xkb_overlay_key_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_overlay_key_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_overlay_key_end*(i: xcb_xkb_overlay_key_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_overlay_row_sizeof*(_buffer: pointer): cint# proc xcb_xkb_overlay_row_keys*(R: ptr xcb_xkb_overlay_row_t): ptr xcb_xkb_overlay_key_t# proc xcb_xkb_overlay_row_keys_length*(R: ptr xcb_xkb_overlay_row_t): cint# proc xcb_xkb_overlay_row_keys_iterator*(R: ptr xcb_xkb_overlay_row_t): xcb_xkb_overlay_key_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_overlay_row_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_overlay_row_t)# ### proc xcb_xkb_overlay_row_next*(i: ptr xcb_xkb_overlay_row_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_overlay_row_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_overlay_row_end*(i: xcb_xkb_overlay_row_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_overlay_sizeof*(_buffer: pointer): cint# proc xcb_xkb_overlay_rows_length*(R: ptr xcb_xkb_overlay_t): cint# proc xcb_xkb_overlay_rows_iterator*(R: ptr xcb_xkb_overlay_t): xcb_xkb_overlay_row_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_overlay_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_overlay_t)# ### proc xcb_xkb_overlay_next*(i: ptr xcb_xkb_overlay_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_overlay_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_overlay_end*(i: xcb_xkb_overlay_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_row_sizeof*(_buffer: pointer): cint# proc xcb_xkb_row_keys*(R: ptr xcb_xkb_row_t): ptr xcb_xkb_key_t# proc xcb_xkb_row_keys_length*(R: ptr xcb_xkb_row_t): cint# proc xcb_xkb_row_keys_iterator*(R: ptr xcb_xkb_row_t): xcb_xkb_key_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_row_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_row_t)# ### proc xcb_xkb_row_next*(i: ptr xcb_xkb_row_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_row_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_row_end*(i: xcb_xkb_row_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_listing_sizeof*(_buffer: pointer): cint# proc xcb_xkb_listing_string*(R: ptr xcb_xkb_listing_t): ptr xcb_xkb_string8_t# proc xcb_xkb_listing_string_length*(R: ptr xcb_xkb_listing_t): cint# proc xcb_xkb_listing_string_end*(R: ptr xcb_xkb_listing_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_listing_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_listing_t)# ### proc xcb_xkb_listing_next*(i: ptr xcb_xkb_listing_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_listing_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_listing_end*(i: xcb_xkb_listing_iterator_t): xcb_generic_iterator_t# proc xcb_xkb_device_led_info_sizeof*(_buffer: pointer): cint# proc xcb_xkb_device_led_info_names*(R: ptr xcb_xkb_device_led_info_t): ptr xcb_atom_t# proc xcb_xkb_device_led_info_names_length*(R: ptr xcb_xkb_device_led_info_t): cint# proc xcb_xkb_device_led_info_names_end*(R: ptr xcb_xkb_device_led_info_t): xcb_generic_iterator_t# proc xcb_xkb_device_led_info_maps*(R: ptr xcb_xkb_device_led_info_t): ptr xcb_xkb_indicator_map_t# proc xcb_xkb_device_led_info_maps_length*(R: ptr xcb_xkb_device_led_info_t): cint# proc xcb_xkb_device_led_info_maps_iterator*(R: ptr xcb_xkb_device_led_info_t): xcb_xkb_indicator_map_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_device_led_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_device_led_info_t)# ### proc xcb_xkb_device_led_info_next*(i: ptr xcb_xkb_device_led_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_device_led_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_device_led_info_end*(i: xcb_xkb_device_led_info_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_no_action_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_no_action_t)# ### proc xcb_xkb_sa_no_action_next*(i: ptr xcb_xkb_sa_no_action_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_no_action_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_no_action_end*(i: xcb_xkb_sa_no_action_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_set_mods_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_mods_t)# ### proc xcb_xkb_sa_set_mods_next*(i: ptr xcb_xkb_sa_set_mods_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_set_mods_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_set_mods_end*(i: xcb_xkb_sa_set_mods_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_latch_mods_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_latch_mods_t)# ### proc xcb_xkb_sa_latch_mods_next*(i: ptr xcb_xkb_sa_latch_mods_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_latch_mods_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_latch_mods_end*(i: xcb_xkb_sa_latch_mods_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_lock_mods_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_mods_t)# ### proc xcb_xkb_sa_lock_mods_next*(i: ptr xcb_xkb_sa_lock_mods_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_lock_mods_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_lock_mods_end*(i: xcb_xkb_sa_lock_mods_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_set_group_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_group_t)# ### proc xcb_xkb_sa_set_group_next*(i: ptr xcb_xkb_sa_set_group_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_set_group_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_set_group_end*(i: xcb_xkb_sa_set_group_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_latch_group_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_latch_group_t)# ### proc xcb_xkb_sa_latch_group_next*(i: ptr xcb_xkb_sa_latch_group_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_latch_group_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_latch_group_end*(i: xcb_xkb_sa_latch_group_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_lock_group_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_group_t)# ### proc xcb_xkb_sa_lock_group_next*(i: ptr xcb_xkb_sa_lock_group_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_lock_group_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_lock_group_end*(i: xcb_xkb_sa_lock_group_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_move_ptr_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_move_ptr_t)# ### proc xcb_xkb_sa_move_ptr_next*(i: ptr xcb_xkb_sa_move_ptr_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_move_ptr_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_move_ptr_end*(i: xcb_xkb_sa_move_ptr_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_ptr_btn_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_ptr_btn_t)# ### proc xcb_xkb_sa_ptr_btn_next*(i: ptr xcb_xkb_sa_ptr_btn_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_ptr_btn_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_ptr_btn_end*(i: xcb_xkb_sa_ptr_btn_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_lock_ptr_btn_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_ptr_btn_t)# ### proc xcb_xkb_sa_lock_ptr_btn_next*(i: ptr xcb_xkb_sa_lock_ptr_btn_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_lock_ptr_btn_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_lock_ptr_btn_end*(i: xcb_xkb_sa_lock_ptr_btn_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_set_ptr_dflt_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_ptr_dflt_t)# ### proc xcb_xkb_sa_set_ptr_dflt_next*(i: ptr xcb_xkb_sa_set_ptr_dflt_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_set_ptr_dflt_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_set_ptr_dflt_end*(i: xcb_xkb_sa_set_ptr_dflt_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_iso_lock_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_iso_lock_t)# ### proc xcb_xkb_sa_iso_lock_next*(i: ptr xcb_xkb_sa_iso_lock_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_iso_lock_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_iso_lock_end*(i: xcb_xkb_sa_iso_lock_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_terminate_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_terminate_t)# ### proc xcb_xkb_sa_terminate_next*(i: ptr xcb_xkb_sa_terminate_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_terminate_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_terminate_end*(i: xcb_xkb_sa_terminate_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_switch_screen_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_switch_screen_t)# ### proc xcb_xkb_sa_switch_screen_next*(i: ptr xcb_xkb_sa_switch_screen_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_switch_screen_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_switch_screen_end*(i: xcb_xkb_sa_switch_screen_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_set_controls_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_set_controls_t)# ### proc xcb_xkb_sa_set_controls_next*(i: ptr xcb_xkb_sa_set_controls_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_set_controls_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_set_controls_end*(i: xcb_xkb_sa_set_controls_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_lock_controls_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_controls_t)# ### proc xcb_xkb_sa_lock_controls_next*(i: ptr xcb_xkb_sa_lock_controls_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_lock_controls_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_lock_controls_end*(i: xcb_xkb_sa_lock_controls_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_action_message_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_action_message_t)# ### proc xcb_xkb_sa_action_message_next*(i: ptr xcb_xkb_sa_action_message_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_action_message_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_action_message_end*(i: xcb_xkb_sa_action_message_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_redirect_key_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_redirect_key_t)# ### proc xcb_xkb_sa_redirect_key_next*(i: ptr xcb_xkb_sa_redirect_key_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_redirect_key_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_redirect_key_end*(i: xcb_xkb_sa_redirect_key_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_device_btn_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_device_btn_t)# ### proc xcb_xkb_sa_device_btn_next*(i: ptr xcb_xkb_sa_device_btn_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_device_btn_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_device_btn_end*(i: xcb_xkb_sa_device_btn_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_lock_device_btn_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_lock_device_btn_t)# ### proc xcb_xkb_sa_lock_device_btn_next*(i: ptr xcb_xkb_sa_lock_device_btn_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_lock_device_btn_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_lock_device_btn_end*(i: xcb_xkb_sa_lock_device_btn_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sa_device_valuator_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sa_device_valuator_t)# ### proc xcb_xkb_sa_device_valuator_next*(i: ptr xcb_xkb_sa_device_valuator_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sa_device_valuator_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sa_device_valuator_end*(i: xcb_xkb_sa_device_valuator_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_si_action_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_si_action_t)# ### proc xcb_xkb_si_action_next*(i: ptr xcb_xkb_si_action_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_si_action_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_si_action_end*(i: xcb_xkb_si_action_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_sym_interpret_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_sym_interpret_t)# ### proc xcb_xkb_sym_interpret_next*(i: ptr xcb_xkb_sym_interpret_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_sym_interpret_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_sym_interpret_end*(i: xcb_xkb_sym_interpret_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xkb_action_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xkb_action_t)# ### proc xcb_xkb_action_next*(i: ptr xcb_xkb_action_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xkb_action_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xkb_action_end*(i: xcb_xkb_action_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_use_extension_unchecked*(c: ptr xcb_connection_t;# wantedMajor: uint16; wantedMinor: uint16): xcb_xkb_use_extension_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_use_extension_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_select_events_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectWhich: uint16; clear: uint16;# selectAll: uint16; affectMap: uint16;# map: uint16; details: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_select_events_aux_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectWhich: uint16; clear: uint16;# selectAll: uint16; affectMap: uint16;# map: uint16; details: ptr xcb_xkb_select_events_details_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_select_events_aux*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectWhich: uint16; clear: uint16;# selectAll: uint16; affectMap: uint16;# map: uint16;# details: ptr xcb_xkb_select_events_details_t): xcb_void_cookie_t# proc xcb_xkb_select_events_details*(R: ptr xcb_xkb_select_events_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_bell_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# bellClass: xcb_xkb_bell_class_spec_t;# bellID: xcb_xkb_id_spec_t; percent: int8;# forceSound: uint8; eventOnly: uint8; pitch: int16;# duration: int16; name: xcb_atom_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_bell*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;# bellClass: xcb_xkb_bell_class_spec_t; bellID: xcb_xkb_id_spec_t;# percent: int8; forceSound: uint8; eventOnly: uint8;# pitch: int16; duration: int16; name: xcb_atom_t;# window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_state*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_state_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_state_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_state_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_state_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_state_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_state_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_state_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_latch_lock_state_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectModLocks: uint8; modLocks: uint8;# lockGroup: uint8; groupLock: uint8;# affectModLatches: uint8;# latchGroup: uint8; groupLatch: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_latch_lock_state*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectModLocks: uint8; modLocks: uint8;# lockGroup: uint8; groupLock: uint8;# affectModLatches: uint8; latchGroup: uint8;# groupLatch: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_controls*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_controls_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_controls_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_controls_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_controls_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_controls_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_controls_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_controls_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_controls_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectInternalRealMods: uint8;# internalRealMods: uint8;# affectIgnoreLockRealMods: uint8;# ignoreLockRealMods: uint8;# affectInternalVirtualMods: uint16;# internalVirtualMods: uint16;# affectIgnoreLockVirtualMods: uint16;# ignoreLockVirtualMods: uint16;# mouseKeysDfltBtn: uint8; groupsWrap: uint8;# accessXOptions: uint16;# affectEnabledControls: uint32;# enabledControls: uint32;# changeControls: uint32; repeatDelay: uint16;# repeatInterval: uint16;# slowKeysDelay: uint16;# debounceDelay: uint16;# mouseKeysDelay: uint16;# mouseKeysInterval: uint16;# mouseKeysTimeToMax: uint16;# mouseKeysMaxSpeed: uint16;# mouseKeysCurve: int16;# accessXTimeout: uint16;# accessXTimeoutMask: uint32;# accessXTimeoutValues: uint32;# accessXTimeoutOptionsMask: uint16;# accessXTimeoutOptionsValues: uint16;# perKeyRepeat: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_controls*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# affectInternalRealMods: uint8;# internalRealMods: uint8;# affectIgnoreLockRealMods: uint8;# ignoreLockRealMods: uint8;# affectInternalVirtualMods: uint16;# internalVirtualMods: uint16;# affectIgnoreLockVirtualMods: uint16;# ignoreLockVirtualMods: uint16;# mouseKeysDfltBtn: uint8; groupsWrap: uint8;# accessXOptions: uint16;# affectEnabledControls: uint32;# enabledControls: uint32; changeControls: uint32;# repeatDelay: uint16; repeatInterval: uint16;# slowKeysDelay: uint16; debounceDelay: uint16;# mouseKeysDelay: uint16; mouseKeysInterval: uint16;# mouseKeysTimeToMax: uint16;# mouseKeysMaxSpeed: uint16; mouseKeysCurve: int16;# accessXTimeout: uint16; accessXTimeoutMask: uint32;# accessXTimeoutValues: uint32;# accessXTimeoutOptionsMask: uint16;# accessXTimeoutOptionsValues: uint16;# perKeyRepeat: ptr uint8): xcb_void_cookie_t# proc xcb_xkb_get_map_map_vmods_rtrn_end*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): xcb_generic_iterator_t# proc xcb_xkb_get_map_map_explicit_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_set_explicit_t# proc xcb_xkb_get_map_map_explicit_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): cint# proc xcb_xkb_get_map_map_explicit_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): xcb_xkb_set_explicit_iterator_t# proc xcb_xkb_get_map_map_modmap_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_key_mod_map_t# proc xcb_xkb_get_map_map_modmap_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): cint# proc xcb_xkb_get_map_map_modmap_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): xcb_xkb_key_mod_map_iterator_t# proc xcb_xkb_get_map_map_vmodmap_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_key_v_mod_map_t# proc xcb_xkb_get_map_map_vmodmap_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): cint# proc xcb_xkb_get_map_map_vmodmap_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t;# S: ptr xcb_xkb_get_map_map_t): xcb_xkb_key_v_mod_map_iterator_t# proc xcb_xkb_get_map_map_serialize*(_buffer: ptr pointer; nTypes: uint8;# nKeySyms: uint8; nKeyActions: uint8;# totalActions: uint16;# totalKeyBehaviors: uint8;# virtualMods: uint16;# totalKeyExplicit: uint8;# totalModMapKeys: uint8;# totalVModMapKeys: uint8; present: uint16;# _aux: ptr xcb_xkb_get_map_map_t): cint# proc xcb_xkb_get_map_map_sizeof*(_buffer: pointer; nTypes: uint8;# nKeySyms: uint8; nKeyActions: uint8;# totalActions: uint16;# totalKeyBehaviors: uint8; virtualMods: uint16;# totalKeyExplicit: uint8;# totalModMapKeys: uint8;# totalVModMapKeys: uint8; present: uint16): cint# proc xcb_xkb_get_map_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### proc xcb_xkb_get_map_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; full: uint16;# partial: uint16; firstType: uint8;# nTypes: uint8; firstKeySym: xcb_keycode_t;# nKeySyms: uint8; firstKeyAction: xcb_keycode_t;# nKeyActions: uint8;# firstKeyBehavior: xcb_keycode_t;# nKeyBehaviors: uint8; virtualMods: uint16;# firstKeyExplicit: xcb_keycode_t;# nKeyExplicit: uint8;# firstModMapKey: xcb_keycode_t;# nModMapKeys: uint8;# firstVModMapKey: xcb_keycode_t;# nVModMapKeys: uint8): xcb_xkb_get_map_cookie_t# proc xcb_xkb_set_map_values_types_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_types_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_set_key_type_iterator_t# proc xcb_xkb_set_map_values_syms_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_syms_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_key_sym_map_iterator_t# proc xcb_xkb_set_map_values_actions_count*(S: ptr xcb_xkb_set_map_values_t): ptr uint8# proc xcb_xkb_set_map_values_actions_count_length*(# R: ptr xcb_xkb_set_map_request_t; S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_actions_count_end*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_map_values_actions*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_action_t# proc xcb_xkb_set_map_values_actions_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_actions_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_action_iterator_t# proc xcb_xkb_set_map_values_behaviors*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_set_behavior_t# proc xcb_xkb_set_map_values_behaviors_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_behaviors_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_set_behavior_iterator_t# proc xcb_xkb_set_map_values_vmods*(S: ptr xcb_xkb_set_map_values_t): ptr uint8# proc xcb_xkb_set_map_values_vmods_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_vmods_end*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_map_values_explicit*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_set_explicit_t# proc xcb_xkb_set_map_values_explicit_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_explicit_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_set_explicit_iterator_t# proc xcb_xkb_set_map_values_modmap*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_key_mod_map_t# proc xcb_xkb_set_map_values_modmap_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_modmap_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_key_mod_map_iterator_t# proc xcb_xkb_set_map_values_vmodmap*(S: ptr xcb_xkb_set_map_values_t): ptr xcb_xkb_key_v_mod_map_t# proc xcb_xkb_set_map_values_vmodmap_length*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_vmodmap_iterator*(R: ptr xcb_xkb_set_map_request_t;# S: ptr xcb_xkb_set_map_values_t): xcb_xkb_key_v_mod_map_iterator_t# proc xcb_xkb_set_map_values_serialize*(_buffer: ptr pointer; nTypes: uint8;# nKeySyms: uint8; nKeyActions: uint8;# totalActions: uint16;# totalKeyBehaviors: uint8;# virtualMods: uint16;# totalKeyExplicit: uint8;# totalModMapKeys: uint8;# totalVModMapKeys: uint8;# present: uint16;# _aux: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_unpack*(_buffer: pointer; nTypes: uint8;# nKeySyms: uint8; nKeyActions: uint8;# totalActions: uint16;# totalKeyBehaviors: uint8;# virtualMods: uint16;# totalKeyExplicit: uint8;# totalModMapKeys: uint8;# totalVModMapKeys: uint8; present: uint16;# _aux: ptr xcb_xkb_set_map_values_t): cint# proc xcb_xkb_set_map_values_sizeof*(_buffer: pointer; nTypes: uint8;# nKeySyms: uint8; nKeyActions: uint8;# totalActions: uint16;# totalKeyBehaviors: uint8;# virtualMods: uint16;# totalKeyExplicit: uint8;# totalModMapKeys: uint8;# totalVModMapKeys: uint8; present: uint16): cint# proc xcb_xkb_set_map_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_map_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; present: uint16;# flags: uint16; minKeyCode: xcb_keycode_t;# maxKeyCode: xcb_keycode_t; firstType: uint8;# nTypes: uint8; firstKeySym: xcb_keycode_t;# nKeySyms: uint8; totalSyms: uint16;# firstKeyAction: xcb_keycode_t; nKeyActions: uint8;# totalActions: uint16;# firstKeyBehavior: xcb_keycode_t;# nKeyBehaviors: uint8; totalKeyBehaviors: uint8;# firstKeyExplicit: xcb_keycode_t;# nKeyExplicit: uint8; totalKeyExplicit: uint8;# firstModMapKey: xcb_keycode_t; nModMapKeys: uint8;# totalModMapKeys: uint8;# firstVModMapKey: xcb_keycode_t;# nVModMapKeys: uint8; totalVModMapKeys: uint8;# virtualMods: uint16; values: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_map*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;# present: uint16; flags: uint16; minKeyCode: xcb_keycode_t;# maxKeyCode: xcb_keycode_t; firstType: uint8; nTypes: uint8;# firstKeySym: xcb_keycode_t; nKeySyms: uint8;# totalSyms: uint16; firstKeyAction: xcb_keycode_t;# nKeyActions: uint8; totalActions: uint16;# firstKeyBehavior: xcb_keycode_t; nKeyBehaviors: uint8;# totalKeyBehaviors: uint8; firstKeyExplicit: xcb_keycode_t;# nKeyExplicit: uint8; totalKeyExplicit: uint8;# firstModMapKey: xcb_keycode_t; nModMapKeys: uint8;# totalModMapKeys: uint8; firstVModMapKey: xcb_keycode_t;# nVModMapKeys: uint8; totalVModMapKeys: uint8;# virtualMods: uint16; values: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_map_aux_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# present: uint16; flags: uint16;# minKeyCode: xcb_keycode_t;# maxKeyCode: xcb_keycode_t; firstType: uint8;# nTypes: uint8; firstKeySym: xcb_keycode_t;# nKeySyms: uint8; totalSyms: uint16;# firstKeyAction: xcb_keycode_t;# nKeyActions: uint8; totalActions: uint16;# firstKeyBehavior: xcb_keycode_t;# nKeyBehaviors: uint8;# totalKeyBehaviors: uint8;# firstKeyExplicit: xcb_keycode_t;# nKeyExplicit: uint8; totalKeyExplicit: uint8;# firstModMapKey: xcb_keycode_t;# nModMapKeys: uint8; totalModMapKeys: uint8;# firstVModMapKey: xcb_keycode_t;# nVModMapKeys: uint8; totalVModMapKeys: uint8;# virtualMods: uint16;# values: ptr xcb_xkb_set_map_values_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_map_aux*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; present: uint16;# flags: uint16; minKeyCode: xcb_keycode_t;# maxKeyCode: xcb_keycode_t; firstType: uint8;# nTypes: uint8; firstKeySym: xcb_keycode_t;# nKeySyms: uint8; totalSyms: uint16;# firstKeyAction: xcb_keycode_t; nKeyActions: uint8;# totalActions: uint16; firstKeyBehavior: xcb_keycode_t;# nKeyBehaviors: uint8; totalKeyBehaviors: uint8;# firstKeyExplicit: xcb_keycode_t; nKeyExplicit: uint8;# totalKeyExplicit: uint8; firstModMapKey: xcb_keycode_t;# nModMapKeys: uint8; totalModMapKeys: uint8;# firstVModMapKey: xcb_keycode_t; nVModMapKeys: uint8;# totalVModMapKeys: uint8; virtualMods: uint16;# values: ptr xcb_xkb_set_map_values_t): xcb_void_cookie_t# proc xcb_xkb_set_map_values*(R: ptr xcb_xkb_set_map_request_t): pointer# proc xcb_xkb_get_compat_map_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_compat_map*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; groups: uint8;# getAllSI: uint8; firstSI: uint16; nSI: uint16): xcb_xkb_get_compat_map_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_compat_map_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# groups: uint8; getAllSI: uint8;# firstSI: uint16; nSI: uint16): xcb_xkb_get_compat_map_cookie_t# proc xcb_xkb_get_compat_map_si_rtrn*(R: ptr xcb_xkb_get_compat_map_reply_t): ptr xcb_xkb_sym_interpret_t# proc xcb_xkb_get_compat_map_si_rtrn_length*(R: ptr xcb_xkb_get_compat_map_reply_t): cint# proc xcb_xkb_get_compat_map_si_rtrn_iterator*(# R: ptr xcb_xkb_get_compat_map_reply_t): xcb_xkb_sym_interpret_iterator_t# proc xcb_xkb_get_compat_map_group_rtrn*(R: ptr xcb_xkb_get_compat_map_reply_t): ptr xcb_xkb_mod_def_t# proc xcb_xkb_get_compat_map_group_rtrn_length*(# R: ptr xcb_xkb_get_compat_map_reply_t): cint# proc xcb_xkb_get_compat_map_group_rtrn_iterator*(# R: ptr xcb_xkb_get_compat_map_reply_t): xcb_xkb_mod_def_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_compat_map_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_compat_map_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_compat_map_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_compat_map_reply_t# proc xcb_xkb_set_compat_map_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_compat_map_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# recomputeActions: uint8;# truncateSI: uint8; groups: uint8;# firstSI: uint16; nSI: uint16;# si: ptr xcb_xkb_sym_interpret_t;# groupMaps: ptr xcb_xkb_mod_def_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_compat_map*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# recomputeActions: uint8; truncateSI: uint8;# groups: uint8; firstSI: uint16; nSI: uint16;# si: ptr xcb_xkb_sym_interpret_t;# groupMaps: ptr xcb_xkb_mod_def_t): xcb_void_cookie_t# proc xcb_xkb_set_compat_map_si*(R: ptr xcb_xkb_set_compat_map_request_t): ptr xcb_xkb_sym_interpret_t# proc xcb_xkb_set_compat_map_si_length*(R: ptr xcb_xkb_set_compat_map_request_t): cint# proc xcb_xkb_set_compat_map_si_iterator*(R: ptr xcb_xkb_set_compat_map_request_t): xcb_xkb_sym_interpret_iterator_t# proc xcb_xkb_set_compat_map_group_maps*(R: ptr xcb_xkb_set_compat_map_request_t): ptr xcb_xkb_mod_def_t# proc xcb_xkb_set_compat_map_group_maps_length*(# R: ptr xcb_xkb_set_compat_map_request_t): cint# proc xcb_xkb_set_compat_map_group_maps_iterator*(# R: ptr xcb_xkb_set_compat_map_request_t): xcb_xkb_mod_def_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_indicator_state*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_indicator_state_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_indicator_state_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t): xcb_xkb_get_indicator_state_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_indicator_state_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_indicator_state_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_indicator_state_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_indicator_state_reply_t# proc xcb_xkb_get_indicator_map_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_indicator_map*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; which: uint32): xcb_xkb_get_indicator_map_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_indicator_map_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; which: uint32): xcb_xkb_get_indicator_map_cookie_t# proc xcb_xkb_get_indicator_map_maps*(R: ptr xcb_xkb_get_indicator_map_reply_t): ptr xcb_xkb_indicator_map_t# proc xcb_xkb_get_indicator_map_maps_length*(# R: ptr xcb_xkb_get_indicator_map_reply_t): cint# proc xcb_xkb_get_indicator_map_maps_iterator*(# R: ptr xcb_xkb_get_indicator_map_reply_t): xcb_xkb_indicator_map_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_indicator_map_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_indicator_map_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_indicator_map_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_indicator_map_reply_t# proc xcb_xkb_set_indicator_map_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_indicator_map_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# which: uint32;# maps: ptr xcb_xkb_indicator_map_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_indicator_map*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; which: uint32;# maps: ptr xcb_xkb_indicator_map_t): xcb_void_cookie_t# proc xcb_xkb_set_indicator_map_maps*(R: ptr xcb_xkb_set_indicator_map_request_t): ptr xcb_xkb_indicator_map_t# proc xcb_xkb_set_indicator_map_maps_length*(# R: ptr xcb_xkb_set_indicator_map_request_t): cint# proc xcb_xkb_set_indicator_map_maps_iterator*(# R: ptr xcb_xkb_set_indicator_map_request_t): xcb_xkb_indicator_map_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_named_indicator*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# ledClass: xcb_xkb_led_class_spec_t;# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t): xcb_xkb_get_named_indicator_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_named_indicator_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; ledClass: xcb_xkb_led_class_spec_t;# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t): xcb_xkb_get_named_indicator_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_named_indicator_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_named_indicator_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_named_indicator_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_named_indicator_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_named_indicator_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; ledClass: xcb_xkb_led_class_spec_t;# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t; setState: uint8; on: uint8;# setMap: uint8; createMap: uint8; map_flags: uint8; map_whichGroups: uint8;# map_groups: uint8; map_whichMods: uint8; map_realMods: uint8;# map_vmods: uint16; map_ctrls: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_named_indicator*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# ledClass: xcb_xkb_led_class_spec_t;# ledID: xcb_xkb_id_spec_t; indicator: xcb_atom_t;# setState: uint8; on: uint8; setMap: uint8;# createMap: uint8; map_flags: uint8;# map_whichGroups: uint8; map_groups: uint8;# map_whichMods: uint8; map_realMods: uint8;# map_vmods: uint16; map_ctrls: uint32): xcb_void_cookie_t# proc xcb_xkb_get_names_value_list_type_names*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t# proc xcb_xkb_get_names_value_list_type_names_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_type_names_end*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_n_levels_per_type*(# S: ptr xcb_xkb_get_names_value_list_t): ptr uint8# proc xcb_xkb_get_names_value_list_n_levels_per_type_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_n_levels_per_type_end*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_kt_level_names*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t# proc xcb_xkb_get_names_value_list_kt_level_names_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_kt_level_names_end*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_indicator_names*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t# proc xcb_xkb_get_names_value_list_indicator_names_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_indicator_names_end*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_virtual_mod_names*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t# proc xcb_xkb_get_names_value_list_virtual_mod_names_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_virtual_mod_names_end*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_groups*(S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t# proc xcb_xkb_get_names_value_list_groups_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_groups_end*(R: ptr xcb_xkb_get_names_reply_t;# S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_key_names*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_xkb_key_name_t# proc xcb_xkb_get_names_value_list_key_names_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_key_names_iterator*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_xkb_key_name_iterator_t# proc xcb_xkb_get_names_value_list_key_aliases*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_xkb_key_alias_t# proc xcb_xkb_get_names_value_list_key_aliases_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_key_aliases_iterator*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_xkb_key_alias_iterator_t# proc xcb_xkb_get_names_value_list_radio_group_names*(# S: ptr xcb_xkb_get_names_value_list_t): ptr xcb_atom_t# proc xcb_xkb_get_names_value_list_radio_group_names_length*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_radio_group_names_end*(# R: ptr xcb_xkb_get_names_reply_t; S: ptr xcb_xkb_get_names_value_list_t): xcb_generic_iterator_t# proc xcb_xkb_get_names_value_list_serialize*(_buffer: ptr pointer; nTypes: uint8;# indicators: uint32; virtualMods: uint16; groupNames: uint8; nKeys: uint8;# nKeyAliases: uint8; nRadioGroups: uint8; which: uint32;# _aux: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_unpack*(_buffer: pointer; nTypes: uint8;# indicators: uint32; virtualMods: uint16; groupNames: uint8; nKeys: uint8;# nKeyAliases: uint8; nRadioGroups: uint8; which: uint32;# _aux: ptr xcb_xkb_get_names_value_list_t): cint# proc xcb_xkb_get_names_value_list_sizeof*(_buffer: pointer; nTypes: uint8;# indicators: uint32; virtualMods: uint16; groupNames: uint8; nKeys: uint8;# nKeyAliases: uint8; nRadioGroups: uint8; which: uint32): cint# proc xcb_xkb_get_names_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_names*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;# which: uint32): xcb_xkb_get_names_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_names_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# which: uint32): xcb_xkb_get_names_cookie_t# proc xcb_xkb_get_names_value_list*(R: ptr xcb_xkb_get_names_reply_t): pointer# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_names_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_names_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_names_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_names_reply_t# proc xcb_xkb_set_names_values_type_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t# proc xcb_xkb_set_names_values_type_names_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_type_names_end*(R: ptr xcb_xkb_set_names_request_t;# S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_n_levels_per_type*(# S: ptr xcb_xkb_set_names_values_t): ptr uint8# proc xcb_xkb_set_names_values_n_levels_per_type_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_n_levels_per_type_end*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_kt_level_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t# proc xcb_xkb_set_names_values_kt_level_names_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_kt_level_names_end*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_indicator_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t# proc xcb_xkb_set_names_values_indicator_names_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_indicator_names_end*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_virtual_mod_names*(# S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t# proc xcb_xkb_set_names_values_virtual_mod_names_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_virtual_mod_names_end*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_groups*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t# proc xcb_xkb_set_names_values_groups_length*(R: ptr xcb_xkb_set_names_request_t;# S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_groups_end*(R: ptr xcb_xkb_set_names_request_t;# S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_key_names*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_xkb_key_name_t# proc xcb_xkb_set_names_values_key_names_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_key_names_iterator*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_xkb_key_name_iterator_t# proc xcb_xkb_set_names_values_key_aliases*(S: ptr xcb_xkb_set_names_values_t): ptr xcb_xkb_key_alias_t# proc xcb_xkb_set_names_values_key_aliases_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_key_aliases_iterator*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_xkb_key_alias_iterator_t# proc xcb_xkb_set_names_values_radio_group_names*(# S: ptr xcb_xkb_set_names_values_t): ptr xcb_atom_t# proc xcb_xkb_set_names_values_radio_group_names_length*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_radio_group_names_end*(# R: ptr xcb_xkb_set_names_request_t; S: ptr xcb_xkb_set_names_values_t): xcb_generic_iterator_t# proc xcb_xkb_set_names_values_serialize*(_buffer: ptr pointer; nTypes: uint8;# indicators: uint32;# virtualMods: uint16;# groupNames: uint8; nKeys: uint8;# nKeyAliases: uint8;# nRadioGroups: uint8; which: uint32;# _aux: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_unpack*(_buffer: pointer; nTypes: uint8;# indicators: uint32; virtualMods: uint16;# groupNames: uint8; nKeys: uint8;# nKeyAliases: uint8; nRadioGroups: uint8;# which: uint32;# _aux: ptr xcb_xkb_set_names_values_t): cint# proc xcb_xkb_set_names_values_sizeof*(_buffer: pointer; nTypes: uint8;# indicators: uint32; virtualMods: uint16;# groupNames: uint8; nKeys: uint8;# nKeyAliases: uint8; nRadioGroups: uint8;# which: uint32): cint# proc xcb_xkb_set_names_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_names_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# virtualMods: uint16; which: uint32;# firstType: uint8; nTypes: uint8;# firstKTLevelt: uint8; nKTLevels: uint8;# indicators: uint32; groupNames: uint8;# nRadioGroups: uint8; firstKey: xcb_keycode_t;# nKeys: uint8; nKeyAliases: uint8;# totalKTLevelNames: uint16; values: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_names*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;# virtualMods: uint16; which: uint32; firstType: uint8;# nTypes: uint8; firstKTLevelt: uint8; nKTLevels: uint8;# indicators: uint32; groupNames: uint8;# nRadioGroups: uint8; firstKey: xcb_keycode_t;# nKeys: uint8; nKeyAliases: uint8;# totalKTLevelNames: uint16; values: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_names_aux_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# virtualMods: uint16; which: uint32;# firstType: uint8; nTypes: uint8;# firstKTLevelt: uint8; nKTLevels: uint8;# indicators: uint32; groupNames: uint8;# nRadioGroups: uint8; firstKey: xcb_keycode_t;# nKeys: uint8; nKeyAliases: uint8;# totalKTLevelNames: uint16;# values: ptr xcb_xkb_set_names_values_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_names_aux*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# virtualMods: uint16; which: uint32;# firstType: uint8; nTypes: uint8;# firstKTLevelt: uint8; nKTLevels: uint8;# indicators: uint32; groupNames: uint8;# nRadioGroups: uint8; firstKey: xcb_keycode_t;# nKeys: uint8; nKeyAliases: uint8;# totalKTLevelNames: uint16;# values: ptr xcb_xkb_set_names_values_t): xcb_void_cookie_t# proc xcb_xkb_set_names_values*(R: ptr xcb_xkb_set_names_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_per_client_flags*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; change: uint32;# value: uint32; ctrlsToChange: uint32;# autoCtrls: uint32; autoCtrlsValues: uint32): xcb_xkb_per_client_flags_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_per_client_flags_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# change: uint32; value: uint32;# ctrlsToChange: uint32;# autoCtrls: uint32;# autoCtrlsValues: uint32): xcb_xkb_per_client_flags_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_per_client_flags_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_per_client_flags_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_per_client_flags_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_per_client_flags_reply_t# proc xcb_xkb_list_components_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_list_components*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; maxNames: uint16): xcb_xkb_list_components_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_list_components_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# maxNames: uint16): xcb_xkb_list_components_cookie_t# proc xcb_xkb_list_components_keymaps_length*(# R: ptr xcb_xkb_list_components_reply_t): cint# proc xcb_xkb_list_components_keymaps_iterator*(# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t# proc xcb_xkb_list_components_keycodes_length*(# R: ptr xcb_xkb_list_components_reply_t): cint# proc xcb_xkb_list_components_keycodes_iterator*(# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t# proc xcb_xkb_list_components_types_length*(R: ptr xcb_xkb_list_components_reply_t): cint# proc xcb_xkb_list_components_types_iterator*(# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t# proc xcb_xkb_list_components_compat_maps_length*(# R: ptr xcb_xkb_list_components_reply_t): cint# proc xcb_xkb_list_components_compat_maps_iterator*(# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t# proc xcb_xkb_list_components_symbols_length*(# R: ptr xcb_xkb_list_components_reply_t): cint# proc xcb_xkb_list_components_symbols_iterator*(# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t# proc xcb_xkb_list_components_geometries_length*(# R: ptr xcb_xkb_list_components_reply_t): cint# proc xcb_xkb_list_components_geometries_iterator*(# R: ptr xcb_xkb_list_components_reply_t): xcb_xkb_listing_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_list_components_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_list_components_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_list_components_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_list_components_reply_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_type_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_sym_map_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr uint8# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_action_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_action_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_set_behavior_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_set_behavior_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr uint8# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_set_explicit_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_set_explicit_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_mod_map_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_mod_map_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_v_mod_map_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_v_mod_map_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_types_map_serialize*(_buffer: ptr pointer;# nTypes: uint8; nKeySyms: uint8; nKeyActions: uint8; totalActions: uint16;# totalKeyBehaviors: uint8; virtualMods: uint16; totalKeyExplicit: uint8;# totalModMapKeys: uint8; totalVModMapKeys: uint8; present: uint16;# _aux: ptr xcb_xkb_get_kbd_by_name_replies_types_map_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_unpack*(_buffer: pointer;# nTypes: uint8; nKeySyms: uint8; nKeyActions: uint8; totalActions: uint16;# totalKeyBehaviors: uint8; virtualMods: uint16; totalKeyExplicit: uint8;# totalModMapKeys: uint8; totalVModMapKeys: uint8; present: uint16;# _aux: ptr xcb_xkb_get_kbd_by_name_replies_types_map_t): cint# proc xcb_xkb_get_kbd_by_name_replies_types_map_sizeof*(_buffer: pointer;# nTypes: uint8; nKeySyms: uint8; nKeyActions: uint8; totalActions: uint16;# totalKeyBehaviors: uint8; virtualMods: uint16; totalKeyExplicit: uint8;# totalModMapKeys: uint8; totalVModMapKeys: uint8; present: uint16): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr uint8# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_name_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_name_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_key_alias_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_key_alias_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_atom_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_generic_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize*(# _buffer: ptr pointer; nTypes: uint8; indicators: uint32; virtualMods: uint16;# groupNames: uint8; nKeys: uint8; nKeyAliases: uint8; nRadioGroups: uint8;# which: uint32;# _aux: ptr xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack*(# _buffer: pointer; nTypes: uint8; indicators: uint32; virtualMods: uint16;# groupNames: uint8; nKeys: uint8; nKeyAliases: uint8; nRadioGroups: uint8;# which: uint32;# _aux: ptr xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t): cint# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof*(# _buffer: pointer; nTypes: uint8; indicators: uint32; virtualMods: uint16;# groupNames: uint8; nKeys: uint8; nKeyAliases: uint8; nRadioGroups: uint8;# which: uint32): cint# proc xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_sym_interpret_t# proc xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_sym_interpret_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_mod_def_t# proc xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_mod_def_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps*(# S: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_indicator_map_t# proc xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator*(# R: ptr xcb_xkb_get_kbd_by_name_reply_t;# S: ptr xcb_xkb_get_kbd_by_name_replies_t): xcb_xkb_indicator_map_iterator_t# proc xcb_xkb_get_kbd_by_name_replies_key_names_value_list*(# R: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t# proc xcb_xkb_get_kbd_by_name_replies_geometry_label_font*(# R: ptr xcb_xkb_get_kbd_by_name_replies_t): ptr xcb_xkb_counted_string_16_t# proc xcb_xkb_get_kbd_by_name_replies_serialize*(_buffer: ptr pointer;# reported: uint16; _aux: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_unpack*(_buffer: pointer; reported: uint16;# _aux: ptr xcb_xkb_get_kbd_by_name_replies_t): cint# proc xcb_xkb_get_kbd_by_name_replies_sizeof*(_buffer: pointer; reported: uint16): cint# proc xcb_xkb_get_kbd_by_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_kbd_by_name*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; need: uint16;# want: uint16; load: uint8): xcb_xkb_get_kbd_by_name_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_kbd_by_name_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# need: uint16; want: uint16; load: uint8): xcb_xkb_get_kbd_by_name_cookie_t# proc xcb_xkb_get_kbd_by_name_replies*(R: ptr xcb_xkb_get_kbd_by_name_reply_t): pointer# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_kbd_by_name_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_kbd_by_name_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_kbd_by_name_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_kbd_by_name_reply_t# proc xcb_xkb_get_device_info_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_get_device_info*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; wanted: uint16;# allButtons: uint8; firstButton: uint8;# nButtons: uint8;# ledClass: xcb_xkb_led_class_spec_t;# ledID: xcb_xkb_id_spec_t): xcb_xkb_get_device_info_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_get_device_info_unchecked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# wanted: uint16; allButtons: uint8;# firstButton: uint8; nButtons: uint8;# ledClass: xcb_xkb_led_class_spec_t;# ledID: xcb_xkb_id_spec_t): xcb_xkb_get_device_info_cookie_t# proc xcb_xkb_get_device_info_name*(R: ptr xcb_xkb_get_device_info_reply_t): ptr xcb_xkb_string8_t# proc xcb_xkb_get_device_info_name_length*(R: ptr xcb_xkb_get_device_info_reply_t): cint# proc xcb_xkb_get_device_info_name_end*(R: ptr xcb_xkb_get_device_info_reply_t): xcb_generic_iterator_t# proc xcb_xkb_get_device_info_btn_actions*(R: ptr xcb_xkb_get_device_info_reply_t): ptr xcb_xkb_action_t# proc xcb_xkb_get_device_info_btn_actions_length*(# R: ptr xcb_xkb_get_device_info_reply_t): cint# proc xcb_xkb_get_device_info_btn_actions_iterator*(# R: ptr xcb_xkb_get_device_info_reply_t): xcb_xkb_action_iterator_t# proc xcb_xkb_get_device_info_leds_length*(R: ptr xcb_xkb_get_device_info_reply_t): cint# proc xcb_xkb_get_device_info_leds_iterator*(# R: ptr xcb_xkb_get_device_info_reply_t): xcb_xkb_device_led_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_get_device_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_get_device_info_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_device_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_device_info_reply_t# proc xcb_xkb_set_device_info_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xkb_set_device_info_checked*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t;# firstBtn: uint8; nBtns: uint8;# change: uint16; nDeviceLedFBs: uint16;# btnActions: ptr xcb_xkb_action_t;# leds: ptr xcb_xkb_device_led_info_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_device_info*(c: ptr xcb_connection_t;# deviceSpec: xcb_xkb_device_spec_t; firstBtn: uint8;# nBtns: uint8; change: uint16;# nDeviceLedFBs: uint16;# btnActions: ptr xcb_xkb_action_t;# leds: ptr xcb_xkb_device_led_info_t): xcb_void_cookie_t# proc xcb_xkb_set_device_info_btn_actions*(# R: ptr xcb_xkb_set_device_info_request_t): ptr xcb_xkb_action_t# proc xcb_xkb_set_device_info_btn_actions_length*(# R: ptr xcb_xkb_set_device_info_request_t): cint# proc xcb_xkb_set_device_info_btn_actions_iterator*(# R: ptr xcb_xkb_set_device_info_request_t): xcb_xkb_action_iterator_t# proc xcb_xkb_set_device_info_leds_length*(# R: ptr xcb_xkb_set_device_info_request_t): cint# proc xcb_xkb_set_device_info_leds_iterator*(# R: ptr xcb_xkb_set_device_info_request_t): xcb_xkb_device_led_info_iterator_t# proc xcb_xkb_set_debugging_flags_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xkb_set_debugging_flags*(c: ptr xcb_connection_t; msgLength: uint16;# affectFlags: uint32; flags: uint32;# affectCtrls: uint32; ctrls: uint32;# message: ptr xcb_xkb_string8_t): xcb_xkb_set_debugging_flags_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xkb_set_debugging_flags_unchecked*(c: ptr xcb_connection_t;# msgLength: uint16; affectFlags: uint32; flags: uint32;# affectCtrls: uint32; ctrls: uint32; message: ptr xcb_xkb_string8_t): xcb_xkb_set_debugging_flags_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xkb_set_debugging_flags_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xkb_set_debugging_flags_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_set_debugging_flags_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_set_debugging_flags_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xprint.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_XPrint_API XCB XPrint API# ## @brief XPrint XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_XPRINT_MAJOR_VERSION* = 1# XCB_XPRINT_MINOR_VERSION* = 0# var xcb_x_print_id*: xcb_extension_t# type# xcb_x_print_string8_t* = char# ## *# ## @brief xcb_x_print_string8_iterator_t# ### type# xcb_x_print_string8_iterator_t* {.bycopy.} = object# data*: ptr xcb_x_print_string8_t# rem*: cint# index*: cint# ## *# ## @brief xcb_x_print_printer_t# ### type# xcb_x_print_printer_t* {.bycopy.} = object# nameLen*: uint32# descLen*: uint32# ## *# ## @brief xcb_x_print_printer_iterator_t# ### type# xcb_x_print_printer_iterator_t* {.bycopy.} = object# data*: ptr xcb_x_print_printer_t# rem*: cint# index*: cint# xcb_x_print_pcontext_t* = uint32# ## *# ## @brief xcb_x_print_pcontext_iterator_t# ### type# xcb_x_print_pcontext_iterator_t* {.bycopy.} = object# data*: ptr xcb_x_print_pcontext_t# rem*: cint# index*: cint# xcb_x_print_get_doc_t* = enum# XCB_X_PRINT_GET_DOC_FINISHED = 0, XCB_X_PRINT_GET_DOC_SECOND_CONSUMER = 1# xcb_x_print_ev_mask_t* = enum# XCB_X_PRINT_EV_MASK_NO_EVENT_MASK = 0, XCB_X_PRINT_EV_MASK_PRINT_MASK = 1,# XCB_X_PRINT_EV_MASK_ATTRIBUTE_MASK = 2# xcb_x_print_detail_t* = enum# XCB_X_PRINT_DETAIL_START_JOB_NOTIFY = 1, XCB_X_PRINT_DETAIL_END_JOB_NOTIFY = 2,# XCB_X_PRINT_DETAIL_START_DOC_NOTIFY = 3, XCB_X_PRINT_DETAIL_END_DOC_NOTIFY = 4,# XCB_X_PRINT_DETAIL_START_PAGE_NOTIFY = 5,# XCB_X_PRINT_DETAIL_END_PAGE_NOTIFY = 6# xcb_x_print_attr_t* = enum# XCB_X_PRINT_ATTR_JOB_ATTR = 1, XCB_X_PRINT_ATTR_DOC_ATTR = 2,# XCB_X_PRINT_ATTR_PAGE_ATTR = 3, XCB_X_PRINT_ATTR_PRINTER_ATTR = 4,# XCB_X_PRINT_ATTR_SERVER_ATTR = 5, XCB_X_PRINT_ATTR_MEDIUM_ATTR = 6,# XCB_X_PRINT_ATTR_SPOOLER_ATTR = 7# ## *# ## @brief xcb_x_print_print_query_version_cookie_t# ### type# xcb_x_print_print_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_query_version.# const# XCB_X_PRINT_PRINT_QUERY_VERSION* = 0# ## *# ## @brief xcb_x_print_print_query_version_request_t# ### type# xcb_x_print_print_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_x_print_print_query_version_reply_t# ### type# xcb_x_print_print_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major_version*: uint16# minor_version*: uint16# ## *# ## @brief xcb_x_print_print_get_printer_list_cookie_t# ### type# xcb_x_print_print_get_printer_list_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_printer_list.# const# XCB_X_PRINT_PRINT_GET_PRINTER_LIST* = 1# ## *# ## @brief xcb_x_print_print_get_printer_list_request_t# ### type# xcb_x_print_print_get_printer_list_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# printerNameLen*: uint32# localeLen*: uint32# ## *# ## @brief xcb_x_print_print_get_printer_list_reply_t# ### type# xcb_x_print_print_get_printer_list_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# listCount*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_x_print_print_rehash_printer_list.# const# XCB_X_PRINT_PRINT_REHASH_PRINTER_LIST* = 20# ## *# ## @brief xcb_x_print_print_rehash_printer_list_request_t# ### type# xcb_x_print_print_rehash_printer_list_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## * Opcode for xcb_x_print_create_context.# const# XCB_X_PRINT_CREATE_CONTEXT* = 2# ## *# ## @brief xcb_x_print_create_context_request_t# ### type# xcb_x_print_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_id*: uint32# printerNameLen*: uint32# localeLen*: uint32# ## * Opcode for xcb_x_print_print_set_context.# const# XCB_X_PRINT_PRINT_SET_CONTEXT* = 3# ## *# ## @brief xcb_x_print_print_set_context_request_t# ### type# xcb_x_print_print_set_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: uint32# ## *# ## @brief xcb_x_print_print_get_context_cookie_t# ### type# xcb_x_print_print_get_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_context.# const# XCB_X_PRINT_PRINT_GET_CONTEXT* = 4# ## *# ## @brief xcb_x_print_print_get_context_request_t# ### type# xcb_x_print_print_get_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_x_print_print_get_context_reply_t# ### type# xcb_x_print_print_get_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context*: uint32# ## * Opcode for xcb_x_print_print_destroy_context.# const# XCB_X_PRINT_PRINT_DESTROY_CONTEXT* = 5# ## *# ## @brief xcb_x_print_print_destroy_context_request_t# ### type# xcb_x_print_print_destroy_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: uint32# ## *# ## @brief xcb_x_print_print_get_screen_of_context_cookie_t# ### type# xcb_x_print_print_get_screen_of_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_screen_of_context.# const# XCB_X_PRINT_PRINT_GET_SCREEN_OF_CONTEXT* = 6# ## *# ## @brief xcb_x_print_print_get_screen_of_context_request_t# ### type# xcb_x_print_print_get_screen_of_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_x_print_print_get_screen_of_context_reply_t# ### type# xcb_x_print_print_get_screen_of_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# root*: xcb_window_t# ## * Opcode for xcb_x_print_print_start_job.# const# XCB_X_PRINT_PRINT_START_JOB* = 7# ## *# ## @brief xcb_x_print_print_start_job_request_t# ### type# xcb_x_print_print_start_job_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# output_mode*: uint8# ## * Opcode for xcb_x_print_print_end_job.# const# XCB_X_PRINT_PRINT_END_JOB* = 8# ## *# ## @brief xcb_x_print_print_end_job_request_t# ### type# xcb_x_print_print_end_job_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cancel*: uint8# ## * Opcode for xcb_x_print_print_start_doc.# const# XCB_X_PRINT_PRINT_START_DOC* = 9# ## *# ## @brief xcb_x_print_print_start_doc_request_t# ### type# xcb_x_print_print_start_doc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# driver_mode*: uint8# ## * Opcode for xcb_x_print_print_end_doc.# const# XCB_X_PRINT_PRINT_END_DOC* = 10# ## *# ## @brief xcb_x_print_print_end_doc_request_t# ### type# xcb_x_print_print_end_doc_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cancel*: uint8# ## * Opcode for xcb_x_print_print_put_document_data.# const# XCB_X_PRINT_PRINT_PUT_DOCUMENT_DATA* = 11# ## *# ## @brief xcb_x_print_print_put_document_data_request_t# ### type# xcb_x_print_print_put_document_data_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# len_data*: uint32# len_fmt*: uint16# len_options*: uint16# ## *# ## @brief xcb_x_print_print_get_document_data_cookie_t# ### type# xcb_x_print_print_get_document_data_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_document_data.# const# XCB_X_PRINT_PRINT_GET_DOCUMENT_DATA* = 12# ## *# ## @brief xcb_x_print_print_get_document_data_request_t# ### type# xcb_x_print_print_get_document_data_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# max_bytes*: uint32# ## *# ## @brief xcb_x_print_print_get_document_data_reply_t# ### type# xcb_x_print_print_get_document_data_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# status_code*: uint32# finished_flag*: uint32# dataLen*: uint32# pad1*: array[12, uint8]# ## * Opcode for xcb_x_print_print_start_page.# const# XCB_X_PRINT_PRINT_START_PAGE* = 13# ## *# ## @brief xcb_x_print_print_start_page_request_t# ### type# xcb_x_print_print_start_page_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_x_print_print_end_page.# const# XCB_X_PRINT_PRINT_END_PAGE* = 14# ## *# ## @brief xcb_x_print_print_end_page_request_t# ### type# xcb_x_print_print_end_page_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# cancel*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_x_print_print_select_input.# const# XCB_X_PRINT_PRINT_SELECT_INPUT* = 15# ## *# ## @brief xcb_x_print_print_select_input_request_t# ### type# xcb_x_print_print_select_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# event_mask*: uint32# ## *# ## @brief xcb_x_print_print_input_selected_cookie_t# ### type# xcb_x_print_print_input_selected_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_input_selected.# const# XCB_X_PRINT_PRINT_INPUT_SELECTED* = 16# ## *# ## @brief xcb_x_print_print_input_selected_request_t# ### type# xcb_x_print_print_input_selected_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# ## *# ## @brief xcb_x_print_print_input_selected_reply_t# ### type# xcb_x_print_print_input_selected_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# event_mask*: uint32# all_events_mask*: uint32# ## *# ## @brief xcb_x_print_print_get_attributes_cookie_t# ### type# xcb_x_print_print_get_attributes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_attributes.# const# XCB_X_PRINT_PRINT_GET_ATTRIBUTES* = 17# ## *# ## @brief xcb_x_print_print_get_attributes_request_t# ### type# xcb_x_print_print_get_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# pool*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_x_print_print_get_attributes_reply_t# ### type# xcb_x_print_print_get_attributes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# stringLen*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_x_print_print_get_one_attributes_cookie_t# ### type# xcb_x_print_print_get_one_attributes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_one_attributes.# const# XCB_X_PRINT_PRINT_GET_ONE_ATTRIBUTES* = 19# ## *# ## @brief xcb_x_print_print_get_one_attributes_request_t# ### type# xcb_x_print_print_get_one_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# nameLen*: uint32# pool*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_x_print_print_get_one_attributes_reply_t# ### type# xcb_x_print_print_get_one_attributes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# valueLen*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_x_print_print_set_attributes.# const# XCB_X_PRINT_PRINT_SET_ATTRIBUTES* = 18# ## *# ## @brief xcb_x_print_print_set_attributes_request_t# ### type# xcb_x_print_print_set_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# stringLen*: uint32# pool*: uint8# rule*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_x_print_print_get_page_dimensions_cookie_t# ### type# xcb_x_print_print_get_page_dimensions_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_page_dimensions.# const# XCB_X_PRINT_PRINT_GET_PAGE_DIMENSIONS* = 21# ## *# ## @brief xcb_x_print_print_get_page_dimensions_request_t# ### type# xcb_x_print_print_get_page_dimensions_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# ## *# ## @brief xcb_x_print_print_get_page_dimensions_reply_t# ### type# xcb_x_print_print_get_page_dimensions_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width*: uint16# height*: uint16# offset_x*: uint16# offset_y*: uint16# reproducible_width*: uint16# reproducible_height*: uint16# ## *# ## @brief xcb_x_print_print_query_screens_cookie_t# ### type# xcb_x_print_print_query_screens_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_query_screens.# const# XCB_X_PRINT_PRINT_QUERY_SCREENS* = 22# ## *# ## @brief xcb_x_print_print_query_screens_request_t# ### type# xcb_x_print_print_query_screens_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_x_print_print_query_screens_reply_t# ### type# xcb_x_print_print_query_screens_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# listCount*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_x_print_print_set_image_resolution_cookie_t# ### type# xcb_x_print_print_set_image_resolution_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_set_image_resolution.# const# XCB_X_PRINT_PRINT_SET_IMAGE_RESOLUTION* = 23# ## *# ## @brief xcb_x_print_print_set_image_resolution_request_t# ### type# xcb_x_print_print_set_image_resolution_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# image_resolution*: uint16# ## *# ## @brief xcb_x_print_print_set_image_resolution_reply_t# ### type# xcb_x_print_print_set_image_resolution_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# previous_resolutions*: uint16# ## *# ## @brief xcb_x_print_print_get_image_resolution_cookie_t# ### type# xcb_x_print_print_get_image_resolution_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_x_print_print_get_image_resolution.# const# XCB_X_PRINT_PRINT_GET_IMAGE_RESOLUTION* = 24# ## *# ## @brief xcb_x_print_print_get_image_resolution_request_t# ### type# xcb_x_print_print_get_image_resolution_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context*: xcb_x_print_pcontext_t# ## *# ## @brief xcb_x_print_print_get_image_resolution_reply_t# ### type# xcb_x_print_print_get_image_resolution_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# image_resolution*: uint16# ## * Opcode for xcb_x_print_notify.# const# XCB_X_PRINT_NOTIFY* = 0# ## *# ## @brief xcb_x_print_notify_event_t# ### type# xcb_x_print_notify_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# context*: xcb_x_print_pcontext_t# cancel*: uint8# ## * Opcode for xcb_x_print_attribut_notify.# const# XCB_X_PRINT_ATTRIBUT_NOTIFY* = 1# ## *# ## @brief xcb_x_print_attribut_notify_event_t# ### type# xcb_x_print_attribut_notify_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# context*: xcb_x_print_pcontext_t# ## * Opcode for xcb_x_print_bad_context.# const# XCB_X_PRINT_BAD_CONTEXT* = 0# ## *# ## @brief xcb_x_print_bad_context_error_t# ### type# xcb_x_print_bad_context_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_x_print_bad_sequence.# const# XCB_X_PRINT_BAD_SEQUENCE* = 1# ## *# ## @brief xcb_x_print_bad_sequence_error_t# ### type# xcb_x_print_bad_sequence_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_x_print_string8_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_x_print_string8_t)# ### proc xcb_x_print_string8_next*(i: ptr xcb_x_print_string8_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_x_print_string8_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_x_print_string8_end*(i: xcb_x_print_string8_iterator_t): xcb_generic_iterator_t# proc xcb_x_print_printer_serialize*(_buffer: ptr pointer;# _aux: ptr xcb_x_print_printer_t;# name: ptr xcb_x_print_string8_t;# description: ptr xcb_x_print_string8_t): cint# proc xcb_x_print_printer_unserialize*(_buffer: pointer;# _aux: ptr ptr xcb_x_print_printer_t): cint# proc xcb_x_print_printer_sizeof*(_buffer: pointer): cint# proc xcb_x_print_printer_name*(R: ptr xcb_x_print_printer_t): ptr xcb_x_print_string8_t# proc xcb_x_print_printer_name_length*(R: ptr xcb_x_print_printer_t): cint# proc xcb_x_print_printer_name_end*(R: ptr xcb_x_print_printer_t): xcb_generic_iterator_t# proc xcb_x_print_printer_description*(R: ptr xcb_x_print_printer_t): ptr xcb_x_print_string8_t# proc xcb_x_print_printer_description_length*(R: ptr xcb_x_print_printer_t): cint# proc xcb_x_print_printer_description_end*(R: ptr xcb_x_print_printer_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_x_print_printer_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_x_print_printer_t)# ### proc xcb_x_print_printer_next*(i: ptr xcb_x_print_printer_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_x_print_printer_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_x_print_printer_end*(i: xcb_x_print_printer_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_x_print_pcontext_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_x_print_pcontext_t)# ### proc xcb_x_print_pcontext_next*(i: ptr xcb_x_print_pcontext_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_x_print_pcontext_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_x_print_pcontext_end*(i: xcb_x_print_pcontext_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_query_version*(c: ptr xcb_connection_t): xcb_x_print_print_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_query_version_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_query_version_reply_t# proc xcb_x_print_print_get_printer_list_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_printer_list*(c: ptr xcb_connection_t;# printerNameLen: uint32;# localeLen: uint32; printer_name: ptr xcb_x_print_string8_t;# locale: ptr xcb_x_print_string8_t): xcb_x_print_print_get_printer_list_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_printer_list_unchecked*(c: ptr xcb_connection_t;# printerNameLen: uint32; localeLen: uint32;# printer_name: ptr xcb_x_print_string8_t; locale: ptr xcb_x_print_string8_t): xcb_x_print_print_get_printer_list_cookie_t# proc xcb_x_print_print_get_printer_list_printers_length*(# R: ptr xcb_x_print_print_get_printer_list_reply_t): cint# proc xcb_x_print_print_get_printer_list_printers_iterator*(# R: ptr xcb_x_print_print_get_printer_list_reply_t): xcb_x_print_printer_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_printer_list_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_printer_list_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_printer_list_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_printer_list_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_rehash_printer_list_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_rehash_printer_list*(c: ptr xcb_connection_t): xcb_void_cookie_t# proc xcb_x_print_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_create_context_checked*(c: ptr xcb_connection_t;# context_id: uint32;# printerNameLen: uint32;# localeLen: uint32;# printerName: ptr xcb_x_print_string8_t;# locale: ptr xcb_x_print_string8_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_create_context*(c: ptr xcb_connection_t; context_id: uint32;# printerNameLen: uint32; localeLen: uint32;# printerName: ptr xcb_x_print_string8_t;# locale: ptr xcb_x_print_string8_t): xcb_void_cookie_t# proc xcb_x_print_create_context_printer_name*(# R: ptr xcb_x_print_create_context_request_t): ptr xcb_x_print_string8_t# proc xcb_x_print_create_context_printer_name_length*(# R: ptr xcb_x_print_create_context_request_t): cint# proc xcb_x_print_create_context_printer_name_end*(# R: ptr xcb_x_print_create_context_request_t): xcb_generic_iterator_t# proc xcb_x_print_create_context_locale*(R: ptr xcb_x_print_create_context_request_t): ptr xcb_x_print_string8_t# proc xcb_x_print_create_context_locale_length*(# R: ptr xcb_x_print_create_context_request_t): cint# proc xcb_x_print_create_context_locale_end*(# R: ptr xcb_x_print_create_context_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_set_context_checked*(c: ptr xcb_connection_t;# context: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_set_context*(c: ptr xcb_connection_t; context: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_context*(c: ptr xcb_connection_t): xcb_x_print_print_get_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_context_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_get_context_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_context_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_context_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_destroy_context_checked*(c: ptr xcb_connection_t;# context: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_destroy_context*(c: ptr xcb_connection_t; context: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_screen_of_context*(c: ptr xcb_connection_t): xcb_x_print_print_get_screen_of_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_screen_of_context_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_get_screen_of_context_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_screen_of_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_screen_of_context_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_screen_of_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_screen_of_context_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_start_job_checked*(c: ptr xcb_connection_t;# output_mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_start_job*(c: ptr xcb_connection_t; output_mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_end_job_checked*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_end_job*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_start_doc_checked*(c: ptr xcb_connection_t;# driver_mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_start_doc*(c: ptr xcb_connection_t; driver_mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_end_doc_checked*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_end_doc*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t# proc xcb_x_print_print_put_document_data_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_put_document_data_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; len_data: uint32; len_fmt: uint16;# len_options: uint16; data: ptr uint8; doc_format: ptr xcb_x_print_string8_t;# options: ptr xcb_x_print_string8_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_put_document_data*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; len_data: uint32; len_fmt: uint16;# len_options: uint16; data: ptr uint8; doc_format: ptr xcb_x_print_string8_t;# options: ptr xcb_x_print_string8_t): xcb_void_cookie_t# proc xcb_x_print_print_put_document_data_data*(# R: ptr xcb_x_print_print_put_document_data_request_t): ptr uint8# proc xcb_x_print_print_put_document_data_data_length*(# R: ptr xcb_x_print_print_put_document_data_request_t): cint# proc xcb_x_print_print_put_document_data_data_end*(# R: ptr xcb_x_print_print_put_document_data_request_t): xcb_generic_iterator_t# proc xcb_x_print_print_put_document_data_doc_format*(# R: ptr xcb_x_print_print_put_document_data_request_t): ptr xcb_x_print_string8_t# proc xcb_x_print_print_put_document_data_doc_format_length*(# R: ptr xcb_x_print_print_put_document_data_request_t): cint# proc xcb_x_print_print_put_document_data_doc_format_end*(# R: ptr xcb_x_print_print_put_document_data_request_t): xcb_generic_iterator_t# proc xcb_x_print_print_put_document_data_options*(# R: ptr xcb_x_print_print_put_document_data_request_t): ptr xcb_x_print_string8_t# proc xcb_x_print_print_put_document_data_options_length*(# R: ptr xcb_x_print_print_put_document_data_request_t): cint# proc xcb_x_print_print_put_document_data_options_end*(# R: ptr xcb_x_print_print_put_document_data_request_t): xcb_generic_iterator_t# proc xcb_x_print_print_get_document_data_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_document_data*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; max_bytes: uint32): xcb_x_print_print_get_document_data_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_document_data_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; max_bytes: uint32): xcb_x_print_print_get_document_data_cookie_t# proc xcb_x_print_print_get_document_data_data*(# R: ptr xcb_x_print_print_get_document_data_reply_t): ptr uint8# proc xcb_x_print_print_get_document_data_data_length*(# R: ptr xcb_x_print_print_get_document_data_reply_t): cint# proc xcb_x_print_print_get_document_data_data_end*(# R: ptr xcb_x_print_print_get_document_data_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_document_data_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_document_data_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_document_data_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_document_data_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_start_page_checked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_start_page*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_end_page_checked*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_end_page*(c: ptr xcb_connection_t; cancel: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_select_input_checked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_select_input*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t;# event_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_input_selected*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t): xcb_x_print_print_input_selected_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_input_selected_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t): xcb_x_print_print_input_selected_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_input_selected_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_input_selected_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_input_selected_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_input_selected_reply_t# proc xcb_x_print_print_get_attributes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_attributes*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t;# pool: uint8): xcb_x_print_print_get_attributes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_attributes_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; pool: uint8): xcb_x_print_print_get_attributes_cookie_t# proc xcb_x_print_print_get_attributes_attributes*(# R: ptr xcb_x_print_print_get_attributes_reply_t): ptr xcb_x_print_string8_t# proc xcb_x_print_print_get_attributes_attributes_length*(# R: ptr xcb_x_print_print_get_attributes_reply_t): cint# proc xcb_x_print_print_get_attributes_attributes_end*(# R: ptr xcb_x_print_print_get_attributes_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_attributes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_attributes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_attributes_reply_t# proc xcb_x_print_print_get_one_attributes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_one_attributes*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; nameLen: uint32; pool: uint8;# name: ptr xcb_x_print_string8_t): xcb_x_print_print_get_one_attributes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_one_attributes_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; nameLen: uint32; pool: uint8;# name: ptr xcb_x_print_string8_t): xcb_x_print_print_get_one_attributes_cookie_t# proc xcb_x_print_print_get_one_attributes_value*(# R: ptr xcb_x_print_print_get_one_attributes_reply_t): ptr xcb_x_print_string8_t# proc xcb_x_print_print_get_one_attributes_value_length*(# R: ptr xcb_x_print_print_get_one_attributes_reply_t): cint# proc xcb_x_print_print_get_one_attributes_value_end*(# R: ptr xcb_x_print_print_get_one_attributes_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_one_attributes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_one_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_one_attributes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_one_attributes_reply_t# proc xcb_x_print_print_set_attributes_sizeof*(_buffer: pointer;# attributes_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_x_print_print_set_attributes_checked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; stringLen: uint32; pool: uint8;# rule: uint8; attributes_len: uint32; attributes: ptr xcb_x_print_string8_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_set_attributes*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t;# stringLen: uint32; pool: uint8;# rule: uint8; attributes_len: uint32;# attributes: ptr xcb_x_print_string8_t): xcb_void_cookie_t# proc xcb_x_print_print_set_attributes_attributes*(# R: ptr xcb_x_print_print_set_attributes_request_t): ptr xcb_x_print_string8_t# proc xcb_x_print_print_set_attributes_attributes_length*(# R: ptr xcb_x_print_print_set_attributes_request_t): cint# proc xcb_x_print_print_set_attributes_attributes_end*(# R: ptr xcb_x_print_print_set_attributes_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_page_dimensions*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_page_dimensions_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_page_dimensions_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_page_dimensions_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_page_dimensions_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_page_dimensions_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_page_dimensions_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_page_dimensions_reply_t# proc xcb_x_print_print_query_screens_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_query_screens*(c: ptr xcb_connection_t): xcb_x_print_print_query_screens_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_query_screens_unchecked*(c: ptr xcb_connection_t): xcb_x_print_print_query_screens_cookie_t# proc xcb_x_print_print_query_screens_roots*(# R: ptr xcb_x_print_print_query_screens_reply_t): ptr xcb_window_t# proc xcb_x_print_print_query_screens_roots_length*(# R: ptr xcb_x_print_print_query_screens_reply_t): cint# proc xcb_x_print_print_query_screens_roots_end*(# R: ptr xcb_x_print_print_query_screens_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_query_screens_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_query_screens_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_query_screens_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_query_screens_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_set_image_resolution*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; image_resolution: uint16): xcb_x_print_print_set_image_resolution_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_set_image_resolution_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t; image_resolution: uint16): xcb_x_print_print_set_image_resolution_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_set_image_resolution_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_set_image_resolution_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_set_image_resolution_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_set_image_resolution_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_x_print_print_get_image_resolution*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_image_resolution_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_x_print_print_get_image_resolution_unchecked*(c: ptr xcb_connection_t;# context: xcb_x_print_pcontext_t): xcb_x_print_print_get_image_resolution_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_x_print_print_get_image_resolution_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_x_print_print_get_image_resolution_reply*(c: ptr xcb_connection_t; cookie: xcb_x_print_print_get_image_resolution_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_x_print_print_get_image_resolution_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xproto.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB__API XCB API# ## @brief XCB Protocol Implementation.# ## @{# ### import# xcb# ## *# ## @brief xcb_char2b_t# ### type# xcb_char2b_t* {.bycopy.} = object# byte1*: uint8# byte2*: uint8# ## *# ## @brief xcb_char2b_iterator_t# ### type# xcb_char2b_iterator_t* {.bycopy.} = object# data*: ptr xcb_char2b_t# rem*: cint# index*: cint# xcb_window_t* = uint32# ## *# ## @brief xcb_window_iterator_t# ### type# xcb_window_iterator_t* {.bycopy.} = object# data*: ptr xcb_window_t# rem*: cint# index*: cint# xcb_pixmap_t* = uint32# ## *# ## @brief xcb_pixmap_iterator_t# ### type# xcb_pixmap_iterator_t* {.bycopy.} = object# data*: ptr xcb_pixmap_t# rem*: cint# index*: cint# xcb_cursor_t* = uint32# ## *# ## @brief xcb_cursor_iterator_t# ### type# xcb_cursor_iterator_t* {.bycopy.} = object# data*: ptr xcb_cursor_t# rem*: cint# index*: cint# xcb_font_t* = uint32# ## *# ## @brief xcb_font_iterator_t# ### type# xcb_font_iterator_t* {.bycopy.} = object# data*: ptr xcb_font_t# rem*: cint# index*: cint# xcb_gcontext_t* = uint32# ## *# ## @brief xcb_gcontext_iterator_t# ### type# xcb_gcontext_iterator_t* {.bycopy.} = object# data*: ptr xcb_gcontext_t# rem*: cint# index*: cint# xcb_colormap_t* = uint32# ## *# ## @brief xcb_colormap_iterator_t# ### type# xcb_colormap_iterator_t* {.bycopy.} = object# data*: ptr xcb_colormap_t# rem*: cint# index*: cint# xcb_atom_t* = uint32# ## *# ## @brief xcb_atom_iterator_t# ### type# xcb_atom_iterator_t* {.bycopy.} = object# data*: ptr xcb_atom_t# rem*: cint# index*: cint# xcb_drawable_t* = uint32# ## *# ## @brief xcb_drawable_iterator_t# ### type# xcb_drawable_iterator_t* {.bycopy.} = object# data*: ptr xcb_drawable_t# rem*: cint# index*: cint# xcb_fontable_t* = uint32# ## *# ## @brief xcb_fontable_iterator_t# ### type# xcb_fontable_iterator_t* {.bycopy.} = object# data*: ptr xcb_fontable_t# rem*: cint# index*: cint# xcb_bool32_t* = uint32# ## *# ## @brief xcb_bool32_iterator_t# ### type# xcb_bool32_iterator_t* {.bycopy.} = object# data*: ptr xcb_bool32_t# rem*: cint# index*: cint# xcb_visualid_t* = uint32# ## *# ## @brief xcb_visualid_iterator_t# ### type# xcb_visualid_iterator_t* {.bycopy.} = object# data*: ptr xcb_visualid_t# rem*: cint# index*: cint# xcb_timestamp_t* = uint32# ## *# ## @brief xcb_timestamp_iterator_t# ### type# xcb_timestamp_iterator_t* {.bycopy.} = object# data*: ptr xcb_timestamp_t# rem*: cint# index*: cint# xcb_keysym_t* = uint32# ## *# ## @brief xcb_keysym_iterator_t# ### type# xcb_keysym_iterator_t* {.bycopy.} = object# data*: ptr xcb_keysym_t# rem*: cint# index*: cint# xcb_keycode_t* = uint8# ## *# ## @brief xcb_keycode_iterator_t# ### type# xcb_keycode_iterator_t* {.bycopy.} = object# data*: ptr xcb_keycode_t# rem*: cint# index*: cint# xcb_keycode32_t* = uint32# ## *# ## @brief xcb_keycode32_iterator_t# ### type# xcb_keycode32_iterator_t* {.bycopy.} = object# data*: ptr xcb_keycode32_t# rem*: cint# index*: cint# xcb_button_t* = uint8# ## *# ## @brief xcb_button_iterator_t# ### type# xcb_button_iterator_t* {.bycopy.} = object# data*: ptr xcb_button_t# rem*: cint# index*: cint# ## *# ## @brief xcb_point_t# ### type# xcb_point_t* {.bycopy.} = object# x*: int16# y*: int16# ## *# ## @brief xcb_point_iterator_t# ### type# xcb_point_iterator_t* {.bycopy.} = object# data*: ptr xcb_point_t# rem*: cint# index*: cint# ## *# ## @brief xcb_rectangle_t# ### type# xcb_rectangle_t* {.bycopy.} = object# x*: int16# y*: int16# width*: uint16# height*: uint16# ## *# ## @brief xcb_rectangle_iterator_t# ### type# xcb_rectangle_iterator_t* {.bycopy.} = object# data*: ptr xcb_rectangle_t# rem*: cint# index*: cint# ## *# ## @brief xcb_arc_t# ### type# xcb_arc_t* {.bycopy.} = object# x*: int16# y*: int16# width*: uint16# height*: uint16# angle1*: int16# angle2*: int16# ## *# ## @brief xcb_arc_iterator_t# ### type# xcb_arc_iterator_t* {.bycopy.} = object# data*: ptr xcb_arc_t# rem*: cint# index*: cint# ## *# ## @brief xcb_format_t# ### type# xcb_format_t* {.bycopy.} = object# depth*: uint8# bits_per_pixel*: uint8# scanline_pad*: uint8# pad0*: array[5, uint8]# ## *# ## @brief xcb_format_iterator_t# ### type# xcb_format_iterator_t* {.bycopy.} = object# data*: ptr xcb_format_t# rem*: cint# index*: cint# xcb_visual_class_t* = enum# XCB_VISUAL_CLASS_STATIC_GRAY = 0, XCB_VISUAL_CLASS_GRAY_SCALE = 1,# XCB_VISUAL_CLASS_STATIC_COLOR = 2, XCB_VISUAL_CLASS_PSEUDO_COLOR = 3,# XCB_VISUAL_CLASS_TRUE_COLOR = 4, XCB_VISUAL_CLASS_DIRECT_COLOR = 5# ## *# ## @brief xcb_visualtype_t# ### type# xcb_visualtype_t* {.bycopy.} = object# visual_id*: xcb_visualid_t# _class*: uint8# bits_per_rgb_value*: uint8# colormap_entries*: uint16# red_mask*: uint32# green_mask*: uint32# blue_mask*: uint32# pad0*: array[4, uint8]# ## *# ## @brief xcb_visualtype_iterator_t# ### type# xcb_visualtype_iterator_t* {.bycopy.} = object# data*: ptr xcb_visualtype_t# rem*: cint# index*: cint# ## *# ## @brief xcb_depth_t# ### type# xcb_depth_t* {.bycopy.} = object# depth*: uint8# pad0*: uint8# visuals_len*: uint16# pad1*: array[4, uint8]# ## *# ## @brief xcb_depth_iterator_t# ### type# xcb_depth_iterator_t* {.bycopy.} = object# data*: ptr xcb_depth_t# rem*: cint# index*: cint# xcb_event_mask_t* = enum# XCB_EVENT_MASK_NO_EVENT = 0, XCB_EVENT_MASK_KEY_PRESS = 1,# XCB_EVENT_MASK_KEY_RELEASE = 2, XCB_EVENT_MASK_BUTTON_PRESS = 4,# XCB_EVENT_MASK_BUTTON_RELEASE = 8, XCB_EVENT_MASK_ENTER_WINDOW = 16,# XCB_EVENT_MASK_LEAVE_WINDOW = 32, XCB_EVENT_MASK_POINTER_MOTION = 64,# XCB_EVENT_MASK_POINTER_MOTION_HINT = 128, XCB_EVENT_MASK_BUTTON_1_MOTION = 256,# XCB_EVENT_MASK_BUTTON_2_MOTION = 512, XCB_EVENT_MASK_BUTTON_3_MOTION = 1024,# XCB_EVENT_MASK_BUTTON_4_MOTION = 2048, XCB_EVENT_MASK_BUTTON_5_MOTION = 4096,# XCB_EVENT_MASK_BUTTON_MOTION = 8192, XCB_EVENT_MASK_KEYMAP_STATE = 16384,# XCB_EVENT_MASK_EXPOSURE = 32768, XCB_EVENT_MASK_VISIBILITY_CHANGE = 65536,# XCB_EVENT_MASK_STRUCTURE_NOTIFY = 131072,# XCB_EVENT_MASK_RESIZE_REDIRECT = 262144,# XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY = 524288,# XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT = 1048576,# XCB_EVENT_MASK_FOCUS_CHANGE = 2097152,# XCB_EVENT_MASK_PROPERTY_CHANGE = 4194304,# XCB_EVENT_MASK_COLOR_MAP_CHANGE = 8388608,# XCB_EVENT_MASK_OWNER_GRAB_BUTTON = 16777216# xcb_backing_store_t* = enum# XCB_BACKING_STORE_NOT_USEFUL = 0, XCB_BACKING_STORE_WHEN_MAPPED = 1,# XCB_BACKING_STORE_ALWAYS = 2# ## *# ## @brief xcb_screen_t# ### type# xcb_screen_t* {.bycopy.} = object# root*: xcb_window_t# default_colormap*: xcb_colormap_t# white_pixel*: uint32# black_pixel*: uint32# current_input_masks*: uint32# width_in_pixels*: uint16# height_in_pixels*: uint16# width_in_millimeters*: uint16# height_in_millimeters*: uint16# min_installed_maps*: uint16# max_installed_maps*: uint16# root_visual*: xcb_visualid_t# backing_stores*: uint8# save_unders*: uint8# root_depth*: uint8# allowed_depths_len*: uint8# ## *# ## @brief xcb_screen_iterator_t# ### type# xcb_screen_iterator_t* {.bycopy.} = object# data*: ptr xcb_screen_t# rem*: cint# index*: cint# ## *# ## @brief xcb_setup_request_t# ### type# xcb_setup_request_t* {.bycopy.} = object# byte_order*: uint8# pad0*: uint8# protocol_major_version*: uint16# protocol_minor_version*: uint16# authorization_protocol_name_len*: uint16# authorization_protocol_data_len*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_setup_request_iterator_t# ### type# xcb_setup_request_iterator_t* {.bycopy.} = object# data*: ptr xcb_setup_request_t# rem*: cint# index*: cint# ## *# ## @brief xcb_setup_failed_t# ### type# xcb_setup_failed_t* {.bycopy.} = object# status*: uint8# reason_len*: uint8# protocol_major_version*: uint16# protocol_minor_version*: uint16# length*: uint16# ## *# ## @brief xcb_setup_failed_iterator_t# ### type# xcb_setup_failed_iterator_t* {.bycopy.} = object# data*: ptr xcb_setup_failed_t# rem*: cint# index*: cint# ## *# ## @brief xcb_setup_authenticate_t# ### type# xcb_setup_authenticate_t* {.bycopy.} = object# status*: uint8# pad0*: array[5, uint8]# length*: uint16# ## *# ## @brief xcb_setup_authenticate_iterator_t# ### type# xcb_setup_authenticate_iterator_t* {.bycopy.} = object# data*: ptr xcb_setup_authenticate_t# rem*: cint# index*: cint# xcb_image_order_t* = enum# XCB_IMAGE_ORDER_LSB_FIRST = 0, XCB_IMAGE_ORDER_MSB_FIRST = 1# ## *# ## @brief xcb_setup_t# ### type# xcb_setup_t* {.bycopy.} = object# status*: uint8# pad0*: uint8# protocol_major_version*: uint16# protocol_minor_version*: uint16# length*: uint16# release_number*: uint32# resource_id_base*: uint32# resource_id_mask*: uint32# motion_buffer_size*: uint32# vendor_len*: uint16# maximum_request_length*: uint16# roots_len*: uint8# pixmap_formats_len*: uint8# image_byte_order*: uint8# bitmap_format_bit_order*: uint8# bitmap_format_scanline_unit*: uint8# bitmap_format_scanline_pad*: uint8# min_keycode*: xcb_keycode_t# max_keycode*: xcb_keycode_t# pad1*: array[4, uint8]# ## *# ## @brief xcb_setup_iterator_t# ### type# xcb_setup_iterator_t* {.bycopy.} = object# data*: ptr xcb_setup_t# rem*: cint# index*: cint# xcb_mod_mask_t* = enum# XCB_MOD_MASK_SHIFT = 1, XCB_MOD_MASK_LOCK = 2, XCB_MOD_MASK_CONTROL = 4,# XCB_MOD_MASK_1 = 8, XCB_MOD_MASK_2 = 16, XCB_MOD_MASK_3 = 32, XCB_MOD_MASK_4 = 64,# XCB_MOD_MASK_5 = 128, XCB_MOD_MASK_ANY = 32768# xcb_key_but_mask_t* = enum# XCB_KEY_BUT_MASK_SHIFT = 1, XCB_KEY_BUT_MASK_LOCK = 2,# XCB_KEY_BUT_MASK_CONTROL = 4, XCB_KEY_BUT_MASK_MOD_1 = 8,# XCB_KEY_BUT_MASK_MOD_2 = 16, XCB_KEY_BUT_MASK_MOD_3 = 32,# XCB_KEY_BUT_MASK_MOD_4 = 64, XCB_KEY_BUT_MASK_MOD_5 = 128,# XCB_KEY_BUT_MASK_BUTTON_1 = 256, XCB_KEY_BUT_MASK_BUTTON_2 = 512,# XCB_KEY_BUT_MASK_BUTTON_3 = 1024, XCB_KEY_BUT_MASK_BUTTON_4 = 2048,# XCB_KEY_BUT_MASK_BUTTON_5 = 4096# xcb_window_enum_t* = enum# XCB_WINDOW_NONE = 0# ## * Opcode for xcb_key_press.# const# XCB_KEY_PRESS* = 2# ## *# ## @brief xcb_key_press_event_t# ### type# xcb_key_press_event_t* {.bycopy.} = object# response_type*: uint8# detail*: xcb_keycode_t# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# same_screen*: uint8# pad0*: uint8# ## * Opcode for xcb_key_release.# const# XCB_KEY_RELEASE* = 3# type# xcb_key_release_event_t* = xcb_key_press_event_t# xcb_button_mask_t* = enum# XCB_BUTTON_MASK_1 = 256, XCB_BUTTON_MASK_2 = 512, XCB_BUTTON_MASK_3 = 1024,# XCB_BUTTON_MASK_4 = 2048, XCB_BUTTON_MASK_5 = 4096, XCB_BUTTON_MASK_ANY = 32768# ## * Opcode for xcb_button_press.# const# XCB_BUTTON_PRESS* = 4# ## *# ## @brief xcb_button_press_event_t# ### type# xcb_button_press_event_t* {.bycopy.} = object# response_type*: uint8# detail*: xcb_button_t# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# same_screen*: uint8# pad0*: uint8# ## * Opcode for xcb_button_release.# const# XCB_BUTTON_RELEASE* = 5# type# xcb_button_release_event_t* = xcb_button_press_event_t# xcb_motion_t* = enum# XCB_MOTION_NORMAL = 0, XCB_MOTION_HINT = 1# ## * Opcode for xcb_motion_notify.# const# XCB_MOTION_NOTIFY* = 6# ## *# ## @brief xcb_motion_notify_event_t# ### type# xcb_motion_notify_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# same_screen*: uint8# pad0*: uint8# xcb_notify_detail_t* = enum# XCB_NOTIFY_DETAIL_ANCESTOR = 0, XCB_NOTIFY_DETAIL_VIRTUAL = 1,# XCB_NOTIFY_DETAIL_INFERIOR = 2, XCB_NOTIFY_DETAIL_NONLINEAR = 3,# XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4, XCB_NOTIFY_DETAIL_POINTER = 5,# XCB_NOTIFY_DETAIL_POINTER_ROOT = 6, XCB_NOTIFY_DETAIL_NONE = 7# xcb_notify_mode_t* = enum# XCB_NOTIFY_MODE_NORMAL = 0, XCB_NOTIFY_MODE_GRAB = 1, XCB_NOTIFY_MODE_UNGRAB = 2,# XCB_NOTIFY_MODE_WHILE_GRABBED = 3# ## * Opcode for xcb_enter_notify.# const# XCB_ENTER_NOTIFY* = 7# ## *# ## @brief xcb_enter_notify_event_t# ### type# xcb_enter_notify_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# mode*: uint8# same_screen_focus*: uint8# ## * Opcode for xcb_leave_notify.# const# XCB_LEAVE_NOTIFY* = 8# type# xcb_leave_notify_event_t* = xcb_enter_notify_event_t# ## * Opcode for xcb_focus_in.# const# XCB_FOCUS_IN* = 9# ## *# ## @brief xcb_focus_in_event_t# ### type# xcb_focus_in_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# event*: xcb_window_t# mode*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_focus_out.# const# XCB_FOCUS_OUT* = 10# type# xcb_focus_out_event_t* = xcb_focus_in_event_t# ## * Opcode for xcb_keymap_notify.# const# XCB_KEYMAP_NOTIFY* = 11# ## *# ## @brief xcb_keymap_notify_event_t# ### type# xcb_keymap_notify_event_t* {.bycopy.} = object# response_type*: uint8# keys*: array[31, uint8]# ## * Opcode for xcb_expose.# const# XCB_EXPOSE* = 12# ## *# ## @brief xcb_expose_event_t# ### type# xcb_expose_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# window*: xcb_window_t# x*: uint16# y*: uint16# width*: uint16# height*: uint16# count*: uint16# pad1*: array[2, uint8]# ## * Opcode for xcb_graphics_exposure.# const# XCB_GRAPHICS_EXPOSURE* = 13# ## *# ## @brief xcb_graphics_exposure_event_t# ### type# xcb_graphics_exposure_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# drawable*: xcb_drawable_t# x*: uint16# y*: uint16# width*: uint16# height*: uint16# minor_opcode*: uint16# count*: uint16# major_opcode*: uint8# pad1*: array[3, uint8]# ## * Opcode for xcb_no_exposure.# const# XCB_NO_EXPOSURE* = 14# ## *# ## @brief xcb_no_exposure_event_t# ### type# xcb_no_exposure_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# drawable*: xcb_drawable_t# minor_opcode*: uint16# major_opcode*: uint8# pad1*: uint8# xcb_visibility_t* = enum# XCB_VISIBILITY_UNOBSCURED = 0, XCB_VISIBILITY_PARTIALLY_OBSCURED = 1,# XCB_VISIBILITY_FULLY_OBSCURED = 2# ## * Opcode for xcb_visibility_notify.# const# XCB_VISIBILITY_NOTIFY* = 15# ## *# ## @brief xcb_visibility_notify_event_t# ### type# xcb_visibility_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# window*: xcb_window_t# state*: uint8# pad1*: array[3, uint8]# ## * Opcode for xcb_create_notify.# const# XCB_CREATE_NOTIFY* = 16# ## *# ## @brief xcb_create_notify_event_t# ### type# xcb_create_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# parent*: xcb_window_t# window*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# border_width*: uint16# override_redirect*: uint8# pad1*: uint8# ## * Opcode for xcb_destroy_notify.# const# XCB_DESTROY_NOTIFY* = 17# ## *# ## @brief xcb_destroy_notify_event_t# ### type# xcb_destroy_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# ## * Opcode for xcb_unmap_notify.# const# XCB_UNMAP_NOTIFY* = 18# ## *# ## @brief xcb_unmap_notify_event_t# ### type# xcb_unmap_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# from_configure*: uint8# pad1*: array[3, uint8]# ## * Opcode for xcb_map_notify.# const# XCB_MAP_NOTIFY* = 19# ## *# ## @brief xcb_map_notify_event_t# ### type# xcb_map_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# override_redirect*: uint8# pad1*: array[3, uint8]# ## * Opcode for xcb_map_request.# const# XCB_MAP_REQUEST* = 20# ## *# ## @brief xcb_map_request_event_t# ### type# xcb_map_request_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# parent*: xcb_window_t# window*: xcb_window_t# ## * Opcode for xcb_reparent_notify.# const# XCB_REPARENT_NOTIFY* = 21# ## *# ## @brief xcb_reparent_notify_event_t# ### type# xcb_reparent_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# parent*: xcb_window_t# x*: int16# y*: int16# override_redirect*: uint8# pad1*: array[3, uint8]# ## * Opcode for xcb_configure_notify.# const# XCB_CONFIGURE_NOTIFY* = 22# ## *# ## @brief xcb_configure_notify_event_t# ### type# xcb_configure_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# above_sibling*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# border_width*: uint16# override_redirect*: uint8# pad1*: uint8# ## * Opcode for xcb_configure_request.# const# XCB_CONFIGURE_REQUEST* = 23# ## *# ## @brief xcb_configure_request_event_t# ### type# xcb_configure_request_event_t* {.bycopy.} = object# response_type*: uint8# stack_mode*: uint8# sequence*: uint16# parent*: xcb_window_t# window*: xcb_window_t# sibling*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# border_width*: uint16# value_mask*: uint16# ## * Opcode for xcb_gravity_notify.# const# XCB_GRAVITY_NOTIFY* = 24# ## *# ## @brief xcb_gravity_notify_event_t# ### type# xcb_gravity_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# x*: int16# y*: int16# ## * Opcode for xcb_resize_request.# const# XCB_RESIZE_REQUEST* = 25# ## *# ## @brief xcb_resize_request_event_t# ### type# xcb_resize_request_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# window*: xcb_window_t# width*: uint16# height*: uint16# xcb_place_t* = enum# XCB_PLACE_ON_TOP = 0, ## *< The window is now on top of all siblings.# XCB_PLACE_ON_BOTTOM = 1# ## * Opcode for xcb_circulate_notify.# const# XCB_CIRCULATE_NOTIFY* = 26# ## *# ## @brief xcb_circulate_notify_event_t# ### type# xcb_circulate_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# event*: xcb_window_t# window*: xcb_window_t# pad1*: array[4, uint8]# place*: uint8# pad2*: array[3, uint8]# ## * Opcode for xcb_circulate_request.# const# XCB_CIRCULATE_REQUEST* = 27# type# xcb_circulate_request_event_t* = xcb_circulate_notify_event_t# xcb_property_t* = enum# XCB_PROPERTY_NEW_VALUE = 0, XCB_PROPERTY_DELETE = 1# ## * Opcode for xcb_property_notify.# const# XCB_PROPERTY_NOTIFY* = 28# ## *# ## @brief xcb_property_notify_event_t# ### type# xcb_property_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# window*: xcb_window_t# atom*: xcb_atom_t# time*: xcb_timestamp_t# state*: uint8# pad1*: array[3, uint8]# ## * Opcode for xcb_selection_clear.# const# XCB_SELECTION_CLEAR* = 29# ## *# ## @brief xcb_selection_clear_event_t# ### type# xcb_selection_clear_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# time*: xcb_timestamp_t# owner*: xcb_window_t# selection*: xcb_atom_t# xcb_time_t* = enum# XCB_TIME_CURRENT_TIME = 0# const# XCB_ATOM_ANY = XCB_ATOM_NONE# ## * Opcode for xcb_selection_request.# const# XCB_SELECTION_REQUEST* = 30# ## *# ## @brief xcb_selection_request_event_t# ### type# xcb_selection_request_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# time*: xcb_timestamp_t# owner*: xcb_window_t# requestor*: xcb_window_t# selection*: xcb_atom_t# target*: xcb_atom_t# property*: xcb_atom_t# ## * Opcode for xcb_selection_notify.# const# XCB_SELECTION_NOTIFY* = 31# ## *# ## @brief xcb_selection_notify_event_t# ### type# xcb_selection_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# time*: xcb_timestamp_t# requestor*: xcb_window_t# selection*: xcb_atom_t# target*: xcb_atom_t# property*: xcb_atom_t# xcb_colormap_state_t* = enum# XCB_COLORMAP_STATE_UNINSTALLED = 0, ## *< The colormap was uninstalled.# XCB_COLORMAP_STATE_INSTALLED = 1# xcb_colormap_enum_t* = enum# XCB_COLORMAP_NONE = 0# ## * Opcode for xcb_colormap_notify.# const# XCB_COLORMAP_NOTIFY* = 32# ## *# ## @brief xcb_colormap_notify_event_t# ### type# xcb_colormap_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# window*: xcb_window_t# colormap*: xcb_colormap_t# _new*: uint8# state*: uint8# pad1*: array[2, uint8]# ## *# ## @brief xcb_client_message_data_t# ### type# xcb_client_message_data_t* {.bycopy.} = object {.union.}# data8*: array[20, uint8]# data16*: array[10, uint16]# data32*: array[5, uint32]# ## *# ## @brief xcb_client_message_data_iterator_t# ### type# xcb_client_message_data_iterator_t* {.bycopy.} = object# data*: ptr xcb_client_message_data_t# rem*: cint# index*: cint# ## * Opcode for xcb_client_message.# const# XCB_CLIENT_MESSAGE* = 33# ## *# ## @brief xcb_client_message_event_t# ### type# xcb_client_message_event_t* {.bycopy.} = object# response_type*: uint8# format*: uint8# sequence*: uint16# window*: xcb_window_t# `type`*: xcb_atom_t# data*: xcb_client_message_data_t# xcb_mapping_t* = enum# XCB_MAPPING_MODIFIER = 0, XCB_MAPPING_KEYBOARD = 1, XCB_MAPPING_POINTER = 2# ## * Opcode for xcb_mapping_notify.# const# XCB_MAPPING_NOTIFY* = 34# ## *# ## @brief xcb_mapping_notify_event_t# ### type# xcb_mapping_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# request*: uint8# first_keycode*: xcb_keycode_t# count*: uint8# pad1*: uint8# ## * Opcode for xcb_ge_generic.# const# XCB_GE_GENERIC* = 35# ## *# ## @brief xcb_ge_generic_event_t# ### type# xcb_ge_generic_event_t* {.bycopy.} = object# response_type*: uint8# extension*: uint8# sequence*: uint16# length*: uint32# event_type*: uint16# pad0*: array[22, uint8]# full_sequence*: uint32# ## * Opcode for xcb_request.# const# XCB_REQUEST* = 1# ## *# ## @brief xcb_request_error_t# ### type# xcb_request_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# bad_value*: uint32# minor_opcode*: uint16# major_opcode*: uint8# pad0*: uint8# ## * Opcode for xcb_value.# const# XCB_VALUE* = 2# ## *# ## @brief xcb_value_error_t# ### type# xcb_value_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# bad_value*: uint32# minor_opcode*: uint16# major_opcode*: uint8# pad0*: uint8# ## * Opcode for xcb_window.# const# XCB_WINDOW* = 3# type# xcb_window_error_t* = xcb_value_error_t# ## * Opcode for xcb_pixmap.# const# XCB_PIXMAP* = 4# type# xcb_pixmap_error_t* = xcb_value_error_t# ## * Opcode for xcb_atom.# const# XCB_ATOM* = 5# type# xcb_atom_error_t* = xcb_value_error_t# ## * Opcode for xcb_cursor.# const# XCB_CURSOR* = 6# type# xcb_cursor_error_t* = xcb_value_error_t# ## * Opcode for xcb_font.# const# XCB_FONT* = 7# type# xcb_font_error_t* = xcb_value_error_t# ## * Opcode for xcb_match.# const# XCB_MATCH* = 8# type# xcb_match_error_t* = xcb_request_error_t# ## * Opcode for xcb_drawable.# const# XCB_DRAWABLE* = 9# type# xcb_drawable_error_t* = xcb_value_error_t# ## * Opcode for xcb_access.# const# XCB_ACCESS* = 10# type# xcb_access_error_t* = xcb_request_error_t# ## * Opcode for xcb_alloc.# const# XCB_ALLOC* = 11# type# xcb_alloc_error_t* = xcb_request_error_t# ## * Opcode for xcb_colormap.# const# XCB_COLORMAP* = 12# type# xcb_colormap_error_t* = xcb_value_error_t# ## * Opcode for xcb_g_context.# const# XCB_G_CONTEXT* = 13# type# xcb_g_context_error_t* = xcb_value_error_t# ## * Opcode for xcb_id_choice.# const# XCB_ID_CHOICE* = 14# type# xcb_id_choice_error_t* = xcb_value_error_t# ## * Opcode for xcb_name.# const# XCB_NAME* = 15# type# xcb_name_error_t* = xcb_request_error_t# ## * Opcode for xcb_length.# const# XCB_LENGTH* = 16# type# xcb_length_error_t* = xcb_request_error_t# ## * Opcode for xcb_implementation.# const# XCB_IMPLEMENTATION* = 17# type# xcb_implementation_error_t* = xcb_request_error_t# xcb_window_class_t* = enum# XCB_WINDOW_CLASS_COPY_FROM_PARENT = 0, XCB_WINDOW_CLASS_INPUT_OUTPUT = 1,# XCB_WINDOW_CLASS_INPUT_ONLY = 2# xcb_cw_t* = enum# XCB_CW_BACK_PIXMAP = 1, ## *< Overrides the default background-pixmap. The background pixmap and window must# ## have the same root and same depth. Any size pixmap can be used, although some# ## sizes may be faster than others.# ### ## If `XCB_BACK_PIXMAP_NONE` is specified, the window has no defined background.# ## The server may fill the contents with the previous screen contents or with# ## contents of its own choosing.# ### ## If `XCB_BACK_PIXMAP_PARENT_RELATIVE` is specified, the parent's background is# ## used, but the window must have the same depth as the parent (or a Match error# ## results). The parent's background is tracked, and the current version is# ## used each time the window background is required.# XCB_CW_BACK_PIXEL = 2, ## *< Overrides `BackPixmap`. A pixmap of undefined size filled with the specified# ## background pixel is used for the background. Range-checking is not performed,# ## the background pixel is truncated to the appropriate number of bits.# XCB_CW_BORDER_PIXMAP = 4, ## *< Overrides the default border-pixmap. The border pixmap and window must have the# ## same root and the same depth. Any size pixmap can be used, although some sizes# ## may be faster than others.# ### ## The special value `XCB_COPY_FROM_PARENT` means the parent's border pixmap is# ## copied (subsequent changes to the parent's border attribute do not affect the# ## child), but the window must have the same depth as the parent.# XCB_CW_BORDER_PIXEL = 8, ## *< Overrides `BorderPixmap`. A pixmap of undefined size filled with the specified# ## border pixel is used for the border. Range checking is not performed on the# ## border-pixel value, it is truncated to the appropriate number of bits.# XCB_CW_BIT_GRAVITY = 16, ## *< Defines which region of the window should be retained if the window is resized.# XCB_CW_WIN_GRAVITY = 32, ## *< Defines how the window should be repositioned if the parent is resized (see# ## `ConfigureWindow`).# XCB_CW_BACKING_STORE = 64, ## *< A backing-store of `WhenMapped` advises the server that maintaining contents of# ## obscured regions when the window is mapped would be beneficial. A backing-store# ## of `Always` advises the server that maintaining contents even when the window# ## is unmapped would be beneficial. In this case, the server may generate an# ## exposure event when the window is created. A value of `NotUseful` advises the# ## server that maintaining contents is unnecessary, although a server may still# ## choose to maintain contents while the window is mapped. Note that if the server# ## maintains contents, then the server should maintain complete contents not just# ## the region within the parent boundaries, even if the window is larger than its# ## parent. While the server maintains contents, exposure events will not normally# ## be generated, but the server may stop maintaining contents at any time.# XCB_CW_BACKING_PLANES = 128, ## *< The backing-planes indicates (with bits set to 1) which bit planes of the# ## window hold dynamic data that must be preserved in backing-stores and during# ## save-unders.# XCB_CW_BACKING_PIXEL = 256, ## *< The backing-pixel specifies what value to use in planes not covered by# ## backing-planes. The server is free to save only the specified bit planes in the# ## backing-store or save-under and regenerate the remaining planes with the# ## specified pixel value. Any bits beyond the specified depth of the window in# ## these values are simply ignored.# XCB_CW_OVERRIDE_REDIRECT = 512, ## *< The override-redirect specifies whether map and configure requests on this# ## window should override a SubstructureRedirect on the parent, typically to# ## inform a window manager not to tamper with the window.# XCB_CW_SAVE_UNDER = 1024, ## *< If 1, the server is advised that when this window is mapped, saving the# ## contents of windows it obscures would be beneficial.# XCB_CW_EVENT_MASK = 2048, ## *< The event-mask defines which events the client is interested in for this window# ## (or for some event types, inferiors of the window).# XCB_CW_DONT_PROPAGATE = 4096, ## *< The do-not-propagate-mask defines which events should not be propagated to# ## ancestor windows when no client has the event type selected in this window.# XCB_CW_COLORMAP = 8192, ## *< The colormap specifies the colormap that best reflects the true colors of the window. Servers# ## capable of supporting multiple hardware colormaps may use this information, and window man-# ## agers may use it for InstallColormap requests. The colormap must have the same visual type# ## and root as the window (or a Match error results). If CopyFromParent is specified, the parent's# ## colormap is copied (subsequent changes to the parent's colormap attribute do not affect the child).# ## However, the window must have the same visual type as the parent (or a Match error results),# ## and the parent must not have a colormap of None (or a Match error results). For an explanation# ## of None, see FreeColormap request. The colormap is copied by sharing the colormap object# ## between the child and the parent, not by making a complete copy of the colormap contents.# XCB_CW_CURSOR = 16384# xcb_back_pixmap_t* = enum# XCB_BACK_PIXMAP_NONE = 0, XCB_BACK_PIXMAP_PARENT_RELATIVE = 1# xcb_gravity_t* = enum# XCB_GRAVITY_BIT_FORGET = 0, XCB_GRAVITY_NORTH_WEST = 1, XCB_GRAVITY_NORTH = 2,# XCB_GRAVITY_NORTH_EAST = 3, XCB_GRAVITY_WEST = 4, XCB_GRAVITY_CENTER = 5,# XCB_GRAVITY_EAST = 6, XCB_GRAVITY_SOUTH_WEST = 7, XCB_GRAVITY_SOUTH = 8,# XCB_GRAVITY_SOUTH_EAST = 9, XCB_GRAVITY_STATIC = 10# const# XCB_GRAVITY_WIN_UNMAP = XCB_GRAVITY_BIT_FORGET# ## *# ## @brief xcb_create_window_value_list_t# ### type# xcb_create_window_value_list_t* {.bycopy.} = object# background_pixmap*: xcb_pixmap_t# background_pixel*: uint32# border_pixmap*: xcb_pixmap_t# border_pixel*: uint32# bit_gravity*: uint32# win_gravity*: uint32# backing_store*: uint32# backing_planes*: uint32# backing_pixel*: uint32# override_redirect*: xcb_bool32_t# save_under*: xcb_bool32_t# event_mask*: uint32# do_not_propogate_mask*: uint32# colormap*: xcb_colormap_t# cursor*: xcb_cursor_t# ## * Opcode for xcb_create_window.# const# XCB_CREATE_WINDOW* = 1# ## *# ## @brief xcb_create_window_request_t# ### type# xcb_create_window_request_t* {.bycopy.} = object# major_opcode*: uint8# depth*: uint8# length*: uint16# wid*: xcb_window_t# parent*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# border_width*: uint16# _class*: uint16# visual*: xcb_visualid_t# value_mask*: uint32# ## *# ## @brief xcb_change_window_attributes_value_list_t# ### type# xcb_change_window_attributes_value_list_t* {.bycopy.} = object# background_pixmap*: xcb_pixmap_t# background_pixel*: uint32# border_pixmap*: xcb_pixmap_t# border_pixel*: uint32# bit_gravity*: uint32# win_gravity*: uint32# backing_store*: uint32# backing_planes*: uint32# backing_pixel*: uint32# override_redirect*: xcb_bool32_t# save_under*: xcb_bool32_t# event_mask*: uint32# do_not_propogate_mask*: uint32# colormap*: xcb_colormap_t# cursor*: xcb_cursor_t# ## * Opcode for xcb_change_window_attributes.# const# XCB_CHANGE_WINDOW_ATTRIBUTES* = 2# ## *# ## @brief xcb_change_window_attributes_request_t# ### type# xcb_change_window_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# value_mask*: uint32# xcb_map_state_t* = enum# XCB_MAP_STATE_UNMAPPED = 0, XCB_MAP_STATE_UNVIEWABLE = 1,# XCB_MAP_STATE_VIEWABLE = 2# ## *# ## @brief xcb_get_window_attributes_cookie_t# ### type# xcb_get_window_attributes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_window_attributes.# const# XCB_GET_WINDOW_ATTRIBUTES* = 3# ## *# ## @brief xcb_get_window_attributes_request_t# ### type# xcb_get_window_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_get_window_attributes_reply_t# ### type# xcb_get_window_attributes_reply_t* {.bycopy.} = object# response_type*: uint8# backing_store*: uint8# sequence*: uint16# length*: uint32# visual*: xcb_visualid_t# _class*: uint16# bit_gravity*: uint8# win_gravity*: uint8# backing_planes*: uint32# backing_pixel*: uint32# save_under*: uint8# map_is_installed*: uint8# map_state*: uint8# override_redirect*: uint8# colormap*: xcb_colormap_t# all_event_masks*: uint32# your_event_mask*: uint32# do_not_propagate_mask*: uint16# pad0*: array[2, uint8]# ## * Opcode for xcb_destroy_window.# const# XCB_DESTROY_WINDOW* = 4# ## *# ## @brief xcb_destroy_window_request_t# ### type# xcb_destroy_window_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_destroy_subwindows.# const# XCB_DESTROY_SUBWINDOWS* = 5# ## *# ## @brief xcb_destroy_subwindows_request_t# ### type# xcb_destroy_subwindows_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# xcb_set_mode_t* = enum# XCB_SET_MODE_INSERT = 0, XCB_SET_MODE_DELETE = 1# ## * Opcode for xcb_change_save_set.# const# XCB_CHANGE_SAVE_SET* = 6# ## *# ## @brief xcb_change_save_set_request_t# ### type# xcb_change_save_set_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_reparent_window.# const# XCB_REPARENT_WINDOW* = 7# ## *# ## @brief xcb_reparent_window_request_t# ### type# xcb_reparent_window_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# parent*: xcb_window_t# x*: int16# y*: int16# ## * Opcode for xcb_map_window.# const# XCB_MAP_WINDOW* = 8# ## *# ## @brief xcb_map_window_request_t# ### type# xcb_map_window_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_map_subwindows.# const# XCB_MAP_SUBWINDOWS* = 9# ## *# ## @brief xcb_map_subwindows_request_t# ### type# xcb_map_subwindows_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_unmap_window.# const# XCB_UNMAP_WINDOW* = 10# ## *# ## @brief xcb_unmap_window_request_t# ### type# xcb_unmap_window_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## * Opcode for xcb_unmap_subwindows.# const# XCB_UNMAP_SUBWINDOWS* = 11# ## *# ## @brief xcb_unmap_subwindows_request_t# ### type# xcb_unmap_subwindows_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# xcb_config_window_t* = enum# XCB_CONFIG_WINDOW_X = 1, XCB_CONFIG_WINDOW_Y = 2, XCB_CONFIG_WINDOW_WIDTH = 4,# XCB_CONFIG_WINDOW_HEIGHT = 8, XCB_CONFIG_WINDOW_BORDER_WIDTH = 16,# XCB_CONFIG_WINDOW_SIBLING = 32, XCB_CONFIG_WINDOW_STACK_MODE = 64# xcb_stack_mode_t* = enum# XCB_STACK_MODE_ABOVE = 0, XCB_STACK_MODE_BELOW = 1, XCB_STACK_MODE_TOP_IF = 2,# XCB_STACK_MODE_BOTTOM_IF = 3, XCB_STACK_MODE_OPPOSITE = 4# ## *# ## @brief xcb_configure_window_value_list_t# ### type# xcb_configure_window_value_list_t* {.bycopy.} = object# x*: int32# y*: int32# width*: uint32# height*: uint32# border_width*: uint32# sibling*: xcb_window_t# stack_mode*: uint32# ## * Opcode for xcb_configure_window.# const# XCB_CONFIGURE_WINDOW* = 12# ## *# ## @brief xcb_configure_window_request_t# ### type# xcb_configure_window_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# value_mask*: uint16# pad1*: array[2, uint8]# xcb_circulate_t* = enum# XCB_CIRCULATE_RAISE_LOWEST = 0, XCB_CIRCULATE_LOWER_HIGHEST = 1# ## * Opcode for xcb_circulate_window.# const# XCB_CIRCULATE_WINDOW* = 13# ## *# ## @brief xcb_circulate_window_request_t# ### type# xcb_circulate_window_request_t* {.bycopy.} = object# major_opcode*: uint8# direction*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_get_geometry_cookie_t# ### type# xcb_get_geometry_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_geometry.# const# XCB_GET_GEOMETRY* = 14# ## *# ## @brief xcb_get_geometry_request_t# ### type# xcb_get_geometry_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# ## *# ## @brief xcb_get_geometry_reply_t# ### type# xcb_get_geometry_reply_t* {.bycopy.} = object# response_type*: uint8# depth*: uint8# sequence*: uint16# length*: uint32# root*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# border_width*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_query_tree_cookie_t# ### type# xcb_query_tree_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_tree.# const# XCB_QUERY_TREE* = 15# ## *# ## @brief xcb_query_tree_request_t# ### type# xcb_query_tree_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_query_tree_reply_t# ### type# xcb_query_tree_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# root*: xcb_window_t# parent*: xcb_window_t# children_len*: uint16# pad1*: array[14, uint8]# ## *# ## @brief xcb_intern_atom_cookie_t# ### type# xcb_intern_atom_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_intern_atom.# const# XCB_INTERN_ATOM* = 16# ## *# ## @brief xcb_intern_atom_request_t# ### type# xcb_intern_atom_request_t* {.bycopy.} = object# major_opcode*: uint8# only_if_exists*: uint8# length*: uint16# name_len*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_intern_atom_reply_t# ### type# xcb_intern_atom_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# atom*: xcb_atom_t# ## *# ## @brief xcb_get_atom_name_cookie_t# ### type# xcb_get_atom_name_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_atom_name.# const# XCB_GET_ATOM_NAME* = 17# ## *# ## @brief xcb_get_atom_name_request_t# ### type# xcb_get_atom_name_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# atom*: xcb_atom_t# ## *# ## @brief xcb_get_atom_name_reply_t# ### type# xcb_get_atom_name_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# name_len*: uint16# pad1*: array[22, uint8]# xcb_prop_mode_t* = enum# XCB_PROP_MODE_REPLACE = 0, ## *< Discard the previous property value and store the new data.# XCB_PROP_MODE_PREPEND = 1, ## *< Insert the new data before the beginning of existing data. The `format` must# ## match existing property value. If the property is undefined, it is treated as# ## defined with the correct type and format with zero-length data.# XCB_PROP_MODE_APPEND = 2# ## * Opcode for xcb_change_property.# const# XCB_CHANGE_PROPERTY* = 18# ## *# ## @brief xcb_change_property_request_t# ### type# xcb_change_property_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# window*: xcb_window_t# property*: xcb_atom_t# `type`*: xcb_atom_t# format*: uint8# pad0*: array[3, uint8]# data_len*: uint32# ## * Opcode for xcb_delete_property.# const# XCB_DELETE_PROPERTY* = 19# ## *# ## @brief xcb_delete_property_request_t# ### type# xcb_delete_property_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# property*: xcb_atom_t# xcb_get_property_type_t* = enum# XCB_GET_PROPERTY_TYPE_ANY = 0# ## *# ## @brief xcb_get_property_cookie_t# ### type# xcb_get_property_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_property.# const# XCB_GET_PROPERTY* = 20# ## *# ## @brief xcb_get_property_request_t# ### type# xcb_get_property_request_t* {.bycopy.} = object# major_opcode*: uint8# _delete*: uint8# length*: uint16# window*: xcb_window_t# property*: xcb_atom_t# `type`*: xcb_atom_t# long_offset*: uint32# long_length*: uint32# ## *# ## @brief xcb_get_property_reply_t# ### type# xcb_get_property_reply_t* {.bycopy.} = object# response_type*: uint8# format*: uint8# sequence*: uint16# length*: uint32# `type`*: xcb_atom_t# bytes_after*: uint32# value_len*: uint32# pad0*: array[12, uint8]# ## *# ## @brief xcb_list_properties_cookie_t# ### type# xcb_list_properties_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_list_properties.# const# XCB_LIST_PROPERTIES* = 21# ## *# ## @brief xcb_list_properties_request_t# ### type# xcb_list_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_list_properties_reply_t# ### type# xcb_list_properties_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# atoms_len*: uint16# pad1*: array[22, uint8]# ## * Opcode for xcb_set_selection_owner.# const# XCB_SET_SELECTION_OWNER* = 22# ## *# ## @brief xcb_set_selection_owner_request_t# ### type# xcb_set_selection_owner_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# owner*: xcb_window_t# selection*: xcb_atom_t# time*: xcb_timestamp_t# ## *# ## @brief xcb_get_selection_owner_cookie_t# ### type# xcb_get_selection_owner_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_selection_owner.# const# XCB_GET_SELECTION_OWNER* = 23# ## *# ## @brief xcb_get_selection_owner_request_t# ### type# xcb_get_selection_owner_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# selection*: xcb_atom_t# ## *# ## @brief xcb_get_selection_owner_reply_t# ### type# xcb_get_selection_owner_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# owner*: xcb_window_t# ## * Opcode for xcb_convert_selection.# const# XCB_CONVERT_SELECTION* = 24# ## *# ## @brief xcb_convert_selection_request_t# ### type# xcb_convert_selection_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# requestor*: xcb_window_t# selection*: xcb_atom_t# target*: xcb_atom_t# property*: xcb_atom_t# time*: xcb_timestamp_t# xcb_send_event_dest_t* = enum# XCB_SEND_EVENT_DEST_POINTER_WINDOW = 0, XCB_SEND_EVENT_DEST_ITEM_FOCUS = 1# ## * Opcode for xcb_send_event.# const# XCB_SEND_EVENT* = 25# ## *# ## @brief xcb_send_event_request_t# ### type# xcb_send_event_request_t* {.bycopy.} = object# major_opcode*: uint8# propagate*: uint8# length*: uint16# destination*: xcb_window_t# event_mask*: uint32# event*: array[32, char]# xcb_grab_mode_t* = enum# XCB_GRAB_MODE_SYNC = 0, ## *< The state of the keyboard appears to freeze: No further keyboard events are# ## generated by the server until the grabbing client issues a releasing# ## `AllowEvents` request or until the keyboard grab is released.# XCB_GRAB_MODE_ASYNC = 1# xcb_grab_status_t* = enum# XCB_GRAB_STATUS_SUCCESS = 0, XCB_GRAB_STATUS_ALREADY_GRABBED = 1,# XCB_GRAB_STATUS_INVALID_TIME = 2, XCB_GRAB_STATUS_NOT_VIEWABLE = 3,# XCB_GRAB_STATUS_FROZEN = 4# xcb_cursor_enum_t* = enum# XCB_CURSOR_NONE = 0# ## *# ## @brief xcb_grab_pointer_cookie_t# ### type# xcb_grab_pointer_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_grab_pointer.# const# XCB_GRAB_POINTER* = 26# ## *# ## @brief xcb_grab_pointer_request_t# ### type# xcb_grab_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# owner_events*: uint8# length*: uint16# grab_window*: xcb_window_t# event_mask*: uint16# pointer_mode*: uint8# keyboard_mode*: uint8# confine_to*: xcb_window_t# cursor*: xcb_cursor_t# time*: xcb_timestamp_t# ## *# ## @brief xcb_grab_pointer_reply_t# ### type# xcb_grab_pointer_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# ## * Opcode for xcb_ungrab_pointer.# const# XCB_UNGRAB_POINTER* = 27# ## *# ## @brief xcb_ungrab_pointer_request_t# ### type# xcb_ungrab_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# time*: xcb_timestamp_t# xcb_button_index_t* = enum# XCB_BUTTON_INDEX_ANY = 0, ## *< Any of the following (or none):# XCB_BUTTON_INDEX_1 = 1, ## *< The left mouse button.# XCB_BUTTON_INDEX_2 = 2, ## *< The right mouse button.# XCB_BUTTON_INDEX_3 = 3, ## *< The middle mouse button.# XCB_BUTTON_INDEX_4 = 4, ## *< Scroll wheel. TODO: direction?# XCB_BUTTON_INDEX_5 = 5# ## * Opcode for xcb_grab_button.# const# XCB_GRAB_BUTTON* = 28# ## *# ## @brief xcb_grab_button_request_t# ### type# xcb_grab_button_request_t* {.bycopy.} = object# major_opcode*: uint8# owner_events*: uint8# length*: uint16# grab_window*: xcb_window_t# event_mask*: uint16# pointer_mode*: uint8# keyboard_mode*: uint8# confine_to*: xcb_window_t# cursor*: xcb_cursor_t# button*: uint8# pad0*: uint8# modifiers*: uint16# ## * Opcode for xcb_ungrab_button.# const# XCB_UNGRAB_BUTTON* = 29# ## *# ## @brief xcb_ungrab_button_request_t# ### type# xcb_ungrab_button_request_t* {.bycopy.} = object# major_opcode*: uint8# button*: uint8# length*: uint16# grab_window*: xcb_window_t# modifiers*: uint16# pad0*: array[2, uint8]# ## * Opcode for xcb_change_active_pointer_grab.# const# XCB_CHANGE_ACTIVE_POINTER_GRAB* = 30# ## *# ## @brief xcb_change_active_pointer_grab_request_t# ### type# xcb_change_active_pointer_grab_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cursor*: xcb_cursor_t# time*: xcb_timestamp_t# event_mask*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_grab_keyboard_cookie_t# ### type# xcb_grab_keyboard_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_grab_keyboard.# const# XCB_GRAB_KEYBOARD* = 31# ## *# ## @brief xcb_grab_keyboard_request_t# ### type# xcb_grab_keyboard_request_t* {.bycopy.} = object# major_opcode*: uint8# owner_events*: uint8# length*: uint16# grab_window*: xcb_window_t# time*: xcb_timestamp_t# pointer_mode*: uint8# keyboard_mode*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_grab_keyboard_reply_t# ### type# xcb_grab_keyboard_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# ## * Opcode for xcb_ungrab_keyboard.# const# XCB_UNGRAB_KEYBOARD* = 32# ## *# ## @brief xcb_ungrab_keyboard_request_t# ### type# xcb_ungrab_keyboard_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# time*: xcb_timestamp_t# xcb_grab_t* = enum# XCB_GRAB_ANY = 0# ## * Opcode for xcb_grab_key.# const# XCB_GRAB_KEY* = 33# ## *# ## @brief xcb_grab_key_request_t# ### type# xcb_grab_key_request_t* {.bycopy.} = object# major_opcode*: uint8# owner_events*: uint8# length*: uint16# grab_window*: xcb_window_t# modifiers*: uint16# key*: xcb_keycode_t# pointer_mode*: uint8# keyboard_mode*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_ungrab_key.# const# XCB_UNGRAB_KEY* = 34# ## *# ## @brief xcb_ungrab_key_request_t# ### type# xcb_ungrab_key_request_t* {.bycopy.} = object# major_opcode*: uint8# key*: xcb_keycode_t# length*: uint16# grab_window*: xcb_window_t# modifiers*: uint16# pad0*: array[2, uint8]# xcb_allow_t* = enum# XCB_ALLOW_ASYNC_POINTER = 0, ## *< For AsyncPointer, if the pointer is frozen by the client, pointer event# ## processing continues normally. If the pointer is frozen twice by the client on# ## behalf of two separate grabs, AsyncPointer thaws for both. AsyncPointer has no# ## effect if the pointer is not frozen by the client, but the pointer need not be# ## grabbed by the client.# ### ## TODO: rewrite this in more understandable terms.# XCB_ALLOW_SYNC_POINTER = 1, ## *< For SyncPointer, if the pointer is frozen and actively grabbed by the client,# ## pointer event processing continues normally until the next ButtonPress or# ## ButtonRelease event is reported to the client, at which time the pointer again# ## appears to freeze. However, if the reported event causes the pointer grab to be# ## released, then the pointer does not freeze. SyncPointer has no effect if the# ## pointer is not frozen by the client or if the pointer is not grabbed by the# ## client.# XCB_ALLOW_REPLAY_POINTER = 2, ## *< For ReplayPointer, if the pointer is actively grabbed by the client and is# ## frozen as the result of an event having been sent to the client (either from# ## the activation of a GrabButton or from a previous AllowEvents with mode# ## SyncPointer but not from a GrabPointer), then the pointer grab is released and# ## that event is completely reprocessed, this time ignoring any passive grabs at# ## or above (towards the root) the grab-window of the grab just released. The# ## request has no effect if the pointer is not grabbed by the client or if the# ## pointer is not frozen as the result of an event.# XCB_ALLOW_ASYNC_KEYBOARD = 3, ## *< For AsyncKeyboard, if the keyboard is frozen by the client, keyboard event# ## processing continues normally. If the keyboard is frozen twice by the client on# ## behalf of two separate grabs, AsyncKeyboard thaws for both. AsyncKeyboard has# ## no effect if the keyboard is not frozen by the client, but the keyboard need# ## not be grabbed by the client.# XCB_ALLOW_SYNC_KEYBOARD = 4, ## *< For SyncKeyboard, if the keyboard is frozen and actively grabbed by the client,# ## keyboard event processing continues normally until the next KeyPress or# ## KeyRelease event is reported to the client, at which time the keyboard again# ## appears to freeze. However, if the reported event causes the keyboard grab to# ## be released, then the keyboard does not freeze. SyncKeyboard has no effect if# ## the keyboard is not frozen by the client or if the keyboard is not grabbed by# ## the client.# XCB_ALLOW_REPLAY_KEYBOARD = 5, ## *< For ReplayKeyboard, if the keyboard is actively grabbed by the client and is# ## frozen as the result of an event having been sent to the client (either from# ## the activation of a GrabKey or from a previous AllowEvents with mode# ## SyncKeyboard but not from a GrabKeyboard), then the keyboard grab is released# ## and that event is completely reprocessed, this time ignoring any passive grabs# ## at or above (towards the root) the grab-window of the grab just released. The# ## request has no effect if the keyboard is not grabbed by the client or if the# ## keyboard is not frozen as the result of an event.# XCB_ALLOW_ASYNC_BOTH = 6, ## *< For AsyncBoth, if the pointer and the keyboard are frozen by the client, event# ## processing for both devices continues normally. If a device is frozen twice by# ## the client on behalf of two separate grabs, AsyncBoth thaws for both. AsyncBoth# ## has no effect unless both pointer and keyboard are frozen by the client.# XCB_ALLOW_SYNC_BOTH = 7# ## * Opcode for xcb_allow_events.# const# XCB_ALLOW_EVENTS* = 35# ## *# ## @brief xcb_allow_events_request_t# ### type# xcb_allow_events_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# time*: xcb_timestamp_t# ## * Opcode for xcb_grab_server.# const# XCB_GRAB_SERVER* = 36# ## *# ## @brief xcb_grab_server_request_t# ### type# xcb_grab_server_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## * Opcode for xcb_ungrab_server.# const# XCB_UNGRAB_SERVER* = 37# ## *# ## @brief xcb_ungrab_server_request_t# ### type# xcb_ungrab_server_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_query_pointer_cookie_t# ### type# xcb_query_pointer_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_pointer.# const# XCB_QUERY_POINTER* = 38# ## *# ## @brief xcb_query_pointer_request_t# ### type# xcb_query_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_query_pointer_reply_t# ### type# xcb_query_pointer_reply_t* {.bycopy.} = object# response_type*: uint8# same_screen*: uint8# sequence*: uint16# length*: uint32# root*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# win_x*: int16# win_y*: int16# mask*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_timecoord_t# ### type# xcb_timecoord_t* {.bycopy.} = object# time*: xcb_timestamp_t# x*: int16# y*: int16# ## *# ## @brief xcb_timecoord_iterator_t# ### type# xcb_timecoord_iterator_t* {.bycopy.} = object# data*: ptr xcb_timecoord_t# rem*: cint# index*: cint# ## *# ## @brief xcb_get_motion_events_cookie_t# ### type# xcb_get_motion_events_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_motion_events.# const# XCB_GET_MOTION_EVENTS* = 39# ## *# ## @brief xcb_get_motion_events_request_t# ### type# xcb_get_motion_events_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# start*: xcb_timestamp_t# stop*: xcb_timestamp_t# ## *# ## @brief xcb_get_motion_events_reply_t# ### type# xcb_get_motion_events_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# events_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_translate_coordinates_cookie_t# ### type# xcb_translate_coordinates_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_translate_coordinates.# const# XCB_TRANSLATE_COORDINATES* = 40# ## *# ## @brief xcb_translate_coordinates_request_t# ### type# xcb_translate_coordinates_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# src_window*: xcb_window_t# dst_window*: xcb_window_t# src_x*: int16# src_y*: int16# ## *# ## @brief xcb_translate_coordinates_reply_t# ### type# xcb_translate_coordinates_reply_t* {.bycopy.} = object# response_type*: uint8# same_screen*: uint8# sequence*: uint16# length*: uint32# child*: xcb_window_t# dst_x*: int16# dst_y*: int16# ## * Opcode for xcb_warp_pointer.# const# XCB_WARP_POINTER* = 41# ## *# ## @brief xcb_warp_pointer_request_t# ### type# xcb_warp_pointer_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# src_window*: xcb_window_t# dst_window*: xcb_window_t# src_x*: int16# src_y*: int16# src_width*: uint16# src_height*: uint16# dst_x*: int16# dst_y*: int16# xcb_input_focus_t* = enum# XCB_INPUT_FOCUS_NONE = 0, ## *< The focus reverts to `XCB_NONE`, so no window will have the input focus.# XCB_INPUT_FOCUS_POINTER_ROOT = 1, ## *< The focus reverts to `XCB_POINTER_ROOT` respectively. When the focus reverts,# ## FocusIn and FocusOut events are generated, but the last-focus-change time is# ## not changed.# XCB_INPUT_FOCUS_PARENT = 2, ## *< The focus reverts to the parent (or closest viewable ancestor) and the new# ## revert_to value is `XCB_INPUT_FOCUS_NONE`.# XCB_INPUT_FOCUS_FOLLOW_KEYBOARD = 3# ## * Opcode for xcb_set_input_focus.# const# XCB_SET_INPUT_FOCUS* = 42# ## *# ## @brief xcb_set_input_focus_request_t# ### type# xcb_set_input_focus_request_t* {.bycopy.} = object# major_opcode*: uint8# revert_to*: uint8# length*: uint16# focus*: xcb_window_t# time*: xcb_timestamp_t# ## *# ## @brief xcb_get_input_focus_cookie_t# ### type# xcb_get_input_focus_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_input_focus.# const# XCB_GET_INPUT_FOCUS* = 43# ## *# ## @brief xcb_get_input_focus_request_t# ### type# xcb_get_input_focus_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_input_focus_reply_t# ### type# xcb_get_input_focus_reply_t* {.bycopy.} = object# response_type*: uint8# revert_to*: uint8# sequence*: uint16# length*: uint32# focus*: xcb_window_t# ## *# ## @brief xcb_query_keymap_cookie_t# ### type# xcb_query_keymap_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_keymap.# const# XCB_QUERY_KEYMAP* = 44# ## *# ## @brief xcb_query_keymap_request_t# ### type# xcb_query_keymap_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_query_keymap_reply_t# ### type# xcb_query_keymap_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# keys*: array[32, uint8]# ## * Opcode for xcb_open_font.# const# XCB_OPEN_FONT* = 45# ## *# ## @brief xcb_open_font_request_t# ### type# xcb_open_font_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# fid*: xcb_font_t# name_len*: uint16# pad1*: array[2, uint8]# ## * Opcode for xcb_close_font.# const# XCB_CLOSE_FONT* = 46# ## *# ## @brief xcb_close_font_request_t# ### type# xcb_close_font_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# font*: xcb_font_t# xcb_font_draw_t* = enum# XCB_FONT_DRAW_LEFT_TO_RIGHT = 0, XCB_FONT_DRAW_RIGHT_TO_LEFT = 1# ## *# ## @brief xcb_fontprop_t# ### type# xcb_fontprop_t* {.bycopy.} = object# name*: xcb_atom_t# value*: uint32# ## *# ## @brief xcb_fontprop_iterator_t# ### type# xcb_fontprop_iterator_t* {.bycopy.} = object# data*: ptr xcb_fontprop_t# rem*: cint# index*: cint# ## *# ## @brief xcb_charinfo_t# ### type# xcb_charinfo_t* {.bycopy.} = object# left_side_bearing*: int16# right_side_bearing*: int16# character_width*: int16# ascent*: int16# descent*: int16# attributes*: uint16# ## *# ## @brief xcb_charinfo_iterator_t# ### type# xcb_charinfo_iterator_t* {.bycopy.} = object# data*: ptr xcb_charinfo_t# rem*: cint# index*: cint# ## *# ## @brief xcb_query_font_cookie_t# ### type# xcb_query_font_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_font.# const# XCB_QUERY_FONT* = 47# ## *# ## @brief xcb_query_font_request_t# ### type# xcb_query_font_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# font*: xcb_fontable_t# ## *# ## @brief xcb_query_font_reply_t# ### type# xcb_query_font_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# min_bounds*: xcb_charinfo_t# pad1*: array[4, uint8]# max_bounds*: xcb_charinfo_t# pad2*: array[4, uint8]# min_char_or_byte2*: uint16# max_char_or_byte2*: uint16# default_char*: uint16# properties_len*: uint16# draw_direction*: uint8# min_byte1*: uint8# max_byte1*: uint8# all_chars_exist*: uint8# font_ascent*: int16# font_descent*: int16# char_infos_len*: uint32# ## *# ## @brief xcb_query_text_extents_cookie_t# ### type# xcb_query_text_extents_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_text_extents.# const# XCB_QUERY_TEXT_EXTENTS* = 48# ## *# ## @brief xcb_query_text_extents_request_t# ### type# xcb_query_text_extents_request_t* {.bycopy.} = object# major_opcode*: uint8# odd_length*: uint8# length*: uint16# font*: xcb_fontable_t# ## *# ## @brief xcb_query_text_extents_reply_t# ### type# xcb_query_text_extents_reply_t* {.bycopy.} = object# response_type*: uint8# draw_direction*: uint8# sequence*: uint16# length*: uint32# font_ascent*: int16# font_descent*: int16# overall_ascent*: int16# overall_descent*: int16# overall_width*: int32# overall_left*: int32# overall_right*: int32# ## *# ## @brief xcb_str_t# ### type# xcb_str_t* {.bycopy.} = object# name_len*: uint8# ## *# ## @brief xcb_str_iterator_t# ### type# xcb_str_iterator_t* {.bycopy.} = object# data*: ptr xcb_str_t# rem*: cint# index*: cint# ## *# ## @brief xcb_list_fonts_cookie_t# ### type# xcb_list_fonts_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_list_fonts.# const# XCB_LIST_FONTS* = 49# ## *# ## @brief xcb_list_fonts_request_t# ### type# xcb_list_fonts_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# max_names*: uint16# pattern_len*: uint16# ## *# ## @brief xcb_list_fonts_reply_t# ### type# xcb_list_fonts_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# names_len*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_list_fonts_with_info_cookie_t# ### type# xcb_list_fonts_with_info_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_list_fonts_with_info.# const# XCB_LIST_FONTS_WITH_INFO* = 50# ## *# ## @brief xcb_list_fonts_with_info_request_t# ### type# xcb_list_fonts_with_info_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# max_names*: uint16# pattern_len*: uint16# ## *# ## @brief xcb_list_fonts_with_info_reply_t# ### type# xcb_list_fonts_with_info_reply_t* {.bycopy.} = object# response_type*: uint8# name_len*: uint8# sequence*: uint16# length*: uint32# min_bounds*: xcb_charinfo_t# pad0*: array[4, uint8]# max_bounds*: xcb_charinfo_t# pad1*: array[4, uint8]# min_char_or_byte2*: uint16# max_char_or_byte2*: uint16# default_char*: uint16# properties_len*: uint16# draw_direction*: uint8# min_byte1*: uint8# max_byte1*: uint8# all_chars_exist*: uint8# font_ascent*: int16# font_descent*: int16# replies_hint*: uint32# ## * Opcode for xcb_set_font_path.# const# XCB_SET_FONT_PATH* = 51# ## *# ## @brief xcb_set_font_path_request_t# ### type# xcb_set_font_path_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# font_qty*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_get_font_path_cookie_t# ### type# xcb_get_font_path_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_font_path.# const# XCB_GET_FONT_PATH* = 52# ## *# ## @brief xcb_get_font_path_request_t# ### type# xcb_get_font_path_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_font_path_reply_t# ### type# xcb_get_font_path_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# path_len*: uint16# pad1*: array[22, uint8]# ## * Opcode for xcb_create_pixmap.# const# XCB_CREATE_PIXMAP* = 53# ## *# ## @brief xcb_create_pixmap_request_t# ### type# xcb_create_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# depth*: uint8# length*: uint16# pid*: xcb_pixmap_t# drawable*: xcb_drawable_t# width*: uint16# height*: uint16# ## * Opcode for xcb_free_pixmap.# const# XCB_FREE_PIXMAP* = 54# ## *# ## @brief xcb_free_pixmap_request_t# ### type# xcb_free_pixmap_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# pixmap*: xcb_pixmap_t# xcb_gc_t* = enum# XCB_GC_FUNCTION = 1, ## *< TODO: Refer to GX# XCB_GC_PLANE_MASK = 2, ## *< In graphics operations, given a source and destination pixel, the result is# ## computed bitwise on corresponding bits of the pixels; that is, a Boolean# ## operation is performed in each bit plane. The plane-mask restricts the# ## operation to a subset of planes, so the result is:# ### ## ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask))# XCB_GC_FOREGROUND = 4, ## *< Foreground colorpixel.# XCB_GC_BACKGROUND = 8, ## *< Background colorpixel.# XCB_GC_LINE_WIDTH = 16, ## *< The line-width is measured in pixels and can be greater than or equal to one, a wide line, or the# ## special value zero, a thin line.# XCB_GC_LINE_STYLE = 32, ## *< The line-style defines which sections of a line are drawn:# ## Solid The full path of the line is drawn.# ## DoubleDash The full path of the line is drawn, but the even dashes are filled differently# ## than the odd dashes (see fill-style), with Butt cap-style used where even and# ## odd dashes meet.# ## OnOffDash Only the even dashes are drawn, and cap-style applies to all internal ends of# ## the individual dashes (except NotLast is treated as Butt).# XCB_GC_CAP_STYLE = 64, ## *< The cap-style defines how the endpoints of a path are drawn:# ## NotLast The result is equivalent to Butt, except that for a line-width of zero the final# ## endpoint is not drawn.# ## Butt The result is square at the endpoint (perpendicular to the slope of the line)# ## with no projection beyond.# ## Round The result is a circular arc with its diameter equal to the line-width, centered# ## on the endpoint; it is equivalent to Butt for line-width zero.# ## Projecting The result is square at the end, but the path continues beyond the endpoint for# ## a distance equal to half the line-width; it is equivalent to Butt for line-width# ## zero.# XCB_GC_JOIN_STYLE = 128, ## *< The join-style defines how corners are drawn for wide lines:# ## Miter The outer edges of the two lines extend to meet at an angle. However, if the# ## angle is less than 11 degrees, a Bevel join-style is used instead.# ## Round The result is a circular arc with a diameter equal to the line-width, centered# ## on the joinpoint.# ## Bevel The result is Butt endpoint styles, and then the triangular notch is filled.# XCB_GC_FILL_STYLE = 256, ## *< The fill-style defines the contents of the source for line, text, and fill requests. For all text and fill# ## requests (for example, PolyText8, PolyText16, PolyFillRectangle, FillPoly, and PolyFillArc)# ## as well as for line requests with line-style Solid, (for example, PolyLine, PolySegment,# ## PolyRectangle, PolyArc) and for the even dashes for line requests with line-style OnOffDash# ## or DoubleDash:# ## Solid Foreground# ## Tiled Tile# ## OpaqueStippled A tile with the same width and height as stipple but with background# ## everywhere stipple has a zero and with foreground everywhere stipple# ## has a one# ## Stippled Foreground masked by stipple# ## For the odd dashes for line requests with line-style DoubleDash:# ## Solid Background# ## Tiled Same as for even dashes# ## OpaqueStippled Same as for even dashes# ## Stippled Background masked by stipple# XCB_GC_FILL_RULE = 512, ## *<# XCB_GC_TILE = 1024, ## *< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all# ## dimensions. When that plane is superimposed on the drawable for use in a graphics operation,# ## the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable# ## specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the# ## origin of whatever destination drawable is specified in a graphics request.# ## The tile pixmap must have the same root and depth as the gcontext (or a Match error results).# ## The stipple pixmap must have depth one and must have the same root as the gcontext (or a# ## Match error results). For fill-style Stippled (but not fill-style# ## OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an# ## additional clip mask to be ANDed with the clip-mask.# ## Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than# ## others.# XCB_GC_STIPPLE = 2048, ## *< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all# ## dimensions. When that plane is superimposed on the drawable for use in a graphics operation,# ## the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable# ## specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the# ## origin of whatever destination drawable is specified in a graphics request.# ## The tile pixmap must have the same root and depth as the gcontext (or a Match error results).# ## The stipple pixmap must have depth one and must have the same root as the gcontext (or a# ## Match error results). For fill-style Stippled (but not fill-style# ## OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an# ## additional clip mask to be ANDed with the clip-mask.# ## Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than# ## others.# XCB_GC_TILE_STIPPLE_ORIGIN_X = 4096, ## *< TODO# XCB_GC_TILE_STIPPLE_ORIGIN_Y = 8192, ## *< TODO# XCB_GC_FONT = 16384, ## *< Which font to use for the `ImageText8` and `ImageText16` requests.# XCB_GC_SUBWINDOW_MODE = 32768, ## *< For ClipByChildren, both source and destination windows are additionally# ## clipped by all viewable InputOutput children. For IncludeInferiors, neither# ## source nor destination window is# ## clipped by inferiors. This will result in including subwindow contents in the source and drawing# ## through subwindow boundaries of the destination. The use of IncludeInferiors with a source or# ## destination window of one depth with mapped inferiors of differing depth is not illegal, but the# ## semantics is undefined by the core protocol.# XCB_GC_GRAPHICS_EXPOSURES = 65536, ## *< Whether ExposureEvents should be generated (1) or not (0).# ### ## The default is 1.# XCB_GC_CLIP_ORIGIN_X = 131072, ## *< TODO# XCB_GC_CLIP_ORIGIN_Y = 262144, ## *< TODO# XCB_GC_CLIP_MASK = 524288, ## *< The clip-mask restricts writes to the destination drawable. Only pixels where the clip-mask has# ## bits set to 1 are drawn. Pixels are not drawn outside the area covered by the clip-mask or where# ## the clip-mask has bits set to 0. The clip-mask affects all graphics requests, but it does not clip# ## sources. The clip-mask origin is interpreted relative to the origin of whatever destination drawable is specified in a graphics request. If a pixmap is specified as the clip-mask, it must have# ## depth 1 and have the same root as the gcontext (or a Match error results). If clip-mask is None,# ## then pixels are always drawn, regardless of the clip origin. The clip-mask can also be set with the# ## SetClipRectangles request.# XCB_GC_DASH_OFFSET = 1048576, ## *< TODO# XCB_GC_DASH_LIST = 2097152, ## *< TODO# XCB_GC_ARC_MODE = 4194304# xcb_gx_t* = enum# XCB_GX_CLEAR = 0, XCB_GX_AND = 1, XCB_GX_AND_REVERSE = 2, XCB_GX_COPY = 3,# XCB_GX_AND_INVERTED = 4, XCB_GX_NOOP = 5, XCB_GX_XOR = 6, XCB_GX_OR = 7, XCB_GX_NOR = 8,# XCB_GX_EQUIV = 9, XCB_GX_INVERT = 10, XCB_GX_OR_REVERSE = 11,# XCB_GX_COPY_INVERTED = 12, XCB_GX_OR_INVERTED = 13, XCB_GX_NAND = 14, XCB_GX_SET = 15# xcb_line_style_t* = enum# XCB_LINE_STYLE_SOLID = 0, XCB_LINE_STYLE_ON_OFF_DASH = 1,# XCB_LINE_STYLE_DOUBLE_DASH = 2# xcb_cap_style_t* = enum# XCB_CAP_STYLE_NOT_LAST = 0, XCB_CAP_STYLE_BUTT = 1, XCB_CAP_STYLE_ROUND = 2,# XCB_CAP_STYLE_PROJECTING = 3# xcb_join_style_t* = enum# XCB_JOIN_STYLE_MITER = 0, XCB_JOIN_STYLE_ROUND = 1, XCB_JOIN_STYLE_BEVEL = 2# xcb_fill_style_t* = enum# XCB_FILL_STYLE_SOLID = 0, XCB_FILL_STYLE_TILED = 1, XCB_FILL_STYLE_STIPPLED = 2,# XCB_FILL_STYLE_OPAQUE_STIPPLED = 3# xcb_fill_rule_t* = enum# XCB_FILL_RULE_EVEN_ODD = 0, XCB_FILL_RULE_WINDING = 1# xcb_subwindow_mode_t* = enum# XCB_SUBWINDOW_MODE_CLIP_BY_CHILDREN = 0,# XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS = 1# xcb_arc_mode_t* = enum# XCB_ARC_MODE_CHORD = 0, XCB_ARC_MODE_PIE_SLICE = 1# ## *# ## @brief xcb_create_gc_value_list_t# ### type# xcb_create_gc_value_list_t* {.bycopy.} = object# function*: uint32# plane_mask*: uint32# foreground*: uint32# background*: uint32# line_width*: uint32# line_style*: uint32# cap_style*: uint32# join_style*: uint32# fill_style*: uint32# fill_rule*: uint32# tile*: xcb_pixmap_t# stipple*: xcb_pixmap_t# tile_stipple_x_origin*: int32# tile_stipple_y_origin*: int32# font*: xcb_font_t# subwindow_mode*: uint32# graphics_exposures*: xcb_bool32_t# clip_x_origin*: int32# clip_y_origin*: int32# clip_mask*: xcb_pixmap_t# dash_offset*: uint32# dashes*: uint32# arc_mode*: uint32# ## * Opcode for xcb_create_gc.# const# XCB_CREATE_GC* = 55# ## *# ## @brief xcb_create_gc_request_t# ### type# xcb_create_gc_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cid*: xcb_gcontext_t# drawable*: xcb_drawable_t# value_mask*: uint32# ## *# ## @brief xcb_change_gc_value_list_t# ### type# xcb_change_gc_value_list_t* {.bycopy.} = object# function*: uint32# plane_mask*: uint32# foreground*: uint32# background*: uint32# line_width*: uint32# line_style*: uint32# cap_style*: uint32# join_style*: uint32# fill_style*: uint32# fill_rule*: uint32# tile*: xcb_pixmap_t# stipple*: xcb_pixmap_t# tile_stipple_x_origin*: int32# tile_stipple_y_origin*: int32# font*: xcb_font_t# subwindow_mode*: uint32# graphics_exposures*: xcb_bool32_t# clip_x_origin*: int32# clip_y_origin*: int32# clip_mask*: xcb_pixmap_t# dash_offset*: uint32# dashes*: uint32# arc_mode*: uint32# ## * Opcode for xcb_change_gc.# const# XCB_CHANGE_GC* = 56# ## *# ## @brief xcb_change_gc_request_t# ### type# xcb_change_gc_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# gc*: xcb_gcontext_t# value_mask*: uint32# ## * Opcode for xcb_copy_gc.# const# XCB_COPY_GC* = 57# ## *# ## @brief xcb_copy_gc_request_t# ### type# xcb_copy_gc_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# src_gc*: xcb_gcontext_t# dst_gc*: xcb_gcontext_t# value_mask*: uint32# ## * Opcode for xcb_set_dashes.# const# XCB_SET_DASHES* = 58# ## *# ## @brief xcb_set_dashes_request_t# ### type# xcb_set_dashes_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# gc*: xcb_gcontext_t# dash_offset*: uint16# dashes_len*: uint16# xcb_clip_ordering_t* = enum# XCB_CLIP_ORDERING_UNSORTED = 0, XCB_CLIP_ORDERING_Y_SORTED = 1,# XCB_CLIP_ORDERING_YX_SORTED = 2, XCB_CLIP_ORDERING_YX_BANDED = 3# ## * Opcode for xcb_set_clip_rectangles.# const# XCB_SET_CLIP_RECTANGLES* = 59# ## *# ## @brief xcb_set_clip_rectangles_request_t# ### type# xcb_set_clip_rectangles_request_t* {.bycopy.} = object# major_opcode*: uint8# ordering*: uint8# length*: uint16# gc*: xcb_gcontext_t# clip_x_origin*: int16# clip_y_origin*: int16# ## * Opcode for xcb_free_gc.# const# XCB_FREE_GC* = 60# ## *# ## @brief xcb_free_gc_request_t# ### type# xcb_free_gc_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# gc*: xcb_gcontext_t# ## * Opcode for xcb_clear_area.# const# XCB_CLEAR_AREA* = 61# ## *# ## @brief xcb_clear_area_request_t# ### type# xcb_clear_area_request_t* {.bycopy.} = object# major_opcode*: uint8# exposures*: uint8# length*: uint16# window*: xcb_window_t# x*: int16# y*: int16# width*: uint16# height*: uint16# ## * Opcode for xcb_copy_area.# const# XCB_COPY_AREA* = 62# ## *# ## @brief xcb_copy_area_request_t# ### type# xcb_copy_area_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# src_drawable*: xcb_drawable_t# dst_drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# src_x*: int16# src_y*: int16# dst_x*: int16# dst_y*: int16# width*: uint16# height*: uint16# ## * Opcode for xcb_copy_plane.# const# XCB_COPY_PLANE* = 63# ## *# ## @brief xcb_copy_plane_request_t# ### type# xcb_copy_plane_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# src_drawable*: xcb_drawable_t# dst_drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# src_x*: int16# src_y*: int16# dst_x*: int16# dst_y*: int16# width*: uint16# height*: uint16# bit_plane*: uint32# xcb_coord_mode_t* = enum# XCB_COORD_MODE_ORIGIN = 0, ## *< Treats all coordinates as relative to the origin.# XCB_COORD_MODE_PREVIOUS = 1# ## * Opcode for xcb_poly_point.# const# XCB_POLY_POINT* = 64# ## *# ## @brief xcb_poly_point_request_t# ### type# xcb_poly_point_request_t* {.bycopy.} = object# major_opcode*: uint8# coordinate_mode*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# ## * Opcode for xcb_poly_line.# const# XCB_POLY_LINE* = 65# ## *# ## @brief xcb_poly_line_request_t# ### type# xcb_poly_line_request_t* {.bycopy.} = object# major_opcode*: uint8# coordinate_mode*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# ## *# ## @brief xcb_segment_t# ### type# xcb_segment_t* {.bycopy.} = object# x1*: int16# y1*: int16# x2*: int16# y2*: int16# ## *# ## @brief xcb_segment_iterator_t# ### type# xcb_segment_iterator_t* {.bycopy.} = object# data*: ptr xcb_segment_t# rem*: cint# index*: cint# ## * Opcode for xcb_poly_segment.# const# XCB_POLY_SEGMENT* = 66# ## *# ## @brief xcb_poly_segment_request_t# ### type# xcb_poly_segment_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# ## * Opcode for xcb_poly_rectangle.# const# XCB_POLY_RECTANGLE* = 67# ## *# ## @brief xcb_poly_rectangle_request_t# ### type# xcb_poly_rectangle_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# ## * Opcode for xcb_poly_arc.# const# XCB_POLY_ARC* = 68# ## *# ## @brief xcb_poly_arc_request_t# ### type# xcb_poly_arc_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# xcb_poly_shape_t* = enum# XCB_POLY_SHAPE_COMPLEX = 0, XCB_POLY_SHAPE_NONCONVEX = 1,# XCB_POLY_SHAPE_CONVEX = 2# ## * Opcode for xcb_fill_poly.# const# XCB_FILL_POLY* = 69# ## *# ## @brief xcb_fill_poly_request_t# ### type# xcb_fill_poly_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# shape*: uint8# coordinate_mode*: uint8# pad1*: array[2, uint8]# ## * Opcode for xcb_poly_fill_rectangle.# const# XCB_POLY_FILL_RECTANGLE* = 70# ## *# ## @brief xcb_poly_fill_rectangle_request_t# ### type# xcb_poly_fill_rectangle_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# ## * Opcode for xcb_poly_fill_arc.# const# XCB_POLY_FILL_ARC* = 71# ## *# ## @brief xcb_poly_fill_arc_request_t# ### type# xcb_poly_fill_arc_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# xcb_image_format_t* = enum# XCB_IMAGE_FORMAT_XY_BITMAP = 0, XCB_IMAGE_FORMAT_XY_PIXMAP = 1,# XCB_IMAGE_FORMAT_Z_PIXMAP = 2# ## * Opcode for xcb_put_image.# const# XCB_PUT_IMAGE* = 72# ## *# ## @brief xcb_put_image_request_t# ### type# xcb_put_image_request_t* {.bycopy.} = object# major_opcode*: uint8# format*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# width*: uint16# height*: uint16# dst_x*: int16# dst_y*: int16# left_pad*: uint8# depth*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_get_image_cookie_t# ### type# xcb_get_image_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_image.# const# XCB_GET_IMAGE* = 73# ## *# ## @brief xcb_get_image_request_t# ### type# xcb_get_image_request_t* {.bycopy.} = object# major_opcode*: uint8# format*: uint8# length*: uint16# drawable*: xcb_drawable_t# x*: int16# y*: int16# width*: uint16# height*: uint16# plane_mask*: uint32# ## *# ## @brief xcb_get_image_reply_t# ### type# xcb_get_image_reply_t* {.bycopy.} = object# response_type*: uint8# depth*: uint8# sequence*: uint16# length*: uint32# visual*: xcb_visualid_t# pad0*: array[20, uint8]# ## * Opcode for xcb_poly_text_8.# const# XCB_POLY_TEXT_8* = 74# ## *# ## @brief xcb_poly_text_8_request_t# ### type# xcb_poly_text_8_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# x*: int16# y*: int16# ## * Opcode for xcb_poly_text_16.# const# XCB_POLY_TEXT_16* = 75# ## *# ## @brief xcb_poly_text_16_request_t# ### type# xcb_poly_text_16_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# x*: int16# y*: int16# ## * Opcode for xcb_image_text_8.# const# XCB_IMAGE_TEXT_8* = 76# ## *# ## @brief xcb_image_text_8_request_t# ### type# xcb_image_text_8_request_t* {.bycopy.} = object# major_opcode*: uint8# string_len*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# x*: int16# y*: int16# ## * Opcode for xcb_image_text_16.# const# XCB_IMAGE_TEXT_16* = 77# ## *# ## @brief xcb_image_text_16_request_t# ### type# xcb_image_text_16_request_t* {.bycopy.} = object# major_opcode*: uint8# string_len*: uint8# length*: uint16# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# x*: int16# y*: int16# xcb_colormap_alloc_t* = enum# XCB_COLORMAP_ALLOC_NONE = 0, XCB_COLORMAP_ALLOC_ALL = 1# ## * Opcode for xcb_create_colormap.# const# XCB_CREATE_COLORMAP* = 78# ## *# ## @brief xcb_create_colormap_request_t# ### type# xcb_create_colormap_request_t* {.bycopy.} = object# major_opcode*: uint8# alloc*: uint8# length*: uint16# mid*: xcb_colormap_t# window*: xcb_window_t# visual*: xcb_visualid_t# ## * Opcode for xcb_free_colormap.# const# XCB_FREE_COLORMAP* = 79# ## *# ## @brief xcb_free_colormap_request_t# ### type# xcb_free_colormap_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# ## * Opcode for xcb_copy_colormap_and_free.# const# XCB_COPY_COLORMAP_AND_FREE* = 80# ## *# ## @brief xcb_copy_colormap_and_free_request_t# ### type# xcb_copy_colormap_and_free_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# mid*: xcb_colormap_t# src_cmap*: xcb_colormap_t# ## * Opcode for xcb_install_colormap.# const# XCB_INSTALL_COLORMAP* = 81# ## *# ## @brief xcb_install_colormap_request_t# ### type# xcb_install_colormap_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# ## * Opcode for xcb_uninstall_colormap.# const# XCB_UNINSTALL_COLORMAP* = 82# ## *# ## @brief xcb_uninstall_colormap_request_t# ### type# xcb_uninstall_colormap_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# ## *# ## @brief xcb_list_installed_colormaps_cookie_t# ### type# xcb_list_installed_colormaps_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_list_installed_colormaps.# const# XCB_LIST_INSTALLED_COLORMAPS* = 83# ## *# ## @brief xcb_list_installed_colormaps_request_t# ### type# xcb_list_installed_colormaps_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_list_installed_colormaps_reply_t# ### type# xcb_list_installed_colormaps_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# cmaps_len*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_alloc_color_cookie_t# ### type# xcb_alloc_color_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_alloc_color.# const# XCB_ALLOC_COLOR* = 84# ## *# ## @brief xcb_alloc_color_request_t# ### type# xcb_alloc_color_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# red*: uint16# green*: uint16# blue*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_alloc_color_reply_t# ### type# xcb_alloc_color_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# red*: uint16# green*: uint16# blue*: uint16# pad1*: array[2, uint8]# pixel*: uint32# ## *# ## @brief xcb_alloc_named_color_cookie_t# ### type# xcb_alloc_named_color_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_alloc_named_color.# const# XCB_ALLOC_NAMED_COLOR* = 85# ## *# ## @brief xcb_alloc_named_color_request_t# ### type# xcb_alloc_named_color_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# name_len*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_alloc_named_color_reply_t# ### type# xcb_alloc_named_color_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pixel*: uint32# exact_red*: uint16# exact_green*: uint16# exact_blue*: uint16# visual_red*: uint16# visual_green*: uint16# visual_blue*: uint16# ## *# ## @brief xcb_alloc_color_cells_cookie_t# ### type# xcb_alloc_color_cells_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_alloc_color_cells.# const# XCB_ALLOC_COLOR_CELLS* = 86# ## *# ## @brief xcb_alloc_color_cells_request_t# ### type# xcb_alloc_color_cells_request_t* {.bycopy.} = object# major_opcode*: uint8# contiguous*: uint8# length*: uint16# cmap*: xcb_colormap_t# colors*: uint16# planes*: uint16# ## *# ## @brief xcb_alloc_color_cells_reply_t# ### type# xcb_alloc_color_cells_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pixels_len*: uint16# masks_len*: uint16# pad1*: array[20, uint8]# ## *# ## @brief xcb_alloc_color_planes_cookie_t# ### type# xcb_alloc_color_planes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_alloc_color_planes.# const# XCB_ALLOC_COLOR_PLANES* = 87# ## *# ## @brief xcb_alloc_color_planes_request_t# ### type# xcb_alloc_color_planes_request_t* {.bycopy.} = object# major_opcode*: uint8# contiguous*: uint8# length*: uint16# cmap*: xcb_colormap_t# colors*: uint16# reds*: uint16# greens*: uint16# blues*: uint16# ## *# ## @brief xcb_alloc_color_planes_reply_t# ### type# xcb_alloc_color_planes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pixels_len*: uint16# pad1*: array[2, uint8]# red_mask*: uint32# green_mask*: uint32# blue_mask*: uint32# pad2*: array[8, uint8]# ## * Opcode for xcb_free_colors.# const# XCB_FREE_COLORS* = 88# ## *# ## @brief xcb_free_colors_request_t# ### type# xcb_free_colors_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# plane_mask*: uint32# xcb_color_flag_t* = enum# XCB_COLOR_FLAG_RED = 1, XCB_COLOR_FLAG_GREEN = 2, XCB_COLOR_FLAG_BLUE = 4# ## *# ## @brief xcb_coloritem_t# ### type# xcb_coloritem_t* {.bycopy.} = object# pixel*: uint32# red*: uint16# green*: uint16# blue*: uint16# flags*: uint8# pad0*: uint8# ## *# ## @brief xcb_coloritem_iterator_t# ### type# xcb_coloritem_iterator_t* {.bycopy.} = object# data*: ptr xcb_coloritem_t# rem*: cint# index*: cint# ## * Opcode for xcb_store_colors.# const# XCB_STORE_COLORS* = 89# ## *# ## @brief xcb_store_colors_request_t# ### type# xcb_store_colors_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# ## * Opcode for xcb_store_named_color.# const# XCB_STORE_NAMED_COLOR* = 90# ## *# ## @brief xcb_store_named_color_request_t# ### type# xcb_store_named_color_request_t* {.bycopy.} = object# major_opcode*: uint8# flags*: uint8# length*: uint16# cmap*: xcb_colormap_t# pixel*: uint32# name_len*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_rgb_t# ### type# xcb_rgb_t* {.bycopy.} = object# red*: uint16# green*: uint16# blue*: uint16# pad0*: array[2, uint8]# ## *# ## @brief xcb_rgb_iterator_t# ### type# xcb_rgb_iterator_t* {.bycopy.} = object# data*: ptr xcb_rgb_t# rem*: cint# index*: cint# ## *# ## @brief xcb_query_colors_cookie_t# ### type# xcb_query_colors_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_colors.# const# XCB_QUERY_COLORS* = 91# ## *# ## @brief xcb_query_colors_request_t# ### type# xcb_query_colors_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# ## *# ## @brief xcb_query_colors_reply_t# ### type# xcb_query_colors_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# colors_len*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_lookup_color_cookie_t# ### type# xcb_lookup_color_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_lookup_color.# const# XCB_LOOKUP_COLOR* = 92# ## *# ## @brief xcb_lookup_color_request_t# ### type# xcb_lookup_color_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cmap*: xcb_colormap_t# name_len*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_lookup_color_reply_t# ### type# xcb_lookup_color_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# exact_red*: uint16# exact_green*: uint16# exact_blue*: uint16# visual_red*: uint16# visual_green*: uint16# visual_blue*: uint16# xcb_pixmap_enum_t* = enum# XCB_PIXMAP_NONE = 0# ## * Opcode for xcb_create_cursor.# const# XCB_CREATE_CURSOR* = 93# ## *# ## @brief xcb_create_cursor_request_t# ### type# xcb_create_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cid*: xcb_cursor_t# source*: xcb_pixmap_t# mask*: xcb_pixmap_t# fore_red*: uint16# fore_green*: uint16# fore_blue*: uint16# back_red*: uint16# back_green*: uint16# back_blue*: uint16# x*: uint16# y*: uint16# xcb_font_enum_t* = enum# XCB_FONT_NONE = 0# ## * Opcode for xcb_create_glyph_cursor.# const# XCB_CREATE_GLYPH_CURSOR* = 94# ## *# ## @brief xcb_create_glyph_cursor_request_t# ### type# xcb_create_glyph_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cid*: xcb_cursor_t# source_font*: xcb_font_t# mask_font*: xcb_font_t# source_char*: uint16# mask_char*: uint16# fore_red*: uint16# fore_green*: uint16# fore_blue*: uint16# back_red*: uint16# back_green*: uint16# back_blue*: uint16# ## * Opcode for xcb_free_cursor.# const# XCB_FREE_CURSOR* = 95# ## *# ## @brief xcb_free_cursor_request_t# ### type# xcb_free_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cursor*: xcb_cursor_t# ## * Opcode for xcb_recolor_cursor.# const# XCB_RECOLOR_CURSOR* = 96# ## *# ## @brief xcb_recolor_cursor_request_t# ### type# xcb_recolor_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# cursor*: xcb_cursor_t# fore_red*: uint16# fore_green*: uint16# fore_blue*: uint16# back_red*: uint16# back_green*: uint16# back_blue*: uint16# xcb_query_shape_of_t* = enum# XCB_QUERY_SHAPE_OF_LARGEST_CURSOR = 0, XCB_QUERY_SHAPE_OF_FASTEST_TILE = 1,# XCB_QUERY_SHAPE_OF_FASTEST_STIPPLE = 2# ## *# ## @brief xcb_query_best_size_cookie_t# ### type# xcb_query_best_size_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_best_size.# const# XCB_QUERY_BEST_SIZE* = 97# ## *# ## @brief xcb_query_best_size_request_t# ### type# xcb_query_best_size_request_t* {.bycopy.} = object# major_opcode*: uint8# _class*: uint8# length*: uint16# drawable*: xcb_drawable_t# width*: uint16# height*: uint16# ## *# ## @brief xcb_query_best_size_reply_t# ### type# xcb_query_best_size_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width*: uint16# height*: uint16# ## *# ## @brief xcb_query_extension_cookie_t# ### type# xcb_query_extension_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_query_extension.# const# XCB_QUERY_EXTENSION* = 98# ## *# ## @brief xcb_query_extension_request_t# ### type# xcb_query_extension_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# name_len*: uint16# pad1*: array[2, uint8]# ## *# ## @brief xcb_query_extension_reply_t# ### type# xcb_query_extension_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# present*: uint8# major_opcode*: uint8# first_event*: uint8# first_error*: uint8# ## *# ## @brief xcb_list_extensions_cookie_t# ### type# xcb_list_extensions_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_list_extensions.# const# XCB_LIST_EXTENSIONS* = 99# ## *# ## @brief xcb_list_extensions_request_t# ### type# xcb_list_extensions_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_list_extensions_reply_t# ### type# xcb_list_extensions_reply_t* {.bycopy.} = object# response_type*: uint8# names_len*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# ## * Opcode for xcb_change_keyboard_mapping.# const# XCB_CHANGE_KEYBOARD_MAPPING* = 100# ## *# ## @brief xcb_change_keyboard_mapping_request_t# ### type# xcb_change_keyboard_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# keycode_count*: uint8# length*: uint16# first_keycode*: xcb_keycode_t# keysyms_per_keycode*: uint8# pad0*: array[2, uint8]# ## *# ## @brief xcb_get_keyboard_mapping_cookie_t# ### type# xcb_get_keyboard_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_keyboard_mapping.# const# XCB_GET_KEYBOARD_MAPPING* = 101# ## *# ## @brief xcb_get_keyboard_mapping_request_t# ### type# xcb_get_keyboard_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# first_keycode*: xcb_keycode_t# count*: uint8# ## *# ## @brief xcb_get_keyboard_mapping_reply_t# ### type# xcb_get_keyboard_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# keysyms_per_keycode*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# xcb_kb_t* = enum# XCB_KB_KEY_CLICK_PERCENT = 1, XCB_KB_BELL_PERCENT = 2, XCB_KB_BELL_PITCH = 4,# XCB_KB_BELL_DURATION = 8, XCB_KB_LED = 16, XCB_KB_LED_MODE = 32, XCB_KB_KEY = 64,# XCB_KB_AUTO_REPEAT_MODE = 128# xcb_led_mode_t* = enum# XCB_LED_MODE_OFF = 0, XCB_LED_MODE_ON = 1# xcb_auto_repeat_mode_t* = enum# XCB_AUTO_REPEAT_MODE_OFF = 0, XCB_AUTO_REPEAT_MODE_ON = 1,# XCB_AUTO_REPEAT_MODE_DEFAULT = 2# ## *# ## @brief xcb_change_keyboard_control_value_list_t# ### type# xcb_change_keyboard_control_value_list_t* {.bycopy.} = object# key_click_percent*: int32# bell_percent*: int32# bell_pitch*: int32# bell_duration*: int32# led*: uint32# led_mode*: uint32# key*: xcb_keycode32_t# auto_repeat_mode*: uint32# ## * Opcode for xcb_change_keyboard_control.# const# XCB_CHANGE_KEYBOARD_CONTROL* = 102# ## *# ## @brief xcb_change_keyboard_control_request_t# ### type# xcb_change_keyboard_control_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# value_mask*: uint32# ## *# ## @brief xcb_get_keyboard_control_cookie_t# ### type# xcb_get_keyboard_control_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_keyboard_control.# const# XCB_GET_KEYBOARD_CONTROL* = 103# ## *# ## @brief xcb_get_keyboard_control_request_t# ### type# xcb_get_keyboard_control_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_keyboard_control_reply_t# ### type# xcb_get_keyboard_control_reply_t* {.bycopy.} = object# response_type*: uint8# global_auto_repeat*: uint8# sequence*: uint16# length*: uint32# led_mask*: uint32# key_click_percent*: uint8# bell_percent*: uint8# bell_pitch*: uint16# bell_duration*: uint16# pad0*: array[2, uint8]# auto_repeats*: array[32, uint8]# ## * Opcode for xcb_bell.# const# XCB_BELL* = 104# ## *# ## @brief xcb_bell_request_t# ### type# xcb_bell_request_t* {.bycopy.} = object# major_opcode*: uint8# percent*: int8# length*: uint16# ## * Opcode for xcb_change_pointer_control.# const# XCB_CHANGE_POINTER_CONTROL* = 105# ## *# ## @brief xcb_change_pointer_control_request_t# ### type# xcb_change_pointer_control_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# acceleration_numerator*: int16# acceleration_denominator*: int16# threshold*: int16# do_acceleration*: uint8# do_threshold*: uint8# ## *# ## @brief xcb_get_pointer_control_cookie_t# ### type# xcb_get_pointer_control_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_pointer_control.# const# XCB_GET_POINTER_CONTROL* = 106# ## *# ## @brief xcb_get_pointer_control_request_t# ### type# xcb_get_pointer_control_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_pointer_control_reply_t# ### type# xcb_get_pointer_control_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# acceleration_numerator*: uint16# acceleration_denominator*: uint16# threshold*: uint16# pad1*: array[18, uint8]# xcb_blanking_t* = enum# XCB_BLANKING_NOT_PREFERRED = 0, XCB_BLANKING_PREFERRED = 1,# XCB_BLANKING_DEFAULT = 2# xcb_exposures_t* = enum# XCB_EXPOSURES_NOT_ALLOWED = 0, XCB_EXPOSURES_ALLOWED = 1,# XCB_EXPOSURES_DEFAULT = 2# ## * Opcode for xcb_set_screen_saver.# const# XCB_SET_SCREEN_SAVER* = 107# ## *# ## @brief xcb_set_screen_saver_request_t# ### type# xcb_set_screen_saver_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# timeout*: int16# interval*: int16# prefer_blanking*: uint8# allow_exposures*: uint8# ## *# ## @brief xcb_get_screen_saver_cookie_t# ### type# xcb_get_screen_saver_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_screen_saver.# const# XCB_GET_SCREEN_SAVER* = 108# ## *# ## @brief xcb_get_screen_saver_request_t# ### type# xcb_get_screen_saver_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_screen_saver_reply_t# ### type# xcb_get_screen_saver_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# timeout*: uint16# interval*: uint16# prefer_blanking*: uint8# allow_exposures*: uint8# pad1*: array[18, uint8]# xcb_host_mode_t* = enum# XCB_HOST_MODE_INSERT = 0, XCB_HOST_MODE_DELETE = 1# xcb_family_t* = enum# XCB_FAMILY_INTERNET = 0, XCB_FAMILY_DECNET = 1, XCB_FAMILY_CHAOS = 2,# XCB_FAMILY_SERVER_INTERPRETED = 5, XCB_FAMILY_INTERNET_6 = 6# ## * Opcode for xcb_change_hosts.# const# XCB_CHANGE_HOSTS* = 109# ## *# ## @brief xcb_change_hosts_request_t# ### type# xcb_change_hosts_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# family*: uint8# pad0*: uint8# address_len*: uint16# ## *# ## @brief xcb_host_t# ### type# xcb_host_t* {.bycopy.} = object# family*: uint8# pad0*: uint8# address_len*: uint16# ## *# ## @brief xcb_host_iterator_t# ### type# xcb_host_iterator_t* {.bycopy.} = object# data*: ptr xcb_host_t# rem*: cint# index*: cint# ## *# ## @brief xcb_list_hosts_cookie_t# ### type# xcb_list_hosts_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_list_hosts.# const# XCB_LIST_HOSTS* = 110# ## *# ## @brief xcb_list_hosts_request_t# ### type# xcb_list_hosts_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_list_hosts_reply_t# ### type# xcb_list_hosts_reply_t* {.bycopy.} = object# response_type*: uint8# mode*: uint8# sequence*: uint16# length*: uint32# hosts_len*: uint16# pad0*: array[22, uint8]# xcb_access_control_t* = enum# XCB_ACCESS_CONTROL_DISABLE = 0, XCB_ACCESS_CONTROL_ENABLE = 1# ## * Opcode for xcb_set_access_control.# const# XCB_SET_ACCESS_CONTROL* = 111# ## *# ## @brief xcb_set_access_control_request_t# ### type# xcb_set_access_control_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# xcb_close_down_t* = enum# XCB_CLOSE_DOWN_DESTROY_ALL = 0, XCB_CLOSE_DOWN_RETAIN_PERMANENT = 1,# XCB_CLOSE_DOWN_RETAIN_TEMPORARY = 2# ## * Opcode for xcb_set_close_down_mode.# const# XCB_SET_CLOSE_DOWN_MODE* = 112# ## *# ## @brief xcb_set_close_down_mode_request_t# ### type# xcb_set_close_down_mode_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# xcb_kill_t* = enum# XCB_KILL_ALL_TEMPORARY = 0# ## * Opcode for xcb_kill_client.# const# XCB_KILL_CLIENT* = 113# ## *# ## @brief xcb_kill_client_request_t# ### type# xcb_kill_client_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# resource*: uint32# ## * Opcode for xcb_rotate_properties.# const# XCB_ROTATE_PROPERTIES* = 114# ## *# ## @brief xcb_rotate_properties_request_t# ### type# xcb_rotate_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# window*: xcb_window_t# atoms_len*: uint16# delta*: int16# xcb_screen_saver_t* = enum# XCB_SCREEN_SAVER_RESET = 0, XCB_SCREEN_SAVER_ACTIVE = 1# ## * Opcode for xcb_force_screen_saver.# const# XCB_FORCE_SCREEN_SAVER* = 115# ## *# ## @brief xcb_force_screen_saver_request_t# ### type# xcb_force_screen_saver_request_t* {.bycopy.} = object# major_opcode*: uint8# mode*: uint8# length*: uint16# xcb_mapping_status_t* = enum# XCB_MAPPING_STATUS_SUCCESS = 0, XCB_MAPPING_STATUS_BUSY = 1,# XCB_MAPPING_STATUS_FAILURE = 2# ## *# ## @brief xcb_set_pointer_mapping_cookie_t# ### type# xcb_set_pointer_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_set_pointer_mapping.# const# XCB_SET_POINTER_MAPPING* = 116# ## *# ## @brief xcb_set_pointer_mapping_request_t# ### type# xcb_set_pointer_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# map_len*: uint8# length*: uint16# ## *# ## @brief xcb_set_pointer_mapping_reply_t# ### type# xcb_set_pointer_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# ## *# ## @brief xcb_get_pointer_mapping_cookie_t# ### type# xcb_get_pointer_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_pointer_mapping.# const# XCB_GET_POINTER_MAPPING* = 117# ## *# ## @brief xcb_get_pointer_mapping_request_t# ### type# xcb_get_pointer_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_pointer_mapping_reply_t# ### type# xcb_get_pointer_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# map_len*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# xcb_map_index_t* = enum# XCB_MAP_INDEX_SHIFT = 0, XCB_MAP_INDEX_LOCK = 1, XCB_MAP_INDEX_CONTROL = 2,# XCB_MAP_INDEX_1 = 3, XCB_MAP_INDEX_2 = 4, XCB_MAP_INDEX_3 = 5, XCB_MAP_INDEX_4 = 6,# XCB_MAP_INDEX_5 = 7# ## *# ## @brief xcb_set_modifier_mapping_cookie_t# ### type# xcb_set_modifier_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_set_modifier_mapping.# const# XCB_SET_MODIFIER_MAPPING* = 118# ## *# ## @brief xcb_set_modifier_mapping_request_t# ### type# xcb_set_modifier_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# keycodes_per_modifier*: uint8# length*: uint16# ## *# ## @brief xcb_set_modifier_mapping_reply_t# ### type# xcb_set_modifier_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# status*: uint8# sequence*: uint16# length*: uint32# ## *# ## @brief xcb_get_modifier_mapping_cookie_t# ### type# xcb_get_modifier_mapping_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_get_modifier_mapping.# const# XCB_GET_MODIFIER_MAPPING* = 119# ## *# ## @brief xcb_get_modifier_mapping_request_t# ### type# xcb_get_modifier_mapping_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## @brief xcb_get_modifier_mapping_reply_t# ### type# xcb_get_modifier_mapping_reply_t* {.bycopy.} = object# response_type*: uint8# keycodes_per_modifier*: uint8# sequence*: uint16# length*: uint32# pad0*: array[24, uint8]# ## * Opcode for xcb_no_operation.# const# XCB_NO_OPERATION* = 127# ## *# ## @brief xcb_no_operation_request_t# ### type# xcb_no_operation_request_t* {.bycopy.} = object# major_opcode*: uint8# pad0*: uint8# length*: uint16# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_char2b_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_char2b_t)# ### proc xcb_char2b_next*(i: ptr xcb_char2b_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_char2b_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_char2b_end*(i: xcb_char2b_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_window_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_window_t)# ### proc xcb_window_next*(i: ptr xcb_window_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_window_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_window_end*(i: xcb_window_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_pixmap_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_pixmap_t)# ### proc xcb_pixmap_next*(i: ptr xcb_pixmap_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_pixmap_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_pixmap_end*(i: xcb_pixmap_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_cursor_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_cursor_t)# ### proc xcb_cursor_next*(i: ptr xcb_cursor_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_cursor_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_cursor_end*(i: xcb_cursor_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_font_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_font_t)# ### proc xcb_font_next*(i: ptr xcb_font_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_font_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_font_end*(i: xcb_font_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_gcontext_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_gcontext_t)# ### proc xcb_gcontext_next*(i: ptr xcb_gcontext_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_gcontext_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_gcontext_end*(i: xcb_gcontext_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_colormap_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_colormap_t)# ### proc xcb_colormap_next*(i: ptr xcb_colormap_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_colormap_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_colormap_end*(i: xcb_colormap_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_atom_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_atom_t)# ### proc xcb_atom_next*(i: ptr xcb_atom_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_atom_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_atom_end*(i: xcb_atom_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_drawable_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_drawable_t)# ### proc xcb_drawable_next*(i: ptr xcb_drawable_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_drawable_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_drawable_end*(i: xcb_drawable_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_fontable_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_fontable_t)# ### proc xcb_fontable_next*(i: ptr xcb_fontable_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_fontable_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_fontable_end*(i: xcb_fontable_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_bool32_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_bool32_t)# ### proc xcb_bool32_next*(i: ptr xcb_bool32_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_bool32_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_bool32_end*(i: xcb_bool32_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_visualid_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_visualid_t)# ### proc xcb_visualid_next*(i: ptr xcb_visualid_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_visualid_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_visualid_end*(i: xcb_visualid_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_timestamp_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_timestamp_t)# ### proc xcb_timestamp_next*(i: ptr xcb_timestamp_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_timestamp_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_timestamp_end*(i: xcb_timestamp_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_keysym_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_keysym_t)# ### proc xcb_keysym_next*(i: ptr xcb_keysym_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_keysym_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_keysym_end*(i: xcb_keysym_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_keycode_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_keycode_t)# ### proc xcb_keycode_next*(i: ptr xcb_keycode_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_keycode_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_keycode_end*(i: xcb_keycode_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_keycode32_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_keycode32_t)# ### proc xcb_keycode32_next*(i: ptr xcb_keycode32_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_keycode32_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_keycode32_end*(i: xcb_keycode32_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_button_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_button_t)# ### proc xcb_button_next*(i: ptr xcb_button_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_button_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_button_end*(i: xcb_button_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_point_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_point_t)# ### proc xcb_point_next*(i: ptr xcb_point_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_point_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_point_end*(i: xcb_point_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_rectangle_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_rectangle_t)# ### proc xcb_rectangle_next*(i: ptr xcb_rectangle_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_rectangle_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_rectangle_end*(i: xcb_rectangle_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_arc_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_arc_t)# ### proc xcb_arc_next*(i: ptr xcb_arc_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_arc_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_arc_end*(i: xcb_arc_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_format_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_format_t)# ### proc xcb_format_next*(i: ptr xcb_format_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_format_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_format_end*(i: xcb_format_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_visualtype_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_visualtype_t)# ### proc xcb_visualtype_next*(i: ptr xcb_visualtype_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_visualtype_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_visualtype_end*(i: xcb_visualtype_iterator_t): xcb_generic_iterator_t# proc xcb_depth_sizeof*(_buffer: pointer): cint# proc xcb_depth_visuals*(R: ptr xcb_depth_t): ptr xcb_visualtype_t# proc xcb_depth_visuals_length*(R: ptr xcb_depth_t): cint# proc xcb_depth_visuals_iterator*(R: ptr xcb_depth_t): xcb_visualtype_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_depth_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_depth_t)# ### proc xcb_depth_next*(i: ptr xcb_depth_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_depth_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_depth_end*(i: xcb_depth_iterator_t): xcb_generic_iterator_t# proc xcb_screen_sizeof*(_buffer: pointer): cint# proc xcb_screen_allowed_depths_length*(R: ptr xcb_screen_t): cint# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_screen_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_screen_t)# ### proc xcb_screen_next*(i: ptr xcb_screen_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_screen_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_screen_end*(i: xcb_screen_iterator_t): xcb_generic_iterator_t# proc xcb_setup_request_sizeof*(_buffer: pointer): cint# proc xcb_setup_request_authorization_protocol_name*(R: ptr xcb_setup_request_t): cstring# proc xcb_setup_request_authorization_protocol_name_length*(# R: ptr xcb_setup_request_t): cint# proc xcb_setup_request_authorization_protocol_name_end*(# R: ptr xcb_setup_request_t): xcb_generic_iterator_t# proc xcb_setup_request_authorization_protocol_data*(R: ptr xcb_setup_request_t): cstring# proc xcb_setup_request_authorization_protocol_data_length*(# R: ptr xcb_setup_request_t): cint# proc xcb_setup_request_authorization_protocol_data_end*(# R: ptr xcb_setup_request_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_setup_request_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_setup_request_t)# ### proc xcb_setup_request_next*(i: ptr xcb_setup_request_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_setup_request_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_setup_request_end*(i: xcb_setup_request_iterator_t): xcb_generic_iterator_t# proc xcb_setup_failed_sizeof*(_buffer: pointer): cint# proc xcb_setup_failed_reason*(R: ptr xcb_setup_failed_t): cstring# proc xcb_setup_failed_reason_length*(R: ptr xcb_setup_failed_t): cint# proc xcb_setup_failed_reason_end*(R: ptr xcb_setup_failed_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_setup_failed_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_setup_failed_t)# ### proc xcb_setup_failed_next*(i: ptr xcb_setup_failed_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_setup_failed_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_setup_failed_end*(i: xcb_setup_failed_iterator_t): xcb_generic_iterator_t# proc xcb_setup_authenticate_sizeof*(_buffer: pointer): cint# proc xcb_setup_authenticate_reason*(R: ptr xcb_setup_authenticate_t): cstring# proc xcb_setup_authenticate_reason_length*(R: ptr xcb_setup_authenticate_t): cint# proc xcb_setup_authenticate_reason_end*(R: ptr xcb_setup_authenticate_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_setup_authenticate_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_setup_authenticate_t)# ### proc xcb_setup_authenticate_next*(i: ptr xcb_setup_authenticate_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_setup_authenticate_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_setup_authenticate_end*(i: xcb_setup_authenticate_iterator_t): xcb_generic_iterator_t# proc xcb_setup_sizeof*(_buffer: pointer): cint# proc xcb_setup_vendor*(R: ptr xcb_setup_t): cstring# proc xcb_setup_vendor_length*(R: ptr xcb_setup_t): cint# proc xcb_setup_vendor_end*(R: ptr xcb_setup_t): xcb_generic_iterator_t# proc xcb_setup_pixmap_formats*(R: ptr xcb_setup_t): ptr xcb_format_t# proc xcb_setup_pixmap_formats_length*(R: ptr xcb_setup_t): cint# proc xcb_setup_pixmap_formats_iterator*(R: ptr xcb_setup_t): xcb_format_iterator_t# proc xcb_setup_roots_length*(R: ptr xcb_setup_t): cint# proc xcb_setup_roots_iterator*(R: ptr xcb_setup_t): xcb_screen_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_setup_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_setup_t)# ### proc xcb_setup_next*(i: ptr xcb_setup_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_setup_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_setup_end*(i: xcb_setup_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_client_message_data_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_client_message_data_t)# ### proc xcb_client_message_data_next*(i: ptr xcb_client_message_data_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_client_message_data_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_client_message_data_end*(i: xcb_client_message_data_iterator_t): xcb_generic_iterator_t# proc xcb_create_window_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_create_window_value_list_t): cint# proc xcb_create_window_value_list_unpack*(_buffer: pointer; value_mask: uint32;# _aux: ptr xcb_create_window_value_list_t): cint# proc xcb_create_window_value_list_sizeof*(_buffer: pointer; value_mask: uint32): cint# proc xcb_create_window_sizeof*(_buffer: pointer): cint# ## *# ## @brief Creates a window# ### ## @param c The connection# ## @param depth Specifies the new window's depth (TODO: what unit?).# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the# ## \a parent window.# ## @param wid The ID with which you will refer to the new window, created by# ## `xcb_generate_id`.# ## @param parent The parent window of the new window.# ## @param x The X coordinate of the new window.# ## @param y The Y coordinate of the new window.# ## @param width The width of the new window.# ## @param height The height of the new window.# ## @param border_width TODO:# ## \n# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.# ## @param _class A bitmask of #xcb_window_class_t values.# ## @param _class \n# ## @param visual Specifies the id for the new window's visual.# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the# ## \a parent window.# ## @param value_mask A bitmask of #xcb_cw_t values.# ## @return A cookie# ### ## Creates an unmapped window as child of the specified \a parent window. A# ## CreateNotify event will be generated. The new window is placed on top in the# ## stacking order with respect to siblings.# ### ## The coordinate system has the X axis horizontal and the Y axis vertical with# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own# ## coordinate system. For a window, the origin is inside the border at the inside,# ## upper-left corner.# ### ## The created window is not yet displayed (mapped), call `xcb_map_window` to# ## display it.# ### ## The created window will initially use the same cursor as its parent.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_window_checked*(c: ptr xcb_connection_t; depth: uint8;# wid: xcb_window_t; parent: xcb_window_t; x: int16;# y: int16; width: uint16; height: uint16;# border_width: uint16; _class: uint16;# visual: xcb_visualid_t; value_mask: uint32;# value_list: pointer): xcb_void_cookie_t# ## *# ## @brief Creates a window# ### ## @param c The connection# ## @param depth Specifies the new window's depth (TODO: what unit?).# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the# ## \a parent window.# ## @param wid The ID with which you will refer to the new window, created by# ## `xcb_generate_id`.# ## @param parent The parent window of the new window.# ## @param x The X coordinate of the new window.# ## @param y The Y coordinate of the new window.# ## @param width The width of the new window.# ## @param height The height of the new window.# ## @param border_width TODO:# ## \n# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.# ## @param _class A bitmask of #xcb_window_class_t values.# ## @param _class \n# ## @param visual Specifies the id for the new window's visual.# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the# ## \a parent window.# ## @param value_mask A bitmask of #xcb_cw_t values.# ## @return A cookie# ### ## Creates an unmapped window as child of the specified \a parent window. A# ## CreateNotify event will be generated. The new window is placed on top in the# ## stacking order with respect to siblings.# ### ## The coordinate system has the X axis horizontal and the Y axis vertical with# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own# ## coordinate system. For a window, the origin is inside the border at the inside,# ## upper-left corner.# ### ## The created window is not yet displayed (mapped), call `xcb_map_window` to# ## display it.# ### ## The created window will initially use the same cursor as its parent.# ### ### proc xcb_create_window*(c: ptr xcb_connection_t; depth: uint8; wid: xcb_window_t;# parent: xcb_window_t; x: int16; y: int16; width: uint16;# height: uint16; border_width: uint16; _class: uint16;# visual: xcb_visualid_t; value_mask: uint32;# value_list: pointer): xcb_void_cookie_t# ## *# ## @brief Creates a window# ### ## @param c The connection# ## @param depth Specifies the new window's depth (TODO: what unit?).# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the# ## \a parent window.# ## @param wid The ID with which you will refer to the new window, created by# ## `xcb_generate_id`.# ## @param parent The parent window of the new window.# ## @param x The X coordinate of the new window.# ## @param y The Y coordinate of the new window.# ## @param width The width of the new window.# ## @param height The height of the new window.# ## @param border_width TODO:# ## \n# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.# ## @param _class A bitmask of #xcb_window_class_t values.# ## @param _class \n# ## @param visual Specifies the id for the new window's visual.# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the# ## \a parent window.# ## @param value_mask A bitmask of #xcb_cw_t values.# ## @return A cookie# ### ## Creates an unmapped window as child of the specified \a parent window. A# ## CreateNotify event will be generated. The new window is placed on top in the# ## stacking order with respect to siblings.# ### ## The coordinate system has the X axis horizontal and the Y axis vertical with# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own# ## coordinate system. For a window, the origin is inside the border at the inside,# ## upper-left corner.# ### ## The created window is not yet displayed (mapped), call `xcb_map_window` to# ## display it.# ### ## The created window will initially use the same cursor as its parent.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_window_aux_checked*(c: ptr xcb_connection_t; depth: uint8;# wid: xcb_window_t; parent: xcb_window_t;# x: int16; y: int16; width: uint16;# height: uint16; border_width: uint16;# _class: uint16; visual: xcb_visualid_t;# value_mask: uint32; value_list: ptr xcb_create_window_value_list_t): xcb_void_cookie_t# ## *# ## @brief Creates a window# ### ## @param c The connection# ## @param depth Specifies the new window's depth (TODO: what unit?).# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the# ## \a parent window.# ## @param wid The ID with which you will refer to the new window, created by# ## `xcb_generate_id`.# ## @param parent The parent window of the new window.# ## @param x The X coordinate of the new window.# ## @param y The Y coordinate of the new window.# ## @param width The width of the new window.# ## @param height The height of the new window.# ## @param border_width TODO:# ## \n# ## Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.# ## @param _class A bitmask of #xcb_window_class_t values.# ## @param _class \n# ## @param visual Specifies the id for the new window's visual.# ## \n# ## The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the# ## \a parent window.# ## @param value_mask A bitmask of #xcb_cw_t values.# ## @return A cookie# ### ## Creates an unmapped window as child of the specified \a parent window. A# ## CreateNotify event will be generated. The new window is placed on top in the# ## stacking order with respect to siblings.# ### ## The coordinate system has the X axis horizontal and the Y axis vertical with# ## the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms# ## of pixels, and coincide with pixel centers. Each window and pixmap has its own# ## coordinate system. For a window, the origin is inside the border at the inside,# ## upper-left corner.# ### ## The created window is not yet displayed (mapped), call `xcb_map_window` to# ## display it.# ### ## The created window will initially use the same cursor as its parent.# ### ### proc xcb_create_window_aux*(c: ptr xcb_connection_t; depth: uint8;# wid: xcb_window_t; parent: xcb_window_t; x: int16;# y: int16; width: uint16; height: uint16;# border_width: uint16; _class: uint16;# visual: xcb_visualid_t; value_mask: uint32;# value_list: ptr xcb_create_window_value_list_t): xcb_void_cookie_t# proc xcb_create_window_value_list*(R: ptr xcb_create_window_request_t): pointer# proc xcb_change_window_attributes_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_change_window_attributes_value_list_t): cint# proc xcb_change_window_attributes_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_change_window_attributes_value_list_t): cint# proc xcb_change_window_attributes_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_change_window_attributes_sizeof*(_buffer: pointer): cint# ## *# ## @brief change window attributes# ### ## @param c The connection# ## @param window The window to change.# ## @param value_mask A bitmask of #xcb_cw_t values.# ## @param value_mask \n# ## @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The# ## order has to correspond to the order of possible \a value_mask bits. See the# ## example.# ## @return A cookie# ### ## Changes the attributes specified by \a value_mask for the specified \a window.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_window_attributes_aux_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; value_mask: uint32;# value_list: ptr xcb_change_window_attributes_value_list_t): xcb_void_cookie_t# ## *# ## @brief change window attributes# ### ## @param c The connection# ## @param window The window to change.# ## @param value_mask A bitmask of #xcb_cw_t values.# ## @param value_mask \n# ## @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The# ## order has to correspond to the order of possible \a value_mask bits. See the# ## example.# ## @return A cookie# ### ## Changes the attributes specified by \a value_mask for the specified \a window.# ### ### proc xcb_change_window_attributes_aux*(c: ptr xcb_connection_t;# window: xcb_window_t; value_mask: uint32;# value_list: ptr xcb_change_window_attributes_value_list_t): xcb_void_cookie_t# proc xcb_change_window_attributes_value_list*(# R: ptr xcb_change_window_attributes_request_t): pointer# ## *# ## @brief Gets window attributes# ### ## @param c The connection# ## @param window The window to get the attributes from.# ## @return A cookie# ### ## Gets the current attributes for the specified \a window.# ### ### proc xcb_get_window_attributes*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_get_window_attributes_cookie_t# ## *# ## @brief Gets window attributes# ### ## @param c The connection# ## @param window The window to get the attributes from.# ## @return A cookie# ### ## Gets the current attributes for the specified \a window.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_window_attributes_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_get_window_attributes_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_window_attributes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_window_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_get_window_attributes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_window_attributes_reply_t# ## *# ## @brief Destroys a window# ### ## @param c The connection# ## @param window The window to destroy.# ## @return A cookie# ### ## Destroys the specified window and all of its subwindows. A DestroyNotify event# ## is generated for each destroyed window (a DestroyNotify event is first generated# ## for any given window's inferiors). If the window was mapped, it will be# ## automatically unmapped before destroying.# ### ## Calling DestroyWindow on the root window will do nothing.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_destroy_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Destroys a window# ### ## @param c The connection# ## @param window The window to destroy.# ## @return A cookie# ### ## Destroys the specified window and all of its subwindows. A DestroyNotify event# ## is generated for each destroyed window (a DestroyNotify event is first generated# ## for any given window's inferiors). If the window was mapped, it will be# ## automatically unmapped before destroying.# ### ## Calling DestroyWindow on the root window will do nothing.# ### ### proc xcb_destroy_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_destroy_subwindows_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_destroy_subwindows*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Changes a client's save set# ### ## @param c The connection# ## @param mode A bitmask of #xcb_set_mode_t values.# ## @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.# ## @param window The window to add or delete to/from your save set.# ## @return A cookie# ### ## TODO: explain what the save set is for.# ### ## This function either adds or removes the specified window to the client's (your# ## application's) save set.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_save_set_checked*(c: ptr xcb_connection_t; mode: uint8;# window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Changes a client's save set# ### ## @param c The connection# ## @param mode A bitmask of #xcb_set_mode_t values.# ## @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.# ## @param window The window to add or delete to/from your save set.# ## @return A cookie# ### ## TODO: explain what the save set is for.# ### ## This function either adds or removes the specified window to the client's (your# ## application's) save set.# ### ### proc xcb_change_save_set*(c: ptr xcb_connection_t; mode: uint8; window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Reparents a window# ### ## @param c The connection# ## @param window The window to reparent.# ## @param parent The new parent of the window.# ## @param x The X position of the window within its new parent.# ## @param y The Y position of the window within its new parent.# ## @return A cookie# ### ## Makes the specified window a child of the specified parent window. If the# ## window is mapped, it will automatically be unmapped before reparenting and# ## re-mapped after reparenting. The window is placed in the stacking order on top# ## with respect to sibling windows.# ### ## After reparenting, a ReparentNotify event is generated.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_reparent_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# parent: xcb_window_t; x: int16; y: int16): xcb_void_cookie_t# ## *# ## @brief Reparents a window# ### ## @param c The connection# ## @param window The window to reparent.# ## @param parent The new parent of the window.# ## @param x The X position of the window within its new parent.# ## @param y The Y position of the window within its new parent.# ## @return A cookie# ### ## Makes the specified window a child of the specified parent window. If the# ## window is mapped, it will automatically be unmapped before reparenting and# ## re-mapped after reparenting. The window is placed in the stacking order on top# ## with respect to sibling windows.# ### ## After reparenting, a ReparentNotify event is generated.# ### ### proc xcb_reparent_window*(c: ptr xcb_connection_t; window: xcb_window_t;# parent: xcb_window_t; x: int16; y: int16): xcb_void_cookie_t# ## *# ## @brief Makes a window visible# ### ## @param c The connection# ## @param window The window to make visible.# ## @return A cookie# ### ## Maps the specified window. This means making the window visible (as long as its# ## parent is visible).# ### ## This MapWindow request will be translated to a MapRequest request if a window# ## manager is running. The window manager then decides to either map the window or# ## not. Set the override-redirect window attribute to true if you want to bypass# ## this mechanism.# ### ## If the window manager decides to map the window (or if no window manager is# ## running), a MapNotify event is generated.# ### ## If the window becomes viewable and no earlier contents for it are remembered,# ## the X server tiles the window with its background. If the window's background# ## is undefined, the existing screen contents are not altered, and the X server# ## generates zero or more Expose events.# ### ## If the window type is InputOutput, an Expose event will be generated when the# ## window becomes visible. The normal response to an Expose event should be to# ## repaint the window.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_map_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Makes a window visible# ### ## @param c The connection# ## @param window The window to make visible.# ## @return A cookie# ### ## Maps the specified window. This means making the window visible (as long as its# ## parent is visible).# ### ## This MapWindow request will be translated to a MapRequest request if a window# ## manager is running. The window manager then decides to either map the window or# ## not. Set the override-redirect window attribute to true if you want to bypass# ## this mechanism.# ### ## If the window manager decides to map the window (or if no window manager is# ## running), a MapNotify event is generated.# ### ## If the window becomes viewable and no earlier contents for it are remembered,# ## the X server tiles the window with its background. If the window's background# ## is undefined, the existing screen contents are not altered, and the X server# ## generates zero or more Expose events.# ### ## If the window type is InputOutput, an Expose event will be generated when the# ## window becomes visible. The normal response to an Expose event should be to# ## repaint the window.# ### ### proc xcb_map_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_map_subwindows_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_map_subwindows*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Makes a window invisible# ### ## @param c The connection# ## @param window The window to make invisible.# ## @return A cookie# ### ## Unmaps the specified window. This means making the window invisible (and all# ## its child windows).# ### ## Unmapping a window leads to the `UnmapNotify` event being generated. Also,# ## `Expose` events are generated for formerly obscured windows.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_unmap_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Makes a window invisible# ### ## @param c The connection# ## @param window The window to make invisible.# ## @return A cookie# ### ## Unmaps the specified window. This means making the window invisible (and all# ## its child windows).# ### ## Unmapping a window leads to the `UnmapNotify` event being generated. Also,# ## `Expose` events are generated for formerly obscured windows.# ### ### proc xcb_unmap_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_unmap_subwindows_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_unmap_subwindows*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t# proc xcb_configure_window_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint16; _aux: ptr xcb_configure_window_value_list_t): cint# proc xcb_configure_window_value_list_unpack*(_buffer: pointer;# value_mask: uint16; _aux: ptr xcb_configure_window_value_list_t): cint# proc xcb_configure_window_value_list_sizeof*(_buffer: pointer; value_mask: uint16): cint# proc xcb_configure_window_sizeof*(_buffer: pointer): cint# ## *# ## @brief Configures window attributes# ### ## @param c The connection# ## @param window The window to configure.# ## @param value_mask Bitmask of attributes to change.# ## @param value_list New values, corresponding to the attributes in value_mask. The order has to# ## correspond to the order of possible \a value_mask bits. See the example.# ## @return A cookie# ### ## Configures a window's size, position, border width and stacking order.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_configure_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# value_mask: uint16; value_list: pointer): xcb_void_cookie_t# ## *# ## @brief Configures window attributes# ### ## @param c The connection# ## @param window The window to configure.# ## @param value_mask Bitmask of attributes to change.# ## @param value_list New values, corresponding to the attributes in value_mask. The order has to# ## correspond to the order of possible \a value_mask bits. See the example.# ## @return A cookie# ### ## Configures a window's size, position, border width and stacking order.# ### ### proc xcb_configure_window_aux_checked*(c: ptr xcb_connection_t;# window: xcb_window_t; value_mask: uint16;# value_list: ptr xcb_configure_window_value_list_t): xcb_void_cookie_t# ## *# ## @brief Configures window attributes# ### ## @param c The connection# ## @param window The window to configure.# ## @param value_mask Bitmask of attributes to change.# ## @param value_list New values, corresponding to the attributes in value_mask. The order has to# ## correspond to the order of possible \a value_mask bits. See the example.# ## @return A cookie# ### ## Configures a window's size, position, border width and stacking order.# ### ### proc xcb_configure_window_aux*(c: ptr xcb_connection_t; window: xcb_window_t;# value_mask: uint16;# value_list: ptr xcb_configure_window_value_list_t): xcb_void_cookie_t# proc xcb_configure_window_value_list*(R: ptr xcb_configure_window_request_t): pointer# ## *# ## @brief Change window stacking order# ### ## @param c The connection# ## @param direction A bitmask of #xcb_circulate_t values.# ## @param direction \n# ## @param window The window to raise/lower (depending on \a direction).# ## @return A cookie# ### ## If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if# ## any) will be raised to the top of the stack.# ### ## If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will# ## be lowered to the bottom of the stack.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_circulate_window_checked*(c: ptr xcb_connection_t; direction: uint8;# window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Change window stacking order# ### ## @param c The connection# ## @param direction A bitmask of #xcb_circulate_t values.# ## @param direction \n# ## @param window The window to raise/lower (depending on \a direction).# ## @return A cookie# ### ## If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if# ## any) will be raised to the top of the stack.# ### ## If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will# ## be lowered to the bottom of the stack.# ### ### proc xcb_circulate_window*(c: ptr xcb_connection_t; direction: uint8;# window: xcb_window_t): xcb_void_cookie_t# ## *# ## @brief Get current window geometry# ### ## @param c The connection# ## @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.# ## @return A cookie# ### ## Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).# ### ### proc xcb_query_tree_sizeof*(_buffer: pointer): cint# ## *# ## @brief query the window tree# ### ## @param c The connection# ## @param window The \a window to query.# ## @return A cookie# ### ## Gets the root window ID, parent window ID and list of children windows for the# ## specified \a window. The children are listed in bottom-to-top stacking order.# ### ### proc xcb_query_tree*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_query_tree_cookie_t# ## *# ## @brief query the window tree# ### ## @param c The connection# ## @param window The \a window to query.# ## @return A cookie# ### ## Gets the root window ID, parent window ID and list of children windows for the# ## specified \a window. The children are listed in bottom-to-top stacking order.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_tree_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_query_tree_cookie_t# proc xcb_query_tree_children*(R: ptr xcb_query_tree_reply_t): ptr xcb_window_t# proc xcb_query_tree_children_length*(R: ptr xcb_query_tree_reply_t): cint# proc xcb_query_tree_children_end*(R: ptr xcb_query_tree_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_tree_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_tree_reply*(c: ptr xcb_connection_t; cookie: xcb_query_tree_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_tree_reply_t# proc xcb_intern_atom_sizeof*(_buffer: pointer): cint# ## *# ## @brief Get atom identifier by name# ### ## @param c The connection# ## @param only_if_exists Return a valid atom id only if the atom already exists.# ## @param name_len The length of the following \a name.# ## @param name The name of the atom.# ## @return A cookie# ### ## Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified# ## name. Atoms are used in protocols like EWMH, for example to store window titles# ## (`_NET_WM_NAME` atom) as property of a window.# ### ## If \a only_if_exists is 0, the atom will be created if it does not already exist.# ## If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does# ## not yet exist.# ### ### proc xcb_intern_atom*(c: ptr xcb_connection_t; only_if_exists: uint8;# name_len: uint16; name: cstring): xcb_intern_atom_cookie_t# ## *# ## @brief Get atom identifier by name# ### ## @param c The connection# ## @param only_if_exists Return a valid atom id only if the atom already exists.# ## @param name_len The length of the following \a name.# ## @param name The name of the atom.# ## @return A cookie# ### ## Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified# ## name. Atoms are used in protocols like EWMH, for example to store window titles# ## (`_NET_WM_NAME` atom) as property of a window.# ### ## If \a only_if_exists is 0, the atom will be created if it does not already exist.# ## If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does# ## not yet exist.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_intern_atom_unchecked*(c: ptr xcb_connection_t; only_if_exists: uint8;# name_len: uint16; name: cstring): xcb_intern_atom_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_intern_atom_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_intern_atom_reply*(c: ptr xcb_connection_t; cookie: xcb_intern_atom_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_intern_atom_reply_t# proc xcb_get_atom_name_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_atom_name_unchecked*(c: ptr xcb_connection_t; atom: xcb_atom_t): xcb_get_atom_name_cookie_t# proc xcb_get_atom_name_name_length*(R: ptr xcb_get_atom_name_reply_t): cint# proc xcb_get_atom_name_name_end*(R: ptr xcb_get_atom_name_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_atom_name_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_change_property_sizeof*(_buffer: pointer): cint# ## *# ## @brief Changes a window property# ### ## @param c The connection# ## @param mode A bitmask of #xcb_prop_mode_t values.# ## @param mode \n# ## @param window The window whose property you want to change.# ## @param property The property you want to change (an atom).# ## @param type The type of the property you want to change (an atom).# ## @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or# ## 32-bit quantities. Possible values are 8, 16 and 32. This information allows# ## the X server to correctly perform byte-swap operations as necessary.# ## @param data_len Specifies the number of elements (see \a format).# ## @param data The property data.# ## @return A cookie# ### ## Sets or updates a property on the specified \a window. Properties are for# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).# ## Protocols such as EWMH also use properties - for example EWMH defines the# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_property_checked*(c: ptr xcb_connection_t; mode: uint8;# window: xcb_window_t; property: xcb_atom_t;# `type`: xcb_atom_t; format: uint8;# data_len: uint32; data: pointer): xcb_void_cookie_t# ## *# ## @brief Changes a window property# ### ## @param c The connection# ## @param mode A bitmask of #xcb_prop_mode_t values.# ## @param mode \n# ## @param window The window whose property you want to change.# ## @param property The property you want to change (an atom).# ## @param type The type of the property you want to change (an atom).# ## @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or# ## 32-bit quantities. Possible values are 8, 16 and 32. This information allows# ## the X server to correctly perform byte-swap operations as necessary.# ## @param data_len Specifies the number of elements (see \a format).# ## @param data The property data.# ## @return A cookie# ### ## Sets or updates a property on the specified \a window. Properties are for# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).# ## Protocols such as EWMH also use properties - for example EWMH defines the# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.# ### ### proc xcb_change_property*(c: ptr xcb_connection_t; mode: uint8;# window: xcb_window_t; property: xcb_atom_t;# `type`: xcb_atom_t; format: uint8; data_len: uint32;# data: pointer): xcb_void_cookie_t# proc xcb_change_property_data*(R: ptr xcb_change_property_request_t): pointer# proc xcb_change_property_data_length*(R: ptr xcb_change_property_request_t): cint# proc xcb_change_property_data_end*(R: ptr xcb_change_property_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_delete_property_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# property: xcb_atom_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_delete_property*(c: ptr xcb_connection_t; window: xcb_window_t;# property: xcb_atom_t): xcb_void_cookie_t# proc xcb_get_property_sizeof*(_buffer: pointer): cint# ## *# ## @brief Gets a window property# ### ## @param c The connection# ## @param _delete Whether the property should actually be deleted. For deleting a property, the# ## specified \a type has to match the actual property type.# ## @param window The window whose property you want to get.# ## @param property The property you want to get (an atom).# ## @param type The type of the property you want to get (an atom).# ## @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the# ## data is to be retrieved.# ## @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you# ## set \a long_length to 4, you will receive 16 bytes of data).# ## @return A cookie# ### ## Gets the specified \a property from the specified \a window. Properties are for# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).# ## Protocols such as EWMH also use properties - for example EWMH defines the# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.# ### ## TODO: talk about \a type# ### ## TODO: talk about `delete`# ### ## TODO: talk about the offset/length thing. what's a valid use case?# ### ### proc xcb_get_property_value_end*(R: ptr xcb_get_property_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_property_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_list_properties_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_list_properties_cookie_t# proc xcb_list_properties_atoms_end*(R: ptr xcb_list_properties_reply_t): xcb_generic_iterator_t# proc xcb_set_selection_owner_checked*(c: ptr xcb_connection_t; owner: xcb_window_t;# selection: xcb_atom_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief Sets the owner of a selection# ### ## @param c The connection# ## @param owner The new owner of the selection.# ## \n# ## The special value `XCB_NONE` means that the selection will have no owner.# ## @param selection The selection.# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The selection will not be changed if \a time is earlier than the current# ## last-change time of the \a selection or is later than the current X server time.# ## Otherwise, the last-change time is set to the specified time.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Makes `window` the owner of the selection \a selection and updates the# ## last-change time of the specified selection.# ### ## TODO: briefly explain what a selection is.# ### ### proc xcb_set_selection_owner*(c: ptr xcb_connection_t; owner: xcb_window_t;# selection: xcb_atom_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief Gets the owner of a selection# ### ## @param c The connection# ## @param selection The selection.# ## @return A cookie# ### ## Gets the owner of the specified selection.# ### ## TODO: briefly explain what a selection is.# ### ### proc xcb_get_selection_owner*(c: ptr xcb_connection_t; selection: xcb_atom_t): xcb_get_selection_owner_cookie_t# ## *# ## @brief Gets the owner of a selection# ### ## @param c The connection# ## @param selection The selection.# ## @return A cookie# ### ## Gets the owner of the specified selection.# ### ## TODO: briefly explain what a selection is.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_selection_owner_unchecked*(c: ptr xcb_connection_t;# selection: xcb_atom_t): xcb_get_selection_owner_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_selection_owner_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_selection_owner_reply*(c: ptr xcb_connection_t; cookie: xcb_get_selection_owner_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_selection_owner_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_convert_selection_checked*(c: ptr xcb_connection_t;# requestor: xcb_window_t; selection: xcb_atom_t;# target: xcb_atom_t; property: xcb_atom_t;# time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_convert_selection*(c: ptr xcb_connection_t; requestor: xcb_window_t;# selection: xcb_atom_t; target: xcb_atom_t;# property: xcb_atom_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief send an event# ### ## @param c The connection# ## @param propagate If \a propagate is true and no clients have selected any event on \a destination,# ## the destination is replaced with the closest ancestor of \a destination for# ## which some client has selected a type in \a event_mask and for which no# ## intervening window has that type in its do-not-propagate-mask. If no such# ## window exists or if the window is an ancestor of the focus window and# ## `InputFocus` was originally specified as the destination, the event is not sent# ## to any clients. Otherwise, the event is reported to every client selecting on# ## the final destination any of the types specified in \a event_mask.# ## @param destination The window to send this event to. Every client which selects any event within# ## \a event_mask on \a destination will get the event.# ## \n# ## The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window# ## that contains the mouse pointer.# ## \n# ## The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which# ## has the keyboard focus.# ## @param event_mask Event_mask for determining which clients should receive the specified event.# ## See \a destination and \a propagate.# ## @param event The event to send to the specified \a destination.# ## @return A cookie# ### ## Identifies the \a destination window, determines which clients should receive# ## the specified event and ignores any active grabs.# ### ## The \a event must be one of the core events or an event defined by an extension,# ## so that the X server can correctly byte-swap the contents as necessary. The# ## contents of \a event are otherwise unaltered and unchecked except for the# ## `send_event` field which is forced to 'true'.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_send_event_checked*(c: ptr xcb_connection_t; propagate: uint8;# destination: xcb_window_t; event_mask: uint32;# event: cstring): xcb_void_cookie_t# ## *# ## @brief send an event# ### ## @param c The connection# ## @param propagate If \a propagate is true and no clients have selected any event on \a destination,# ## the destination is replaced with the closest ancestor of \a destination for# ## which some client has selected a type in \a event_mask and for which no# ## intervening window has that type in its do-not-propagate-mask. If no such# ## window exists or if the window is an ancestor of the focus window and# ## `InputFocus` was originally specified as the destination, the event is not sent# ## to any clients. Otherwise, the event is reported to every client selecting on# ## the final destination any of the types specified in \a event_mask.# ## @param destination The window to send this event to. Every client which selects any event within# ## \a event_mask on \a destination will get the event.# ## \n# ## The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window# ## that contains the mouse pointer.# ## \n# ## The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which# ## has the keyboard focus.# ## @param event_mask Event_mask for determining which clients should receive the specified event.# ## See \a destination and \a propagate.# ## @param event The event to send to the specified \a destination.# ## @return A cookie# ### ## Identifies the \a destination window, determines which clients should receive# ## the specified event and ignores any active grabs.# ### ## The \a event must be one of the core events or an event defined by an extension,# ## so that the X server can correctly byte-swap the contents as necessary. The# ## contents of \a event are otherwise unaltered and unchecked except for the# ## `send_event` field which is forced to 'true'.# ### ### proc xcb_send_event*(c: ptr xcb_connection_t; propagate: uint8;# destination: xcb_window_t; event_mask: uint32; event: cstring): xcb_void_cookie_t# ## *# ## @brief Grab the pointer# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param event_mask Specifies which pointer events are reported to the client.# ## \n# ## TODO: which values?# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to# ## move the pointer out of that window).# ## \n# ## The special value `XCB_NONE` means don't confine the pointer.# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the# ## cursor.# ## @param time The time argument allows you to avoid certain circumstances that come up if# ## applications take a long time to respond or if there are long network delays.# ## Consider a situation where you have two applications, both of which normally# ## grab the pointer when clicked on. If both applications specify the timestamp# ## from the event, the second application may wake up faster and successfully grab# ## the pointer before the first application. The first application then will get# ## an indication that the other application grabbed the pointer before its request# ## was processed.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.# ### ### ## *# ## @brief Grab the pointer# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param event_mask Specifies which pointer events are reported to the client.# ## \n# ## TODO: which values?# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to# ## move the pointer out of that window).# ## \n# ## The special value `XCB_NONE` means don't confine the pointer.# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the# ## cursor.# ## @param time The time argument allows you to avoid certain circumstances that come up if# ## applications take a long time to respond or if there are long network delays.# ## Consider a situation where you have two applications, both of which normally# ## grab the pointer when clicked on. If both applications specify the timestamp# ## from the event, the second application may wake up faster and successfully grab# ## the pointer before the first application. The first application then will get# ## an indication that the other application grabbed the pointer before its request# ## was processed.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_grab_pointer_unchecked*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; event_mask: uint16;# pointer_mode: uint8; keyboard_mode: uint8;# confine_to: xcb_window_t; cursor: xcb_cursor_t;# time: xcb_timestamp_t): xcb_grab_pointer_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_grab_pointer_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_grab_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_grab_pointer_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_grab_pointer_reply_t# ## *# ## @brief release the pointer# ### ## @param c The connection# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The pointer will not be released if \a time is earlier than the# ## last-pointer-grab time or later than the current X server time.# ## @return A cookie# ### ## Releases the pointer and any queued events if you actively grabbed the pointer# ## before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button# ## press.# ### ## EnterNotify and LeaveNotify events are generated.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_ungrab_pointer_checked*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief release the pointer# ### ## @param c The connection# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The pointer will not be released if \a time is earlier than the# ## last-pointer-grab time or later than the current X server time.# ## @return A cookie# ### ## Releases the pointer and any queued events if you actively grabbed the pointer# ## before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button# ## press.# ### ## EnterNotify and LeaveNotify events are generated.# ### ### proc xcb_ungrab_pointer*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief Grab pointer button(s)# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param event_mask Specifies which pointer events are reported to the client.# ## \n# ## TODO: which values?# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to# ## move the pointer out of that window).# ## \n# ## The special value `XCB_NONE` means don't confine the pointer.# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the# ## cursor.# ## @param button A bitmask of #xcb_button_index_t values.# ## @param button \n# ## @param modifiers The modifiers to grab.# ## \n# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all# ## possible modifier combinations.# ## @return A cookie# ### ## This request establishes a passive grab. The pointer is actively grabbed as# ## described in GrabPointer, the last-pointer-grab time is set to the time at# ## which the button was pressed (as transmitted in the ButtonPress event), and the# ## ButtonPress event is reported if all of the following conditions are true:# ### ## The pointer is not grabbed and the specified button is logically pressed when# ## the specified modifier keys are logically down, and no other buttons or# ## modifier keys are logically down.# ### ## The grab-window contains the pointer.# ### ## The confine-to window (if any) is viewable.# ### ## A passive grab on the same button/key combination does not exist on any# ## ancestor of grab-window.# ### ## The interpretation of the remaining arguments is the same as for GrabPointer.# ## The active grab is terminated automatically when the logical state of the# ## pointer has all buttons released, independent of the logical state of modifier# ## keys. Note that the logical state of a device (as seen by means of the# ## protocol) may lag the physical state if device event processing is frozen. This# ## request overrides all previous passive grabs by the same client on the same# ## button/key combinations on the same window. A modifier of AnyModifier is# ## equivalent to issuing the request for all possible modifier combinations# ## (including the combination of no modifiers). It is not required that all# ## specified modifiers have currently assigned keycodes. A button of AnyButton is# ## equivalent to issuing the request for all possible buttons. Otherwise, it is# ## not required that the button specified currently be assigned to a physical# ## button.# ### ## An Access error is generated if some other client has already issued a# ## GrabButton request with the same button/key combination on the same window.# ## When using AnyModifier or AnyButton, the request fails completely (no grabs are# ## established), and an Access error is generated if there is a conflicting grab# ## for any combination. The request has no effect on an active grab.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_grab_button_checked*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; event_mask: uint16;# pointer_mode: uint8; keyboard_mode: uint8;# confine_to: xcb_window_t; cursor: xcb_cursor_t;# button: uint8; modifiers: uint16): xcb_void_cookie_t# ## *# ## @brief Grab pointer button(s)# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param event_mask Specifies which pointer events are reported to the client.# ## \n# ## TODO: which values?# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @param confine_to Specifies the window to confine the pointer in (the user will not be able to# ## move the pointer out of that window).# ## \n# ## The special value `XCB_NONE` means don't confine the pointer.# ## @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the# ## cursor.# ## @param button A bitmask of #xcb_button_index_t values.# ## @param button \n# ## @param modifiers The modifiers to grab.# ## \n# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all# ## possible modifier combinations.# ## @return A cookie# ### ## This request establishes a passive grab. The pointer is actively grabbed as# ## described in GrabPointer, the last-pointer-grab time is set to the time at# ## which the button was pressed (as transmitted in the ButtonPress event), and the# ## ButtonPress event is reported if all of the following conditions are true:# ### ## The pointer is not grabbed and the specified button is logically pressed when# ## the specified modifier keys are logically down, and no other buttons or# ## modifier keys are logically down.# ### ## The grab-window contains the pointer.# ### ## The confine-to window (if any) is viewable.# ### ## A passive grab on the same button/key combination does not exist on any# ## ancestor of grab-window.# ### ## The interpretation of the remaining arguments is the same as for GrabPointer.# ## The active grab is terminated automatically when the logical state of the# ## pointer has all buttons released, independent of the logical state of modifier# ## keys. Note that the logical state of a device (as seen by means of the# ## protocol) may lag the physical state if device event processing is frozen. This# ## request overrides all previous passive grabs by the same client on the same# ## button/key combinations on the same window. A modifier of AnyModifier is# ## equivalent to issuing the request for all possible modifier combinations# ## (including the combination of no modifiers). It is not required that all# ## specified modifiers have currently assigned keycodes. A button of AnyButton is# ## equivalent to issuing the request for all possible buttons. Otherwise, it is# ## not required that the button specified currently be assigned to a physical# ## button.# ### ## An Access error is generated if some other client has already issued a# ## GrabButton request with the same button/key combination on the same window.# ## When using AnyModifier or AnyButton, the request fails completely (no grabs are# ## established), and an Access error is generated if there is a conflicting grab# ## for any combination. The request has no effect on an active grab.# ### ### proc xcb_grab_button*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; event_mask: uint16;# pointer_mode: uint8; keyboard_mode: uint8;# confine_to: xcb_window_t; cursor: xcb_cursor_t;# button: uint8; modifiers: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_ungrab_button_checked*(c: ptr xcb_connection_t; button: uint8;# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_ungrab_button*(c: ptr xcb_connection_t; button: uint8;# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_active_pointer_grab_checked*(c: ptr xcb_connection_t;# cursor: xcb_cursor_t; time: xcb_timestamp_t; event_mask: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_change_active_pointer_grab*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;# time: xcb_timestamp_t; event_mask: uint16): xcb_void_cookie_t# ## *# ## @brief Grab the keyboard# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @return A cookie# ### ## Actively grabs control of the keyboard and generates FocusIn and FocusOut# ## events. Further key events are reported only to the grabbing client.# ### ## Any active keyboard grab by this client is overridden. If the keyboard is# ## actively grabbed by some other client, `AlreadyGrabbed` is returned. If# ## \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard# ## is frozen by an active grab of another client, `GrabFrozen` is returned. If the# ## specified \a time is earlier than the last-keyboard-grab time or later than the# ## current X server time, `GrabInvalidTime` is returned. Otherwise, the# ## last-keyboard-grab time is set to the specified time.# ### ### proc xcb_grab_keyboard*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; time: xcb_timestamp_t;# pointer_mode: uint8; keyboard_mode: uint8): xcb_grab_keyboard_cookie_t# ## *# ## @brief Grab the keyboard# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @return A cookie# ### ## Actively grabs control of the keyboard and generates FocusIn and FocusOut# ## events. Further key events are reported only to the grabbing client.# ### ## Any active keyboard grab by this client is overridden. If the keyboard is# ## actively grabbed by some other client, `AlreadyGrabbed` is returned. If# ## \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard# ## is frozen by an active grab of another client, `GrabFrozen` is returned. If the# ## specified \a time is earlier than the last-keyboard-grab time or later than the# ## current X server time, `GrabInvalidTime` is returned. Otherwise, the# ## last-keyboard-grab time is set to the specified time.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_grab_keyboard_unchecked*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; time: xcb_timestamp_t;# pointer_mode: uint8; keyboard_mode: uint8): xcb_grab_keyboard_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_grab_keyboard_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_grab_keyboard_reply*(c: ptr xcb_connection_t; cookie: xcb_grab_keyboard_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_grab_keyboard_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_ungrab_keyboard_checked*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_ungrab_keyboard*(c: ptr xcb_connection_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief Grab keyboard key(s)# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param modifiers The modifiers to grab.# ## \n# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all# ## possible modifier combinations.# ## @param key The keycode of the key to grab.# ## \n# ## The special value `XCB_GRAB_ANY` means grab any key.# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @return A cookie# ### ## Establishes a passive grab on the keyboard. In the future, the keyboard is# ## actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to# ## the time at which the key was pressed (as transmitted in the KeyPress event),# ## and the KeyPress event is reported if all of the following conditions are true:# ### ## The keyboard is not grabbed and the specified key (which can itself be a# ## modifier key) is logically pressed when the specified modifier keys are# ## logically down, and no other modifier keys are logically down.# ### ## Either the grab_window is an ancestor of (or is) the focus window, or the# ## grab_window is a descendant of the focus window and contains the pointer.# ### ## A passive grab on the same key combination does not exist on any ancestor of# ## grab_window.# ### ## The interpretation of the remaining arguments is as for XGrabKeyboard. The active grab is terminated# ## automatically when the logical state of the keyboard has the specified key released (independent of the# ## logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.# ### ## Note that the logical state of a device (as seen by client applications) may lag the physical state if# ## device event processing is frozen.# ### ## A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). It is not required that all modifiers specified# ## have currently assigned KeyCodes. A keycode argument of AnyKey is equivalent to issuing the request for# ## all possible KeyCodes. Otherwise, the specified keycode must be in the range specified by min_keycode# ## and max_keycode in the connection setup, or a BadValue error results.# ### ## If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess# ## error results. When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error# ## results (no grabs are established) if there is a conflicting grab for any combination.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_grab_key_checked*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; modifiers: uint16;# key: xcb_keycode_t; pointer_mode: uint8;# keyboard_mode: uint8): xcb_void_cookie_t# ## *# ## @brief Grab keyboard key(s)# ### ## @param c The connection# ## @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not# ## reported to the \a grab_window.# ## @param grab_window Specifies the window on which the pointer should be grabbed.# ## @param modifiers The modifiers to grab.# ## \n# ## Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all# ## possible modifier combinations.# ## @param key The keycode of the key to grab.# ## \n# ## The special value `XCB_GRAB_ANY` means grab any key.# ## @param pointer_mode A bitmask of #xcb_grab_mode_t values.# ## @param pointer_mode \n# ## @param keyboard_mode A bitmask of #xcb_grab_mode_t values.# ## @param keyboard_mode \n# ## @return A cookie# ### ## Establishes a passive grab on the keyboard. In the future, the keyboard is# ## actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to# ## the time at which the key was pressed (as transmitted in the KeyPress event),# ## and the KeyPress event is reported if all of the following conditions are true:# ### ## The keyboard is not grabbed and the specified key (which can itself be a# ## modifier key) is logically pressed when the specified modifier keys are# ## logically down, and no other modifier keys are logically down.# ### ## Either the grab_window is an ancestor of (or is) the focus window, or the# ## grab_window is a descendant of the focus window and contains the pointer.# ### ## A passive grab on the same key combination does not exist on any ancestor of# ## grab_window.# ### ## The interpretation of the remaining arguments is as for XGrabKeyboard. The active grab is terminated# ## automatically when the logical state of the keyboard has the specified key released (independent of the# ## logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.# ### ## Note that the logical state of a device (as seen by client applications) may lag the physical state if# ## device event processing is frozen.# ### ## A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). It is not required that all modifiers specified# ## have currently assigned KeyCodes. A keycode argument of AnyKey is equivalent to issuing the request for# ## all possible KeyCodes. Otherwise, the specified keycode must be in the range specified by min_keycode# ## and max_keycode in the connection setup, or a BadValue error results.# ### ## If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess# ## error results. When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error# ## results (no grabs are established) if there is a conflicting grab for any combination.# ### ### proc xcb_grab_key*(c: ptr xcb_connection_t; owner_events: uint8;# grab_window: xcb_window_t; modifiers: uint16;# key: xcb_keycode_t; pointer_mode: uint8; keyboard_mode: uint8): xcb_void_cookie_t# ## *# ## @brief release a key combination# ### ## @param c The connection# ## @param key The keycode of the specified key combination.# ## \n# ## Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.# ## @param grab_window The window on which the grabbed key combination will be released.# ## @param modifiers The modifiers of the specified key combination.# ## \n# ## Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination# ## with every possible modifier combination.# ## @return A cookie# ### ## Releases the key combination on \a grab_window if you grabbed it using# ## `xcb_grab_key` before.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_ungrab_key_checked*(c: ptr xcb_connection_t; key: xcb_keycode_t;# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t# ## *# ## @brief release a key combination# ### ## @param c The connection# ## @param key The keycode of the specified key combination.# ## \n# ## Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.# ## @param grab_window The window on which the grabbed key combination will be released.# ## @param modifiers The modifiers of the specified key combination.# ## \n# ## Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination# ## with every possible modifier combination.# ## @return A cookie# ### ## Releases the key combination on \a grab_window if you grabbed it using# ## `xcb_grab_key` before.# ### ### proc xcb_ungrab_key*(c: ptr xcb_connection_t; key: xcb_keycode_t;# grab_window: xcb_window_t; modifiers: uint16): xcb_void_cookie_t# ## *# ## @brief release queued events# ### ## @param c The connection# ## @param mode A bitmask of #xcb_allow_t values.# ## @param mode \n# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Releases queued events if the client has caused a device (pointer/keyboard) to# ## freeze due to grabbing it actively. This request has no effect if \a time is# ## earlier than the last-grab time of the most recent active grab for this client# ## or if \a time is later than the current X server time.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_allow_events_checked*(c: ptr xcb_connection_t; mode: uint8;# time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief release queued events# ### ## @param c The connection# ## @param mode A bitmask of #xcb_allow_t values.# ## @param mode \n# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Releases queued events if the client has caused a device (pointer/keyboard) to# ## freeze due to grabbing it actively. This request has no effect if \a time is# ## earlier than the last-grab time of the most recent active grab for this client# ## or if \a time is later than the current X server time.# ### ### proc xcb_allow_events*(c: ptr xcb_connection_t; mode: uint8; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_grab_server_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_grab_server*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_ungrab_server_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_ungrab_server*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ## @brief get pointer coordinates# ### ## @param c The connection# ## @param window A window to check if the pointer is on the same screen as \a window (see the# ## `same_screen` field in the reply).# ## @return A cookie# ### ## Gets the root window the pointer is logically on and the pointer coordinates# ## relative to the root window's origin.# ### proc xcb_timecoord_next*(i: ptr xcb_timecoord_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_timecoord_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_timecoord_end*(i: xcb_timecoord_iterator_t): xcb_generic_iterator_t# proc xcb_get_motion_events_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_motion_events*(c: ptr xcb_connection_t; window: xcb_window_t;# start: xcb_timestamp_t; stop: xcb_timestamp_t): xcb_get_motion_events_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_motion_events_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t;# start: xcb_timestamp_t; stop: xcb_timestamp_t): xcb_get_motion_events_cookie_t# proc xcb_get_motion_events_events*(R: ptr xcb_get_motion_events_reply_t): ptr xcb_timecoord_t# proc xcb_get_motion_events_events_length*(R: ptr xcb_get_motion_events_reply_t): cint# proc xcb_get_motion_events_events_iterator*(R: ptr xcb_get_motion_events_reply_t): xcb_timecoord_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_motion_events_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_motion_events_reply*(c: ptr xcb_connection_t; cookie: xcb_get_motion_events_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_motion_events_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_translate_coordinates*(c: ptr xcb_connection_t; src_window: xcb_window_t;# dst_window: xcb_window_t; src_x: int16;# src_y: int16): xcb_translate_coordinates_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_translate_coordinates_unchecked*(c: ptr xcb_connection_t;# src_window: xcb_window_t; dst_window: xcb_window_t; src_x: int16; src_y: int16): xcb_translate_coordinates_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_translate_coordinates_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_translate_coordinates_reply*(c: ptr xcb_connection_t; cookie: xcb_translate_coordinates_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_translate_coordinates_reply_t# ## *# ## @brief move mouse pointer# ### ## @param c The connection# ## @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to# ## \a src_window.# ## @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)# ## relative to the current position of the pointer.# ## @return A cookie# ### ## Moves the mouse pointer to the specified position.# ### ## If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to# ## \a src_window.# ### ## If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)# ## relative to the current position of the pointer.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_warp_pointer_checked*(c: ptr xcb_connection_t; src_window: xcb_window_t;# dst_window: xcb_window_t; src_x: int16;# src_y: int16; src_width: uint16;# src_height: uint16; dst_x: int16; dst_y: int16): xcb_void_cookie_t# ## *# ## @brief move mouse pointer# ### ## @param c The connection# ## @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to# ## \a src_window.# ## @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)# ## relative to the current position of the pointer.# ## @return A cookie# ### ## Moves the mouse pointer to the specified position.# ### ## If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the# ## pointer is inside \a src_window and within the rectangle specified by (\a src_x,# ## \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to# ## \a src_window.# ### ## If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the# ## offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is# ## `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)# ## relative to the current position of the pointer.# ### ### proc xcb_warp_pointer*(c: ptr xcb_connection_t; src_window: xcb_window_t;# dst_window: xcb_window_t; src_x: int16; src_y: int16;# src_width: uint16; src_height: uint16; dst_x: int16;# dst_y: int16): xcb_void_cookie_t# ## *# ## @brief Sets input focus# ### ## @param c The connection# ## @param revert_to A bitmask of #xcb_input_focus_t values.# ## @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus# ## is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).# ## @param focus The window to focus. All keyboard events will be reported to this window. The# ## window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).# ## \n# ## If \a focus is `XCB_NONE` (TODO), all keyboard events are# ## discarded until a new focus window is set.# ## \n# ## If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the# ## screen on which the pointer is on currently.# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Changes the input focus and the last-focus-change time. If the specified \a time# ## is earlier than the current last-focus-change time, the request is ignored (to# ## avoid race conditions when running X over the network).# ### ## A FocusIn and FocusOut event is generated when focus is changed.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_input_focus_checked*(c: ptr xcb_connection_t; revert_to: uint8;# focus: xcb_window_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ## @brief Sets input focus# ### ## @param c The connection# ## @param revert_to A bitmask of #xcb_input_focus_t values.# ## @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus# ## is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).# ## @param focus The window to focus. All keyboard events will be reported to this window. The# ## window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).# ## \n# ## If \a focus is `XCB_NONE` (TODO), all keyboard events are# ## discarded until a new focus window is set.# ## \n# ## If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the# ## screen on which the pointer is on currently.# ## @param time Timestamp to avoid race conditions when running X over the network.# ## \n# ## The special value `XCB_CURRENT_TIME` will be replaced with the current server# ## time.# ## @return A cookie# ### ## Changes the input focus and the last-focus-change time. If the specified \a time# ## is earlier than the current last-focus-change time, the request is ignored (to# ## avoid race conditions when running X over the network).# ### ## A FocusIn and FocusOut event is generated when focus is changed.# ### ### proc xcb_set_input_focus*(c: ptr xcb_connection_t; revert_to: uint8;# focus: xcb_window_t; time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_input_focus*(c: ptr xcb_connection_t): xcb_get_input_focus_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_input_focus_unchecked*(c: ptr xcb_connection_t): xcb_get_input_focus_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_input_focus_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_input_focus_reply*(c: ptr xcb_connection_t; cookie: xcb_get_input_focus_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_input_focus_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_query_keymap*(c: ptr xcb_connection_t): xcb_query_keymap_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_keymap_unchecked*(c: ptr xcb_connection_t): xcb_query_keymap_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_keymap_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_keymap_reply*(c: ptr xcb_connection_t; cookie: xcb_query_keymap_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_keymap_reply_t# proc xcb_open_font_sizeof*(_buffer: pointer): cint# ## *# ## @brief opens a font# ### ## @param c The connection# ## @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.# ## @param name_len Length (in bytes) of \a name.# ## @param name A pattern describing an X core font.# ## @return A cookie# ### ## Opens any X core font matching the given \a name (for example "-misc-fixed-*").# ### ## Note that X core fonts are deprecated (but still supported) in favor of# ## client-side rendering using Xft.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_open_font_checked*(c: ptr xcb_connection_t; fid: xcb_font_t;# name_len: uint16; name: cstring): xcb_void_cookie_t# ## *# ## @brief opens a font# ### ## @param c The connection# ## @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.# ## @param name_len Length (in bytes) of \a name.# ## @param name A pattern describing an X core font.# ## @return A cookie# ### ## Opens any X core font matching the given \a name (for example "-misc-fixed-*").# ### ## Note that X core fonts are deprecated (but still supported) in favor of# ## client-side rendering using Xft.# ### ### proc xcb_open_font*(c: ptr xcb_connection_t; fid: xcb_font_t; name_len: uint16;# name: cstring): xcb_void_cookie_t# proc xcb_open_font_name*(R: ptr xcb_open_font_request_t): cstring# proc xcb_open_font_name_length*(R: ptr xcb_open_font_request_t): cint# proc xcb_open_font_name_end*(R: ptr xcb_open_font_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_close_font_checked*(c: ptr xcb_connection_t; font: xcb_font_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_close_font*(c: ptr xcb_connection_t; font: xcb_font_t): xcb_void_cookie_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_fontprop_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_fontprop_t)# ### proc xcb_fontprop_next*(i: ptr xcb_fontprop_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_fontprop_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_fontprop_end*(i: xcb_fontprop_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_charinfo_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_charinfo_t)# ### proc xcb_charinfo_next*(i: ptr xcb_charinfo_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_charinfo_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_charinfo_end*(i: xcb_charinfo_iterator_t): xcb_generic_iterator_t# proc xcb_query_font_sizeof*(_buffer: pointer): cint# ## *# ## @brief query font metrics# ### ## @param c The connection# ## @param font The fontable (Font or Graphics Context) to query.# ## @return A cookie# ### ## Queries information associated with the font.# ### ### proc xcb_query_font*(c: ptr xcb_connection_t; font: xcb_fontable_t): xcb_query_font_cookie_t# ## *# ## @brief query font metrics# ### ## @param c The connection# ## @param font The fontable (Font or Graphics Context) to query.# ## @return A cookie# ### ## Queries information associated with the font.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_font_unchecked*(c: ptr xcb_connection_t; font: xcb_fontable_t): xcb_query_font_cookie_t# proc xcb_query_font_properties*(R: ptr xcb_query_font_reply_t): ptr xcb_fontprop_t# proc xcb_query_font_properties_length*(R: ptr xcb_query_font_reply_t): cint# proc xcb_query_font_properties_iterator*(R: ptr xcb_query_font_reply_t): xcb_fontprop_iterator_t# proc xcb_query_font_char_infos*(R: ptr xcb_query_font_reply_t): ptr xcb_charinfo_t# proc xcb_query_font_char_infos_length*(R: ptr xcb_query_font_reply_t): cint# proc xcb_query_font_char_infos_iterator*(R: ptr xcb_query_font_reply_t): xcb_charinfo_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_font_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_font_reply*(c: ptr xcb_connection_t; cookie: xcb_query_font_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_font_reply_t# proc xcb_query_text_extents_sizeof*(_buffer: pointer; string_len: uint32): cint# ## *# ## @brief get text extents# ### ## @param c The connection# ## @param font The \a font to calculate text extents in. You can also pass a graphics context.# ## @param string_len The number of characters in \a string.# ## @param string The text to get text extents for.# ## @return A cookie# ### ## Query text extents from the X11 server. This request returns the bounding box# ## of the specified 16-bit character string in the specified \a font or the font# ## contained in the specified graphics context.# ### ## `font_ascent` is set to the maximum of the ascent metrics of all characters in# ## the string. `font_descent` is set to the maximum of the descent metrics.# ## `overall_width` is set to the sum of the character-width metrics of all# ## characters in the string. For each character in the string, let W be the sum of# ## the character-width metrics of all characters preceding it in the string. Let L# ## be the left-side-bearing metric of the character plus W. Let R be the# ## right-side-bearing metric of the character plus W. The lbearing member is set# ## to the minimum L of all characters in the string. The rbearing member is set to# ## the maximum R.# ### ## For fonts defined with linear indexing rather than 2-byte matrix indexing, each# ## `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the# ## most significant byte. If the font has no defined default character, undefined# ## characters in the string are taken to have all zero metrics.# ### ## Characters with all zero metrics are ignored. If the font has no defined# ## default_char, the undefined characters in the string are also ignored.# ### ### proc xcb_query_text_extents*(c: ptr xcb_connection_t; font: xcb_fontable_t;# string_len: uint32; string: ptr xcb_char2b_t): xcb_query_text_extents_cookie_t# ## *# ## @brief get text extents# ### ## @param c The connection# ## @param font The \a font to calculate text extents in. You can also pass a graphics context.# ## @param string_len The number of characters in \a string.# ## @param string The text to get text extents for.# ## @return A cookie# ### ## Query text extents from the X11 server. This request returns the bounding box# ## of the specified 16-bit character string in the specified \a font or the font# ## contained in the specified graphics context.# ### ## `font_ascent` is set to the maximum of the ascent metrics of all characters in# ## the string. `font_descent` is set to the maximum of the descent metrics.# ## `overall_width` is set to the sum of the character-width metrics of all# ## characters in the string. For each character in the string, let W be the sum of# ## the character-width metrics of all characters preceding it in the string. Let L# ## be the left-side-bearing metric of the character plus W. Let R be the# ## right-side-bearing metric of the character plus W. The lbearing member is set# ## to the minimum L of all characters in the string. The rbearing member is set to# ## the maximum R.# ### ## For fonts defined with linear indexing rather than 2-byte matrix indexing, each# ## `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the# ## most significant byte. If the font has no defined default character, undefined# ## characters in the string are taken to have all zero metrics.# ### ## Characters with all zero metrics are ignored. If the font has no defined# ## default_char, the undefined characters in the string are also ignored.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_text_extents_unchecked*(c: ptr xcb_connection_t;# font: xcb_fontable_t; string_len: uint32;# string: ptr xcb_char2b_t): xcb_query_text_extents_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_text_extents_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_text_extents_reply*(c: ptr xcb_connection_t; cookie: xcb_query_text_extents_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_text_extents_reply_t# proc xcb_str_sizeof*(_buffer: pointer): cint# proc xcb_str_name*(R: ptr xcb_str_t): cstring# proc xcb_str_name_length*(R: ptr xcb_str_t): cint# proc xcb_str_name_end*(R: ptr xcb_str_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_str_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_str_t)# ### proc xcb_str_next*(i: ptr xcb_str_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_str_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_str_end*(i: xcb_str_iterator_t): xcb_generic_iterator_t# proc xcb_list_fonts_sizeof*(_buffer: pointer): cint# ## *# ## @brief get matching font names# ### ## @param c The connection# ## @param max_names The maximum number of fonts to be returned.# ## @param pattern_len The length (in bytes) of \a pattern.# ## @param pattern A font pattern, for example "-misc-fixed-*".# ## \n# ## The asterisk (*) is a wildcard for any number of characters. The question mark# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does# ## not matter.# ## @return A cookie# ### ## Gets a list of available font names which match the given \a pattern.# ### ### proc xcb_list_fonts*(c: ptr xcb_connection_t; max_names: uint16;# pattern_len: uint16; pattern: cstring): xcb_list_fonts_cookie_t# ## *# ## @brief get matching font names# ### ## @param c The connection# ## @param max_names The maximum number of fonts to be returned.# ## @param pattern_len The length (in bytes) of \a pattern.# ## @param pattern A font pattern, for example "-misc-fixed-*".# ## \n# ## The asterisk (*) is a wildcard for any number of characters. The question mark# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does# ## not matter.# ## @return A cookie# ### ## Gets a list of available font names which match the given \a pattern.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_list_fonts_unchecked*(c: ptr xcb_connection_t; max_names: uint16;# pattern_len: uint16; pattern: cstring): xcb_list_fonts_cookie_t# proc xcb_list_fonts_names_length*(R: ptr xcb_list_fonts_reply_t): cint# proc xcb_list_fonts_names_iterator*(R: ptr xcb_list_fonts_reply_t): xcb_str_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_list_fonts_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_list_fonts_reply*(c: ptr xcb_connection_t; cookie: xcb_list_fonts_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_list_fonts_reply_t# proc xcb_list_fonts_with_info_sizeof*(_buffer: pointer): cint# ## *# ## @brief get matching font names and information# ### ## @param c The connection# ## @param max_names The maximum number of fonts to be returned.# ## @param pattern_len The length (in bytes) of \a pattern.# ## @param pattern A font pattern, for example "-misc-fixed-*".# ## \n# ## The asterisk (*) is a wildcard for any number of characters. The question mark# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does# ## not matter.# ## @return A cookie# ### ## Gets a list of available font names which match the given \a pattern.# ### ### proc xcb_list_fonts_with_info*(c: ptr xcb_connection_t; max_names: uint16;# pattern_len: uint16; pattern: cstring): xcb_list_fonts_with_info_cookie_t# ## *# ## @brief get matching font names and information# ### ## @param c The connection# ## @param max_names The maximum number of fonts to be returned.# ## @param pattern_len The length (in bytes) of \a pattern.# ## @param pattern A font pattern, for example "-misc-fixed-*".# ## \n# ## The asterisk (*) is a wildcard for any number of characters. The question mark# ## (?) is a wildcard for a single character. Use of uppercase or lowercase does# ## not matter.# ## @return A cookie# ### ## Gets a list of available font names which match the given \a pattern.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_list_fonts_with_info_unchecked*(c: ptr xcb_connection_t;# max_names: uint16;# pattern_len: uint16; pattern: cstring): xcb_list_fonts_with_info_cookie_t# proc xcb_list_fonts_with_info_properties*(R: ptr xcb_list_fonts_with_info_reply_t): ptr xcb_fontprop_t# proc xcb_list_fonts_with_info_properties_length*(# R: ptr xcb_list_fonts_with_info_reply_t): cint# proc xcb_list_fonts_with_info_properties_iterator*(# R: ptr xcb_list_fonts_with_info_reply_t): xcb_fontprop_iterator_t# proc xcb_list_fonts_with_info_name*(R: ptr xcb_list_fonts_with_info_reply_t): cstring# proc xcb_list_fonts_with_info_name_length*(# R: ptr xcb_list_fonts_with_info_reply_t): cint# proc xcb_list_fonts_with_info_name_end*(R: ptr xcb_list_fonts_with_info_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_list_fonts_with_info_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_list_fonts_with_info_reply*(c: ptr xcb_connection_t; cookie: xcb_list_fonts_with_info_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_list_fonts_with_info_reply_t# proc xcb_set_font_path_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_font_path_checked*(c: ptr xcb_connection_t; font_qty: uint16;# font: ptr xcb_str_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_font_path*(c: ptr xcb_connection_t; font_qty: uint16;# font: ptr xcb_str_t): xcb_void_cookie_t# proc xcb_set_font_path_font_length*(R: ptr xcb_set_font_path_request_t): cint# proc xcb_set_font_path_font_iterator*(R: ptr xcb_set_font_path_request_t): xcb_str_iterator_t# proc xcb_get_font_path_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_font_path*(c: ptr xcb_connection_t): xcb_get_font_path_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_font_path_unchecked*(c: ptr xcb_connection_t): xcb_get_font_path_cookie_t# proc xcb_get_font_path_path_length*(R: ptr xcb_get_font_path_reply_t): cint# proc xcb_get_font_path_path_iterator*(R: ptr xcb_get_font_path_reply_t): xcb_str_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_font_path_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_font_path_reply*(c: ptr xcb_connection_t; cookie: xcb_get_font_path_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_font_path_reply_t# ## *# ## @brief Creates a pixmap# ### ## @param c The connection# ## @param depth TODO# ## @param pid The ID with which you will refer to the new pixmap, created by# ## `xcb_generate_id`.# ## @param drawable Drawable to get the screen from.# ## @param width The width of the new pixmap.# ## @param height The height of the new pixmap.# ## @return A cookie# ### ## Creates a pixmap. The pixmap can only be used on the same screen as \a drawable# ## is on and only with drawables of the same \a depth.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_pixmap_checked*(c: ptr xcb_connection_t; depth: uint8;# pid: xcb_pixmap_t; drawable: xcb_drawable_t;# width: uint16; height: uint16): xcb_void_cookie_t# ## *# ## @brief Creates a pixmap# ### ## @param c The connection# ## @param depth TODO# ## @param pid The ID with which you will refer to the new pixmap, created by# ## `xcb_generate_id`.# ## @param drawable Drawable to get the screen from.# ## @param width The width of the new pixmap.# ## @param height The height of the new pixmap.# ## @return A cookie# ### ## Creates a pixmap. The pixmap can only be used on the same screen as \a drawable# ## is on and only with drawables of the same \a depth.# ### ### proc xcb_create_pixmap*(c: ptr xcb_connection_t; depth: uint8; pid: xcb_pixmap_t;# drawable: xcb_drawable_t; width: uint16; height: uint16): xcb_void_cookie_t# ## *# ## @brief Destroys a pixmap# ### ## @param c The connection# ## @param pixmap The pixmap to destroy.# ## @return A cookie# ### ## Deletes the association between the pixmap ID and the pixmap. The pixmap# ## storage will be freed when there are no more references to it.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_free_pixmap_checked*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t# ## *# ## @brief Destroys a pixmap# ### ## @param c The connection# ## @param pixmap The pixmap to destroy.# ## @return A cookie# ### ## Deletes the association between the pixmap ID and the pixmap. The pixmap# ## storage will be freed when there are no more references to it.# ### ### proc xcb_free_pixmap*(c: ptr xcb_connection_t; pixmap: xcb_pixmap_t): xcb_void_cookie_t# proc xcb_create_gc_value_list_serialize*(_buffer: ptr pointer; value_mask: uint32;# _aux: ptr xcb_create_gc_value_list_t): cint# proc xcb_create_gc_value_list_unpack*(_buffer: pointer; value_mask: uint32;# _aux: ptr xcb_create_gc_value_list_t): cint# proc xcb_create_gc_value_list_sizeof*(_buffer: pointer; value_mask: uint32): cint# proc xcb_create_gc_sizeof*(_buffer: pointer): cint# ## *# ## @brief Creates a graphics context# ### ## @param c The connection# ## @param cid The ID with which you will refer to the graphics context, created by# ## `xcb_generate_id`.# ## @param drawable Drawable to get the root/depth from.# ## @return A cookie# ### ## Creates a graphics context. The graphics context can be used with any drawable# ## that has the same root and depth as the specified drawable.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_gc_checked*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;# drawable: xcb_drawable_t; value_mask: uint32;# value_list: pointer): xcb_void_cookie_t# ## *# ## @brief Creates a graphics context# ### ## @param c The connection# ## @param cid The ID with which you will refer to the graphics context, created by# ## `xcb_generate_id`.# ## @param drawable Drawable to get the root/depth from.# ## @return A cookie# ### ## Creates a graphics context. The graphics context can be used with any drawable# ## that has the same root and depth as the specified drawable.# ### ### proc xcb_create_gc*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;# drawable: xcb_drawable_t; value_mask: uint32;# value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}# ## *# ## @brief Creates a graphics context# ### ## @param c The connection# ## @param cid The ID with which you will refer to the graphics context, created by# ## `xcb_generate_id`.# ## @param drawable Drawable to get the root/depth from.# ## @return A cookie# ### ## Creates a graphics context. The graphics context can be used with any drawable# ## that has the same root and depth as the specified drawable.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_gc_aux_checked*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;# drawable: xcb_drawable_t; value_mask: uint32;# value_list: ptr xcb_create_gc_value_list_t): xcb_void_cookie_t# ## *# ## @brief Creates a graphics context# ### ## @param c The connection# ## @param cid The ID with which you will refer to the graphics context, created by# ## `xcb_generate_id`.# ## @param drawable Drawable to get the root/depth from.# ## @return A cookie# ### ## Creates a graphics context. The graphics context can be used with any drawable# ## that has the same root and depth as the specified drawable.# ### ### proc xcb_create_gc_aux*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;# drawable: xcb_drawable_t; value_mask: uint32;# value_list: ptr xcb_create_gc_value_list_t): xcb_void_cookie_t# proc xcb_create_gc_value_list*(R: ptr xcb_create_gc_request_t): pointer# proc xcb_change_gc_value_list_serialize*(_buffer: ptr pointer; value_mask: uint32;# _aux: ptr xcb_change_gc_value_list_t): cint# proc xcb_change_gc_value_list_unpack*(_buffer: pointer; value_mask: uint32;# _aux: ptr xcb_change_gc_value_list_t): cint# proc xcb_change_gc_value_list_sizeof*(_buffer: pointer; value_mask: uint32): cint# proc xcb_change_gc_sizeof*(_buffer: pointer): cint# ## *# ## @brief change graphics context components# ### ## @param c The connection# ## @param gc The graphics context to change.# ## @param value_mask A bitmask of #xcb_gc_t values.# ## @param value_mask \n# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The# ## order has to correspond to the order of possible \a value_mask bits. See the# ## example.# ## @return A cookie# ### ## Changes the components specified by \a value_mask for the specified graphics context.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_gc_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ## @brief change graphics context components# ### ## @param c The connection# ## @param gc The graphics context to change.# ## @param value_mask A bitmask of #xcb_gc_t values.# ## @param value_mask \n# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The# ## order has to correspond to the order of possible \a value_mask bits. See the# ## example.# ## @return A cookie# ### ## Changes the components specified by \a value_mask for the specified graphics context.# ### ### proc xcb_change_gc*(c: ptr xcb_connection_t; gc: xcb_gcontext_t; value_mask: uint32;# value_list: pointer): xcb_void_cookie_t# ## *# ## @brief change graphics context components# ### ## @param c The connection# ## @param gc The graphics context to change.# ## @param value_mask A bitmask of #xcb_gc_t values.# ## @param value_mask \n# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The# ## order has to correspond to the order of possible \a value_mask bits. See the# ## example.# ## @return A cookie# ### ## Changes the components specified by \a value_mask for the specified graphics context.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_gc_aux_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# value_mask: uint32;# value_list: ptr xcb_change_gc_value_list_t): xcb_void_cookie_t# ## *# ## @brief change graphics context components# ### ## @param c The connection# ## @param gc The graphics context to change.# ## @param value_mask A bitmask of #xcb_gc_t values.# ## @param value_mask \n# ## @param value_list Values for each of the components specified in the bitmask \a value_mask. The# ## order has to correspond to the order of possible \a value_mask bits. See the# ## example.# ## @return A cookie# ### ## Changes the components specified by \a value_mask for the specified graphics context.# ### ### proc xcb_change_gc_aux*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# value_mask: uint32;# value_list: ptr xcb_change_gc_value_list_t): xcb_void_cookie_t# proc xcb_change_gc_value_list*(R: ptr xcb_change_gc_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_copy_gc_checked*(c: ptr xcb_connection_t; src_gc: xcb_gcontext_t;# dst_gc: xcb_gcontext_t; value_mask: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_copy_gc*(c: ptr xcb_connection_t; src_gc: xcb_gcontext_t;# dst_gc: xcb_gcontext_t; value_mask: uint32): xcb_void_cookie_t# proc xcb_set_dashes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_dashes_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# dash_offset: uint16; dashes_len: uint16;# dashes: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_dashes*(c: ptr xcb_connection_t; gc: xcb_gcontext_t;# dash_offset: uint16; dashes_len: uint16; dashes: ptr uint8): xcb_void_cookie_t# proc xcb_set_dashes_dashes*(R: ptr xcb_set_dashes_request_t): ptr uint8# proc xcb_set_dashes_dashes_length*(R: ptr xcb_set_dashes_request_t): cint# proc xcb_set_dashes_dashes_end*(R: ptr xcb_set_dashes_request_t): xcb_generic_iterator_t# proc xcb_set_clip_rectangles_sizeof*(_buffer: pointer; rectangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_clip_rectangles_checked*(c: ptr xcb_connection_t; ordering: uint8;# gc: xcb_gcontext_t; clip_x_origin: int16;# clip_y_origin: int16;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_clip_rectangles*(c: ptr xcb_connection_t; ordering: uint8;# gc: xcb_gcontext_t; clip_x_origin: int16;# clip_y_origin: int16; rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_set_clip_rectangles_rectangles*(R: ptr xcb_set_clip_rectangles_request_t): ptr xcb_rectangle_t# proc xcb_set_clip_rectangles_rectangles_length*(# R: ptr xcb_set_clip_rectangles_request_t): cint# proc xcb_set_clip_rectangles_rectangles_iterator*(# R: ptr xcb_set_clip_rectangles_request_t): xcb_rectangle_iterator_t# ## *# ## @brief Destroys a graphics context# ### ## @param c The connection# ## @param gc The graphics context to destroy.# ## @return A cookie# ### ## Destroys the specified \a gc and all associated storage.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_free_gc_checked*(c: ptr xcb_connection_t; gc: xcb_gcontext_t): xcb_void_cookie_t# ## *# ## @brief Destroys a graphics context# ### ## @param c The connection# ## @param gc The graphics context to destroy.# ## @return A cookie# ### ## Destroys the specified \a gc and all associated storage.# ### ### proc xcb_free_gc*(c: ptr xcb_connection_t; gc: xcb_gcontext_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_clear_area_checked*(c: ptr xcb_connection_t; exposures: uint8;# window: xcb_window_t; x: int16; y: int16;# width: uint16; height: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_clear_area*(c: ptr xcb_connection_t; exposures: uint8;# window: xcb_window_t; x: int16; y: int16; width: uint16;# height: uint16): xcb_void_cookie_t# ## *# ## @brief copy areas# ### ## @param c The connection# ## @param src_drawable The source drawable (Window or Pixmap).# ## @param dst_drawable The destination drawable (Window or Pixmap).# ## @param gc The graphics context to use.# ## @param src_x The source X coordinate.# ## @param src_y The source Y coordinate.# ## @param dst_x The destination X coordinate.# ## @param dst_y The destination Y coordinate.# ## @param width The width of the area to copy (in pixels).# ## @param height The height of the area to copy (in pixels).# ## @return A cookie# ### ## Copies the specified rectangle from \a src_drawable to \a dst_drawable.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_copy_area_checked*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t;# src_x: int16; src_y: int16; dst_x: int16;# dst_y: int16; width: uint16; height: uint16): xcb_void_cookie_t# ## *# ## @brief copy areas# ### ## @param c The connection# ## @param src_drawable The source drawable (Window or Pixmap).# ## @param dst_drawable The destination drawable (Window or Pixmap).# ## @param gc The graphics context to use.# ## @param src_x The source X coordinate.# ## @param src_y The source Y coordinate.# ## @param dst_x The destination X coordinate.# ## @param dst_y The destination Y coordinate.# ## @param width The width of the area to copy (in pixels).# ## @param height The height of the area to copy (in pixels).# ## @return A cookie# ### ## Copies the specified rectangle from \a src_drawable to \a dst_drawable.# ### ### proc xcb_copy_area*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t; src_x: int16;# src_y: int16; dst_x: int16; dst_y: int16; width: uint16;# height: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_copy_plane_checked*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t;# src_x: int16; src_y: int16; dst_x: int16;# dst_y: int16; width: uint16; height: uint16;# bit_plane: uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_copy_plane*(c: ptr xcb_connection_t; src_drawable: xcb_drawable_t;# dst_drawable: xcb_drawable_t; gc: xcb_gcontext_t;# src_x: int16; src_y: int16; dst_x: int16; dst_y: int16;# width: uint16; height: uint16; bit_plane: uint32): xcb_void_cookie_t# proc xcb_poly_point_sizeof*(_buffer: pointer; points_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_point_checked*(c: ptr xcb_connection_t; coordinate_mode: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_poly_point*(c: ptr xcb_connection_t; coordinate_mode: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t# proc xcb_poly_point_points*(R: ptr xcb_poly_point_request_t): ptr xcb_point_t# proc xcb_poly_point_points_length*(R: ptr xcb_poly_point_request_t): cint# proc xcb_poly_point_points_iterator*(R: ptr xcb_poly_point_request_t): xcb_point_iterator_t# proc xcb_poly_line_sizeof*(_buffer: pointer; points_len: uint32): cint# ## *# ## @brief draw lines# ### ## @param c The connection# ## @param coordinate_mode A bitmask of #xcb_coord_mode_t values.# ## @param coordinate_mode \n# ## @param drawable The drawable to draw the line(s) on.# ## @param gc The graphics context to use.# ## @param points_len The number of `xcb_point_t` structures in \a points.# ## @param points An array of points.# ## @return A cookie# ### ## Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])# ## in the \a points array. The lines are drawn in the order listed in the array.# ## They join correctly at all intermediate points, and if the first and last# ## points coincide, the first and last lines also join correctly. For any given# ## line, a pixel is not drawn more than once. If thin (zero line-width) lines# ## intersect, the intersecting pixels are drawn multiple times. If wide lines# ## intersect, the intersecting pixels are drawn only once, as though the entire# ## request were a single, filled shape.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_line_checked*(c: ptr xcb_connection_t; coordinate_mode: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t# ## *# ## @brief draw lines# ### ## @param c The connection# ## @param coordinate_mode A bitmask of #xcb_coord_mode_t values.# ## @param coordinate_mode \n# ## @param drawable The drawable to draw the line(s) on.# ## @param gc The graphics context to use.# ## @param points_len The number of `xcb_point_t` structures in \a points.# ## @param points An array of points.# ## @return A cookie# ### ## Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])# ## in the \a points array. The lines are drawn in the order listed in the array.# ## They join correctly at all intermediate points, and if the first and last# ## points coincide, the first and last lines also join correctly. For any given# ## line, a pixel is not drawn more than once. If thin (zero line-width) lines# ## intersect, the intersecting pixels are drawn multiple times. If wide lines# ## intersect, the intersecting pixels are drawn only once, as though the entire# ## request were a single, filled shape.# ### ### proc xcb_poly_line*(c: ptr xcb_connection_t; coordinate_mode: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t# proc xcb_poly_line_points*(R: ptr xcb_poly_line_request_t): ptr xcb_point_t# proc xcb_poly_line_points_length*(R: ptr xcb_poly_line_request_t): cint# proc xcb_poly_line_points_iterator*(R: ptr xcb_poly_line_request_t): xcb_point_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_segment_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_segment_t)# ### proc xcb_segment_next*(i: ptr xcb_segment_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_segment_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_segment_end*(i: xcb_segment_iterator_t): xcb_generic_iterator_t# proc xcb_poly_segment_sizeof*(_buffer: pointer; segments_len: uint32): cint# ## *# ## @brief draw lines# ### ## @param c The connection# ## @param drawable A drawable (Window or Pixmap) to draw on.# ## @param gc The graphics context to use.# ## \n# ## TODO: document which attributes of a gc are used# ## @param segments_len The number of `xcb_segment_t` structures in \a segments.# ## @param segments An array of `xcb_segment_t` structures.# ## @return A cookie# ### ## Draws multiple, unconnected lines. For each segment, a line is drawn between# ## (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of# ## `xcb_segment_t` structures and does not perform joining at coincident# ## endpoints. For any given line, a pixel is not drawn more than once. If lines# ## intersect, the intersecting pixels are drawn multiple times.# ### ## TODO: include the xcb_segment_t data structure# ### ## TODO: an example# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_segment_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; segments_len: uint32;# segments: ptr xcb_segment_t): xcb_void_cookie_t# ## *# ## @brief draw lines# ### ## @param c The connection# ## @param drawable A drawable (Window or Pixmap) to draw on.# ## @param gc The graphics context to use.# ## \n# ## TODO: document which attributes of a gc are used# ## @param segments_len The number of `xcb_segment_t` structures in \a segments.# ## @param segments An array of `xcb_segment_t` structures.# ## @return A cookie# ### ## Draws multiple, unconnected lines. For each segment, a line is drawn between# ## (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of# ## `xcb_segment_t` structures and does not perform joining at coincident# ## endpoints. For any given line, a pixel is not drawn more than once. If lines# ## intersect, the intersecting pixels are drawn multiple times.# ### ## TODO: include the xcb_segment_t data structure# ### ## TODO: an example# ### ### proc xcb_poly_segment*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; segments_len: uint32;# segments: ptr xcb_segment_t): xcb_void_cookie_t# proc xcb_poly_segment_segments*(R: ptr xcb_poly_segment_request_t): ptr xcb_segment_t# proc xcb_poly_segment_segments_length*(R: ptr xcb_poly_segment_request_t): cint# proc xcb_poly_segment_segments_iterator*(R: ptr xcb_poly_segment_request_t): xcb_segment_iterator_t# proc xcb_poly_rectangle_sizeof*(_buffer: pointer; rectangles_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_rectangle_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_poly_rectangle*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_poly_rectangle_rectangles*(R: ptr xcb_poly_rectangle_request_t): ptr xcb_rectangle_t# proc xcb_poly_rectangle_rectangles_length*(R: ptr xcb_poly_rectangle_request_t): cint# proc xcb_poly_rectangle_rectangles_iterator*(R: ptr xcb_poly_rectangle_request_t): xcb_rectangle_iterator_t# proc xcb_poly_arc_sizeof*(_buffer: pointer; arcs_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_arc_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; arcs_len: uint32;# arcs: ptr xcb_arc_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_poly_arc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; arcs_len: uint32; arcs: ptr xcb_arc_t): xcb_void_cookie_t# proc xcb_poly_arc_arcs*(R: ptr xcb_poly_arc_request_t): ptr xcb_arc_t# proc xcb_poly_arc_arcs_length*(R: ptr xcb_poly_arc_request_t): cint# proc xcb_poly_arc_arcs_iterator*(R: ptr xcb_poly_arc_request_t): xcb_arc_iterator_t# proc xcb_fill_poly_sizeof*(_buffer: pointer; points_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_fill_poly_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; shape: uint8;# coordinate_mode: uint8; points_len: uint32;# points: ptr xcb_point_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_fill_poly*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; shape: uint8; coordinate_mode: uint8;# points_len: uint32; points: ptr xcb_point_t): xcb_void_cookie_t# proc xcb_fill_poly_points*(R: ptr xcb_fill_poly_request_t): ptr xcb_point_t# proc xcb_fill_poly_points_length*(R: ptr xcb_fill_poly_request_t): cint# proc xcb_fill_poly_points_iterator*(R: ptr xcb_fill_poly_request_t): xcb_point_iterator_t# proc xcb_poly_fill_rectangle_sizeof*(_buffer: pointer; rectangles_len: uint32): cint# ## *# ## @brief Fills rectangles# ### ## @param c The connection# ## @param drawable The drawable (Window or Pixmap) to draw on.# ## @param gc The graphics context to use.# ## \n# ## The following graphics context components are used: function, plane-mask,# ## fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.# ## \n# ## The following graphics context mode-dependent components are used:# ## foreground, background, tile, stipple, tile-stipple-x-origin, and# ## tile-stipple-y-origin.# ## @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.# ## @param rectangles The rectangles to fill.# ## @return A cookie# ### ## Fills the specified rectangle(s) in the order listed in the array. For any# ## given rectangle, each pixel is not drawn more than once. If rectangles# ## intersect, the intersecting pixels are drawn multiple times.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_fill_rectangle_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# ## *# ## @brief Fills rectangles# ### ## @param c The connection# ## @param drawable The drawable (Window or Pixmap) to draw on.# ## @param gc The graphics context to use.# ## \n# ## The following graphics context components are used: function, plane-mask,# ## fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.# ## \n# ## The following graphics context mode-dependent components are used:# ## foreground, background, tile, stipple, tile-stipple-x-origin, and# ## tile-stipple-y-origin.# ## @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.# ## @param rectangles The rectangles to fill.# ## @return A cookie# ### ## Fills the specified rectangle(s) in the order listed in the array. For any# ## given rectangle, each pixel is not drawn more than once. If rectangles# ## intersect, the intersecting pixels are drawn multiple times.# ### ### proc xcb_poly_fill_rectangle*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; rectangles_len: uint32;# rectangles: ptr xcb_rectangle_t): xcb_void_cookie_t# proc xcb_poly_fill_rectangle_rectangles*(R: ptr xcb_poly_fill_rectangle_request_t): ptr xcb_rectangle_t# proc xcb_poly_fill_rectangle_rectangles_length*(# R: ptr xcb_poly_fill_rectangle_request_t): cint# proc xcb_poly_fill_rectangle_rectangles_iterator*(# R: ptr xcb_poly_fill_rectangle_request_t): xcb_rectangle_iterator_t# proc xcb_poly_fill_arc_sizeof*(_buffer: pointer; arcs_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_fill_arc_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; arcs_len: uint32;# arcs: ptr xcb_arc_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_poly_fill_arc*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; arcs_len: uint32; arcs: ptr xcb_arc_t): xcb_void_cookie_t# proc xcb_poly_fill_arc_arcs*(R: ptr xcb_poly_fill_arc_request_t): ptr xcb_arc_t# proc xcb_poly_fill_arc_arcs_length*(R: ptr xcb_poly_fill_arc_request_t): cint# proc xcb_poly_fill_arc_arcs_iterator*(R: ptr xcb_poly_fill_arc_request_t): xcb_arc_iterator_t# proc xcb_put_image_sizeof*(_buffer: pointer; data_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_put_image_checked*(c: ptr xcb_connection_t; format: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# width: uint16; height: uint16; dst_x: int16;# dst_y: int16; left_pad: uint8; depth: uint8;# data_len: uint32; data: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_put_image*(c: ptr xcb_connection_t; format: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; width: uint16;# height: uint16; dst_x: int16; dst_y: int16;# left_pad: uint8; depth: uint8; data_len: uint32;# data: ptr uint8): xcb_void_cookie_t# proc xcb_put_image_data*(R: ptr xcb_put_image_request_t): ptr uint8# proc xcb_put_image_data_length*(R: ptr xcb_put_image_request_t): cint# proc xcb_put_image_data_end*(R: ptr xcb_put_image_request_t): xcb_generic_iterator_t# proc xcb_get_image_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_image*(c: ptr xcb_connection_t; format: uint8;# drawable: xcb_drawable_t; x: int16; y: int16; width: uint16;# height: uint16; plane_mask: uint32): xcb_get_image_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_image_unchecked*(c: ptr xcb_connection_t; format: uint8;# drawable: xcb_drawable_t; x: int16; y: int16;# width: uint16; height: uint16; plane_mask: uint32): xcb_get_image_cookie_t# proc xcb_get_image_data*(R: ptr xcb_get_image_reply_t): ptr uint8# proc xcb_get_image_data_length*(R: ptr xcb_get_image_reply_t): cint# proc xcb_get_image_data_end*(R: ptr xcb_get_image_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_image_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_image_reply*(c: ptr xcb_connection_t; cookie: xcb_get_image_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_image_reply_t# proc xcb_poly_text_8_sizeof*(_buffer: pointer; items_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_text_8_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; x: int16; y: int16;# items_len: uint32; items: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_poly_text_8*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; x: int16; y: int16; items_len: uint32;# items: ptr uint8): xcb_void_cookie_t# proc xcb_poly_text_8_items*(R: ptr xcb_poly_text_8_request_t): ptr uint8# proc xcb_poly_text_8_items_length*(R: ptr xcb_poly_text_8_request_t): cint# proc xcb_poly_text_8_items_end*(R: ptr xcb_poly_text_8_request_t): xcb_generic_iterator_t# proc xcb_poly_text_16_sizeof*(_buffer: pointer; items_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_poly_text_16_checked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; x: int16; y: int16;# items_len: uint32; items: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_poly_text_16*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# gc: xcb_gcontext_t; x: int16; y: int16; items_len: uint32;# items: ptr uint8): xcb_void_cookie_t# proc xcb_poly_text_16_items*(R: ptr xcb_poly_text_16_request_t): ptr uint8# proc xcb_poly_text_16_items_length*(R: ptr xcb_poly_text_16_request_t): cint# proc xcb_poly_text_16_items_end*(R: ptr xcb_poly_text_16_request_t): xcb_generic_iterator_t# proc xcb_image_text_8_sizeof*(_buffer: pointer): cint# ## *# ## @brief Draws text# ### ## @param c The connection# ## @param string_len The length of the \a string. Note that this parameter limited by 255 due to# ## using 8 bits!# ## @param drawable The drawable (Window or Pixmap) to draw text on.# ## @param gc The graphics context to use.# ## \n# ## The following graphics context components are used: plane-mask, foreground,# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.# ## @param string The string to draw. Only the first 255 characters are relevant due to the data# ## type of \a string_len.# ## @return A cookie# ### ## Fills the destination rectangle with the background pixel from \a gc, then# ## paints the text with the foreground pixel from \a gc. The upper-left corner of# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,# ## the height is font-ascent + font-descent. The overall-width, font-ascent and# ## font-descent are as returned by `xcb_query_text_extents` (TODO).# ### ## Note that using X core fonts is deprecated (but still supported) in favor of# ## client-side rendering using Xft.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_image_text_8_checked*(c: ptr xcb_connection_t; string_len: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# x: int16; y: int16; string: cstring): xcb_void_cookie_t# ## *# ## @brief Draws text# ### ## @param c The connection# ## @param string_len The length of the \a string. Note that this parameter limited by 255 due to# ## using 8 bits!# ## @param drawable The drawable (Window or Pixmap) to draw text on.# ## @param gc The graphics context to use.# ## \n# ## The following graphics context components are used: plane-mask, foreground,# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.# ## @param string The string to draw. Only the first 255 characters are relevant due to the data# ## type of \a string_len.# ## @return A cookie# ### ## Fills the destination rectangle with the background pixel from \a gc, then# ## paints the text with the foreground pixel from \a gc. The upper-left corner of# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,# ## the height is font-ascent + font-descent. The overall-width, font-ascent and# ## font-descent are as returned by `xcb_query_text_extents` (TODO).# ### ## Note that using X core fonts is deprecated (but still supported) in favor of# ## client-side rendering using Xft.# ### ### proc xcb_image_text_8*(c: ptr xcb_connection_t; string_len: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; x: int16;# y: int16; string: cstring): xcb_void_cookie_t# proc xcb_image_text_8_string*(R: ptr xcb_image_text_8_request_t): cstring# proc xcb_image_text_8_string_length*(R: ptr xcb_image_text_8_request_t): cint# proc xcb_image_text_8_string_end*(R: ptr xcb_image_text_8_request_t): xcb_generic_iterator_t# proc xcb_image_text_16_sizeof*(_buffer: pointer): cint# ## *# ## @brief Draws text# ### ## @param c The connection# ## @param string_len The length of the \a string in characters. Note that this parameter limited by# ## 255 due to using 8 bits!# ## @param drawable The drawable (Window or Pixmap) to draw text on.# ## @param gc The graphics context to use.# ## \n# ## The following graphics context components are used: plane-mask, foreground,# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.# ## @param string The string to draw. Only the first 255 characters are relevant due to the data# ## type of \a string_len. Every character uses 2 bytes (hence the 16 in this# ## request's name).# ## @return A cookie# ### ## Fills the destination rectangle with the background pixel from \a gc, then# ## paints the text with the foreground pixel from \a gc. The upper-left corner of# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,# ## the height is font-ascent + font-descent. The overall-width, font-ascent and# ## font-descent are as returned by `xcb_query_text_extents` (TODO).# ### ## Note that using X core fonts is deprecated (but still supported) in favor of# ## client-side rendering using Xft.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_image_text_16_checked*(c: ptr xcb_connection_t; string_len: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# x: int16; y: int16; string: ptr xcb_char2b_t): xcb_void_cookie_t# ## *# ## @brief Draws text# ### ## @param c The connection# ## @param string_len The length of the \a string in characters. Note that this parameter limited by# ## 255 due to using 8 bits!# ## @param drawable The drawable (Window or Pixmap) to draw text on.# ## @param gc The graphics context to use.# ## \n# ## The following graphics context components are used: plane-mask, foreground,# ## background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.# ## @param x The x coordinate of the first character, relative to the origin of \a drawable.# ## @param y The y coordinate of the first character, relative to the origin of \a drawable.# ## @param string The string to draw. Only the first 255 characters are relevant due to the data# ## type of \a string_len. Every character uses 2 bytes (hence the 16 in this# ## request's name).# ## @return A cookie# ### ## Fills the destination rectangle with the background pixel from \a gc, then# ## paints the text with the foreground pixel from \a gc. The upper-left corner of# ## the filled rectangle is at [x, y - font-ascent]. The width is overall-width,# ## the height is font-ascent + font-descent. The overall-width, font-ascent and# ## font-descent are as returned by `xcb_query_text_extents` (TODO).# ### ## Note that using X core fonts is deprecated (but still supported) in favor of# ## client-side rendering using Xft.# ### ### proc xcb_image_text_16*(c: ptr xcb_connection_t; string_len: uint8;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; x: int16;# y: int16; string: ptr xcb_char2b_t): xcb_void_cookie_t# proc xcb_image_text_16_string*(R: ptr xcb_image_text_16_request_t): ptr xcb_char2b_t# proc xcb_image_text_16_string_length*(R: ptr xcb_image_text_16_request_t): cint# proc xcb_image_text_16_string_iterator*(R: ptr xcb_image_text_16_request_t): xcb_char2b_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_colormap_checked*(c: ptr xcb_connection_t; alloc: uint8;# mid: xcb_colormap_t; window: xcb_window_t;# visual: xcb_visualid_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_create_colormap*(c: ptr xcb_connection_t; alloc: uint8;# mid: xcb_colormap_t; window: xcb_window_t;# visual: xcb_visualid_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_free_colormap_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_free_colormap*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_copy_colormap_and_free_checked*(c: ptr xcb_connection_t;# mid: xcb_colormap_t;# src_cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_copy_colormap_and_free*(c: ptr xcb_connection_t; mid: xcb_colormap_t;# src_cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_install_colormap_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_install_colormap*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_uninstall_colormap_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_uninstall_colormap*(c: ptr xcb_connection_t; cmap: xcb_colormap_t): xcb_void_cookie_t# proc xcb_list_installed_colormaps_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_list_installed_colormaps*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_list_installed_colormaps_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_list_installed_colormaps_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_list_installed_colormaps_cookie_t# proc xcb_list_installed_colormaps_cmaps*(R: ptr xcb_list_installed_colormaps_reply_t): ptr xcb_colormap_t# proc xcb_list_installed_colormaps_cmaps_length*(# R: ptr xcb_list_installed_colormaps_reply_t): cint# proc xcb_list_installed_colormaps_cmaps_end*(# R: ptr xcb_list_installed_colormaps_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_list_installed_colormaps_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_list_installed_colormaps_reply*(c: ptr xcb_connection_t; cookie: xcb_list_installed_colormaps_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_list_installed_colormaps_reply_t# ## *# ## @brief Allocate a color# ### ## @param c The connection# ## @param cmap TODO# ## @param red The red value of your color.# ## @param green The green value of your color.# ## @param blue The blue value of your color.# ## @return A cookie# ### ## Allocates a read-only colormap entry corresponding to the closest RGB value# ## supported by the hardware. If you are using TrueColor, you can take a shortcut# ## and directly calculate the color pixel value to avoid the round trip. But, for# ## example, on 16-bit color setups (VNC), you can easily get the closest supported# ## RGB value to the RGB value you are specifying.# ### ### proc xcb_alloc_color*(c: ptr xcb_connection_t; cmap: xcb_colormap_t; red: uint16;# green: uint16; blue: uint16): xcb_alloc_color_cookie_t# ## *# ## @brief Allocate a color# ### ## @param c The connection# ## @param cmap TODO# ## @param red The red value of your color.# ## @param green The green value of your color.# ## @param blue The blue value of your color.# ## @return A cookie# ### ## Allocates a read-only colormap entry corresponding to the closest RGB value# ## supported by the hardware. If you are using TrueColor, you can take a shortcut# ## and directly calculate the color pixel value to avoid the round trip. But, for# ## example, on 16-bit color setups (VNC), you can easily get the closest supported# ## RGB value to the RGB value you are specifying.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_alloc_color_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# red: uint16; green: uint16; blue: uint16): xcb_alloc_color_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_alloc_color_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_alloc_color_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_color_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_color_reply_t# proc xcb_alloc_named_color_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_alloc_named_color*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# name_len: uint16; name: cstring): xcb_alloc_named_color_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_alloc_named_color_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# name_len: uint16; name: cstring): xcb_alloc_named_color_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_alloc_named_color_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_alloc_named_color_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_named_color_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_named_color_reply_t# proc xcb_alloc_color_cells_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_alloc_color_cells*(c: ptr xcb_connection_t; contiguous: uint8;# cmap: xcb_colormap_t; colors: uint16; planes: uint16): xcb_alloc_color_cells_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_alloc_color_cells_unchecked*(c: ptr xcb_connection_t; contiguous: uint8;# cmap: xcb_colormap_t; colors: uint16;# planes: uint16): xcb_alloc_color_cells_cookie_t# proc xcb_alloc_color_cells_pixels*(R: ptr xcb_alloc_color_cells_reply_t): ptr uint32# proc xcb_alloc_color_cells_pixels_length*(R: ptr xcb_alloc_color_cells_reply_t): cint# proc xcb_alloc_color_cells_pixels_end*(R: ptr xcb_alloc_color_cells_reply_t): xcb_generic_iterator_t# proc xcb_alloc_color_cells_masks*(R: ptr xcb_alloc_color_cells_reply_t): ptr uint32# proc xcb_alloc_color_cells_masks_length*(R: ptr xcb_alloc_color_cells_reply_t): cint# proc xcb_alloc_color_cells_masks_end*(R: ptr xcb_alloc_color_cells_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_alloc_color_cells_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_alloc_color_cells_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_color_cells_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_color_cells_reply_t# proc xcb_alloc_color_planes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_alloc_color_planes*(c: ptr xcb_connection_t; contiguous: uint8;# cmap: xcb_colormap_t; colors: uint16; reds: uint16;# greens: uint16; blues: uint16): xcb_alloc_color_planes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_alloc_color_planes_unchecked*(c: ptr xcb_connection_t; contiguous: uint8;# cmap: xcb_colormap_t; colors: uint16;# reds: uint16; greens: uint16;# blues: uint16): xcb_alloc_color_planes_cookie_t# proc xcb_alloc_color_planes_pixels*(R: ptr xcb_alloc_color_planes_reply_t): ptr uint32# proc xcb_alloc_color_planes_pixels_length*(R: ptr xcb_alloc_color_planes_reply_t): cint# proc xcb_alloc_color_planes_pixels_end*(R: ptr xcb_alloc_color_planes_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_alloc_color_planes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_alloc_color_planes_reply*(c: ptr xcb_connection_t; cookie: xcb_alloc_color_planes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_alloc_color_planes_reply_t# proc xcb_free_colors_sizeof*(_buffer: pointer; pixels_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_free_colors_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# plane_mask: uint32; pixels_len: uint32;# pixels: ptr uint32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_free_colors*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# plane_mask: uint32; pixels_len: uint32;# pixels: ptr uint32): xcb_void_cookie_t# proc xcb_free_colors_pixels*(R: ptr xcb_free_colors_request_t): ptr uint32# proc xcb_free_colors_pixels_length*(R: ptr xcb_free_colors_request_t): cint# proc xcb_free_colors_pixels_end*(R: ptr xcb_free_colors_request_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_coloritem_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_coloritem_t)# ### proc xcb_coloritem_next*(i: ptr xcb_coloritem_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_coloritem_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_coloritem_end*(i: xcb_coloritem_iterator_t): xcb_generic_iterator_t# proc xcb_store_colors_sizeof*(_buffer: pointer; items_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_store_colors_checked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# items_len: uint32; items: ptr xcb_coloritem_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_store_colors*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# items_len: uint32; items: ptr xcb_coloritem_t): xcb_void_cookie_t# proc xcb_store_colors_items*(R: ptr xcb_store_colors_request_t): ptr xcb_coloritem_t# proc xcb_store_colors_items_length*(R: ptr xcb_store_colors_request_t): cint# proc xcb_store_colors_items_iterator*(R: ptr xcb_store_colors_request_t): xcb_coloritem_iterator_t# proc xcb_store_named_color_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_store_named_color_checked*(c: ptr xcb_connection_t; flags: uint8;# cmap: xcb_colormap_t; pixel: uint32;# name_len: uint16; name: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_store_named_color*(c: ptr xcb_connection_t; flags: uint8;# cmap: xcb_colormap_t; pixel: uint32;# name_len: uint16; name: cstring): xcb_void_cookie_t# proc xcb_store_named_color_name*(R: ptr xcb_store_named_color_request_t): cstring# proc xcb_store_named_color_name_length*(R: ptr xcb_store_named_color_request_t): cint# proc xcb_store_named_color_name_end*(R: ptr xcb_store_named_color_request_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_rgb_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_rgb_t)# ### proc xcb_rgb_next*(i: ptr xcb_rgb_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_rgb_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_rgb_end*(i: xcb_rgb_iterator_t): xcb_generic_iterator_t# proc xcb_query_colors_sizeof*(_buffer: pointer; pixels_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_query_colors*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# pixels_len: uint32; pixels: ptr uint32): xcb_query_colors_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_colors_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# pixels_len: uint32; pixels: ptr uint32): xcb_query_colors_cookie_t# proc xcb_query_colors_colors*(R: ptr xcb_query_colors_reply_t): ptr xcb_rgb_t# proc xcb_query_colors_colors_length*(R: ptr xcb_query_colors_reply_t): cint# proc xcb_query_colors_colors_iterator*(R: ptr xcb_query_colors_reply_t): xcb_rgb_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_colors_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_colors_reply*(c: ptr xcb_connection_t; cookie: xcb_query_colors_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_colors_reply_t# proc xcb_lookup_color_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_lookup_color*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# name_len: uint16; name: cstring): xcb_lookup_color_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_lookup_color_unchecked*(c: ptr xcb_connection_t; cmap: xcb_colormap_t;# name_len: uint16; name: cstring): xcb_lookup_color_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_lookup_color_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_lookup_color_reply*(c: ptr xcb_connection_t; cookie: xcb_lookup_color_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_lookup_color_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_cursor_checked*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# source: xcb_pixmap_t; mask: xcb_pixmap_t;# fore_red: uint16; fore_green: uint16;# fore_blue: uint16; back_red: uint16;# back_green: uint16; back_blue: uint16;# x: uint16; y: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_create_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# source: xcb_pixmap_t; mask: xcb_pixmap_t; fore_red: uint16;# fore_green: uint16; fore_blue: uint16;# back_red: uint16; back_green: uint16;# back_blue: uint16; x: uint16; y: uint16): xcb_void_cookie_t# ## *# ## @brief create cursor# ### ## @param c The connection# ## @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.# ## @param source_font In which font to look for the cursor glyph.# ## @param mask_font In which font to look for the mask glyph.# ## @param source_char The glyph of \a source_font to use.# ## @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define# ## which source pixels are displayed. All pixels which are set to 0 are not# ## displayed.# ## @param fore_red The red value of the foreground color.# ## @param fore_green The green value of the foreground color.# ## @param fore_blue The blue value of the foreground color.# ## @param back_red The red value of the background color.# ## @param back_green The green value of the background color.# ## @param back_blue The blue value of the background color.# ## @return A cookie# ### ## Creates a cursor from a font glyph. X provides a set of standard cursor shapes# ## in a special font named cursor. Applications are encouraged to use this# ## interface for their cursors because the font can be customized for the# ## individual display type.# ### ## All pixels which are set to 1 in the source will use the foreground color (as# ## specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0# ## will use the background color (as specified by \a back_red, \a back_green and# ## \a back_blue).# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_create_glyph_cursor_checked*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# source_font: xcb_font_t;# mask_font: xcb_font_t; source_char: uint16;# mask_char: uint16; fore_red: uint16;# fore_green: uint16; fore_blue: uint16;# back_red: uint16; back_green: uint16;# back_blue: uint16): xcb_void_cookie_t# ## *# ## @brief create cursor# ### ## @param c The connection# ## @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.# ## @param source_font In which font to look for the cursor glyph.# ## @param mask_font In which font to look for the mask glyph.# ## @param source_char The glyph of \a source_font to use.# ## @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define# ## which source pixels are displayed. All pixels which are set to 0 are not# ## displayed.# ## @param fore_red The red value of the foreground color.# ## @param fore_green The green value of the foreground color.# ## @param fore_blue The blue value of the foreground color.# ## @param back_red The red value of the background color.# ## @param back_green The green value of the background color.# ## @param back_blue The blue value of the background color.# ## @return A cookie# ### ## Creates a cursor from a font glyph. X provides a set of standard cursor shapes# ## in a special font named cursor. Applications are encouraged to use this# ## interface for their cursors because the font can be customized for the# ## individual display type.# ### ## All pixels which are set to 1 in the source will use the foreground color (as# ## specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0# ## will use the background color (as specified by \a back_red, \a back_green and# ## \a back_blue).# ### ### proc xcb_create_glyph_cursor*(c: ptr xcb_connection_t; cid: xcb_cursor_t;# source_font: xcb_font_t; mask_font: xcb_font_t;# source_char: uint16; mask_char: uint16;# fore_red: uint16; fore_green: uint16;# fore_blue: uint16; back_red: uint16;# back_green: uint16; back_blue: uint16): xcb_void_cookie_t# ## *# ## @brief Deletes a cursor# ### ## @param c The connection# ## @param cursor The cursor to destroy.# ## @return A cookie# ### ## Deletes the association between the cursor resource ID and the specified# ## cursor. The cursor is freed when no other resource references it.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_free_cursor_checked*(c: ptr xcb_connection_t; cursor: xcb_cursor_t): xcb_void_cookie_t# ## *# ## @brief Deletes a cursor# ### ## @param c The connection# ## @param cursor The cursor to destroy.# ## @return A cookie# ### ## Deletes the association between the cursor resource ID and the specified# ## cursor. The cursor is freed when no other resource references it.# ### ### proc xcb_free_cursor*(c: ptr xcb_connection_t; cursor: xcb_cursor_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_recolor_cursor_checked*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;# fore_red: uint16; fore_green: uint16;# fore_blue: uint16; back_red: uint16;# back_green: uint16; back_blue: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_recolor_cursor*(c: ptr xcb_connection_t; cursor: xcb_cursor_t;# fore_red: uint16; fore_green: uint16;# fore_blue: uint16; back_red: uint16;# back_green: uint16; back_blue: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_query_best_size*(c: ptr xcb_connection_t; _class: uint8;# drawable: xcb_drawable_t; width: uint16; height: uint16): xcb_query_best_size_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_best_size_unchecked*(c: ptr xcb_connection_t; _class: uint8;# drawable: xcb_drawable_t; width: uint16;# height: uint16): xcb_query_best_size_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_best_size_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_best_size_reply*(c: ptr xcb_connection_t; cookie: xcb_query_best_size_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_best_size_reply_t# proc xcb_query_extension_sizeof*(_buffer: pointer): cint# ## *# ## @brief check if extension is present# ### ## @param c The connection# ## @param name_len The length of \a name in bytes.# ## @param name The name of the extension to query, for example "RANDR". This is case# ## sensitive!# ## @return A cookie# ### ## Determines if the specified extension is present on this X11 server.# ### ## Every extension has a unique `major_opcode` to identify requests, the minor# ## opcodes and request formats are extension-specific. If the extension provides# ## events and errors, the `first_event` and `first_error` fields in the reply are# ## set accordingly.# ### ## There should rarely be a need to use this request directly, XCB provides the# ## `xcb_get_extension_data` function instead.# ### ### proc xcb_query_extension*(c: ptr xcb_connection_t; name_len: uint16; name: cstring): xcb_query_extension_cookie_t# ## *# ## @brief check if extension is present# ### ## @param c The connection# ## @param name_len The length of \a name in bytes.# ## @param name The name of the extension to query, for example "RANDR". This is case# ## sensitive!# ## @return A cookie# ### ## Determines if the specified extension is present on this X11 server.# ### ## Every extension has a unique `major_opcode` to identify requests, the minor# ## opcodes and request formats are extension-specific. If the extension provides# ## events and errors, the `first_event` and `first_error` fields in the reply are# ## set accordingly.# ### ## There should rarely be a need to use this request directly, XCB provides the# ## `xcb_get_extension_data` function instead.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_query_extension_unchecked*(c: ptr xcb_connection_t; name_len: uint16;# name: cstring): xcb_query_extension_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_query_extension_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_query_extension_reply*(c: ptr xcb_connection_t; cookie: xcb_query_extension_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_query_extension_reply_t# proc xcb_list_extensions_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_list_extensions*(c: ptr xcb_connection_t): xcb_list_extensions_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_list_extensions_unchecked*(c: ptr xcb_connection_t): xcb_list_extensions_cookie_t# proc xcb_list_extensions_names_length*(R: ptr xcb_list_extensions_reply_t): cint# proc xcb_list_extensions_names_iterator*(R: ptr xcb_list_extensions_reply_t): xcb_str_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_list_extensions_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_list_extensions_reply*(c: ptr xcb_connection_t; cookie: xcb_list_extensions_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_list_extensions_reply_t# proc xcb_change_keyboard_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_keyboard_mapping_checked*(c: ptr xcb_connection_t;# keycode_count: uint8; first_keycode: xcb_keycode_t;# keysyms_per_keycode: uint8; keysyms: ptr xcb_keysym_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_change_keyboard_mapping*(c: ptr xcb_connection_t; keycode_count: uint8;# first_keycode: xcb_keycode_t;# keysyms_per_keycode: uint8;# keysyms: ptr xcb_keysym_t): xcb_void_cookie_t# proc xcb_change_keyboard_mapping_keysyms*(# R: ptr xcb_change_keyboard_mapping_request_t): ptr xcb_keysym_t# proc xcb_change_keyboard_mapping_keysyms_length*(# R: ptr xcb_change_keyboard_mapping_request_t): cint# proc xcb_change_keyboard_mapping_keysyms_end*(# R: ptr xcb_change_keyboard_mapping_request_t): xcb_generic_iterator_t# proc xcb_get_keyboard_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_keyboard_mapping_unchecked*(c: ptr xcb_connection_t;# first_keycode: xcb_keycode_t;# count: uint8): xcb_get_keyboard_mapping_cookie_t# proc xcb_get_keyboard_mapping_keysyms*(R: ptr xcb_get_keyboard_mapping_reply_t): ptr xcb_keysym_t# proc xcb_get_keyboard_mapping_keysyms_length*(# R: ptr xcb_get_keyboard_mapping_reply_t): cint# proc xcb_get_keyboard_mapping_keysyms_end*(# R: ptr xcb_get_keyboard_mapping_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_keyboard_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_change_keyboard_control_value_list_serialize*(_buffer: ptr pointer;# value_mask: uint32; _aux: ptr xcb_change_keyboard_control_value_list_t): cint# proc xcb_change_keyboard_control_value_list_unpack*(_buffer: pointer;# value_mask: uint32; _aux: ptr xcb_change_keyboard_control_value_list_t): cint# proc xcb_change_keyboard_control_value_list_sizeof*(_buffer: pointer;# value_mask: uint32): cint# proc xcb_change_keyboard_control_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_keyboard_control_checked*(c: ptr xcb_connection_t;# value_mask: uint32; value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_change_keyboard_control*(c: ptr xcb_connection_t; value_mask: uint32;# value_list: pointer): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_keyboard_control_aux_checked*(c: ptr xcb_connection_t;# value_mask: uint32; value_list: ptr xcb_change_keyboard_control_value_list_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_change_keyboard_control_aux*(c: ptr xcb_connection_t; value_mask: uint32;# value_list: ptr xcb_change_keyboard_control_value_list_t): xcb_void_cookie_t# proc xcb_change_keyboard_control_value_list*(# R: ptr xcb_change_keyboard_control_request_t): pointer# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_keyboard_control*(c: ptr xcb_connection_t): xcb_get_keyboard_control_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_keyboard_control_unchecked*(c: ptr xcb_connection_t): xcb_get_keyboard_control_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_keyboard_control_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_keyboard_control_reply*(c: ptr xcb_connection_t; cookie: xcb_get_keyboard_control_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_keyboard_control_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_bell_checked*(c: ptr xcb_connection_t; percent: int8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_bell*(c: ptr xcb_connection_t; percent: int8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_pointer_control_checked*(c: ptr xcb_connection_t;# acceleration_numerator: int16;# acceleration_denominator: int16;# threshold: int16;# do_acceleration: uint8;# do_threshold: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_change_pointer_control*(c: ptr xcb_connection_t;# acceleration_numerator: int16;# acceleration_denominator: int16;# threshold: int16; do_acceleration: uint8;# do_threshold: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_pointer_control*(c: ptr xcb_connection_t): xcb_get_pointer_control_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_pointer_control_unchecked*(c: ptr xcb_connection_t): xcb_get_pointer_control_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_pointer_control_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_pointer_control_reply*(c: ptr xcb_connection_t; cookie: xcb_get_pointer_control_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_pointer_control_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_screen_saver_checked*(c: ptr xcb_connection_t; timeout: int16;# interval: int16; prefer_blanking: uint8;# allow_exposures: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_screen_saver*(c: ptr xcb_connection_t; timeout: int16;# interval: int16; prefer_blanking: uint8;# allow_exposures: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_screen_saver*(c: ptr xcb_connection_t): xcb_get_screen_saver_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_screen_saver_unchecked*(c: ptr xcb_connection_t): xcb_get_screen_saver_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_screen_saver_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_screen_saver_reply*(c: ptr xcb_connection_t; cookie: xcb_get_screen_saver_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_screen_saver_reply_t# proc xcb_change_hosts_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_change_hosts_checked*(c: ptr xcb_connection_t; mode: uint8;# family: uint8; address_len: uint16;# address: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_change_hosts*(c: ptr xcb_connection_t; mode: uint8; family: uint8;# address_len: uint16; address: ptr uint8): xcb_void_cookie_t# proc xcb_change_hosts_address*(R: ptr xcb_change_hosts_request_t): ptr uint8# proc xcb_change_hosts_address_length*(R: ptr xcb_change_hosts_request_t): cint# proc xcb_change_hosts_address_end*(R: ptr xcb_change_hosts_request_t): xcb_generic_iterator_t# proc xcb_host_sizeof*(_buffer: pointer): cint# proc xcb_host_address*(R: ptr xcb_host_t): ptr uint8# proc xcb_host_address_length*(R: ptr xcb_host_t): cint# proc xcb_host_address_end*(R: ptr xcb_host_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_host_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_host_t)# ### proc xcb_host_next*(i: ptr xcb_host_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_host_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_host_end*(i: xcb_host_iterator_t): xcb_generic_iterator_t# proc xcb_list_hosts_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_list_hosts*(c: ptr xcb_connection_t): xcb_list_hosts_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_list_hosts_unchecked*(c: ptr xcb_connection_t): xcb_list_hosts_cookie_t# proc xcb_list_hosts_hosts_length*(R: ptr xcb_list_hosts_reply_t): cint# proc xcb_list_hosts_hosts_iterator*(R: ptr xcb_list_hosts_reply_t): xcb_host_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_list_hosts_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_list_hosts_reply*(c: ptr xcb_connection_t; cookie: xcb_list_hosts_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_list_hosts_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_access_control_checked*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_access_control*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_set_close_down_mode_checked*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_close_down_mode*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t# ## *# ## @brief kills a client# ### ## @param c The connection# ## @param resource Any resource belonging to the client (for example a Window), used to identify# ## the client connection.# ## \n# ## The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients# ## that have terminated in `RetainTemporary` (TODO) are destroyed.# ## @return A cookie# ### ## Forces a close down of the client that created the specified \a resource.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_kill_client_checked*(c: ptr xcb_connection_t; resource: uint32): xcb_void_cookie_t# ## *# ## @brief kills a client# ### ## @param c The connection# ## @param resource Any resource belonging to the client (for example a Window), used to identify# ## the client connection.# ## \n# ## The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients# ## that have terminated in `RetainTemporary` (TODO) are destroyed.# ## @return A cookie# ### ## Forces a close down of the client that created the specified \a resource.# ### ### proc xcb_kill_client*(c: ptr xcb_connection_t; resource: uint32): xcb_void_cookie_t# proc xcb_rotate_properties_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_rotate_properties_checked*(c: ptr xcb_connection_t; window: xcb_window_t;# atoms_len: uint16; delta: int16;# atoms: ptr xcb_atom_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_rotate_properties*(c: ptr xcb_connection_t; window: xcb_window_t;# atoms_len: uint16; delta: int16;# atoms: ptr xcb_atom_t): xcb_void_cookie_t# proc xcb_rotate_properties_atoms*(R: ptr xcb_rotate_properties_request_t): ptr xcb_atom_t# proc xcb_rotate_properties_atoms_length*(R: ptr xcb_rotate_properties_request_t): cint# proc xcb_rotate_properties_atoms_end*(R: ptr xcb_rotate_properties_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_force_screen_saver_checked*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_force_screen_saver*(c: ptr xcb_connection_t; mode: uint8): xcb_void_cookie_t# proc xcb_set_pointer_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_pointer_mapping*(c: ptr xcb_connection_t; map_len: uint8;# map: ptr uint8): xcb_set_pointer_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_set_pointer_mapping_unchecked*(c: ptr xcb_connection_t; map_len: uint8;# map: ptr uint8): xcb_set_pointer_mapping_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_set_pointer_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_set_pointer_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_set_pointer_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_set_pointer_mapping_reply_t# proc xcb_get_pointer_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_pointer_mapping*(c: ptr xcb_connection_t): xcb_get_pointer_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_pointer_mapping_unchecked*(c: ptr xcb_connection_t): xcb_get_pointer_mapping_cookie_t# proc xcb_get_pointer_mapping_map*(R: ptr xcb_get_pointer_mapping_reply_t): ptr uint8# proc xcb_get_pointer_mapping_map_length*(R: ptr xcb_get_pointer_mapping_reply_t): cint# proc xcb_get_pointer_mapping_map_end*(R: ptr xcb_get_pointer_mapping_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_pointer_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_pointer_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_get_pointer_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_pointer_mapping_reply_t# proc xcb_set_modifier_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_set_modifier_mapping*(c: ptr xcb_connection_t;# keycodes_per_modifier: uint8;# keycodes: ptr xcb_keycode_t): xcb_set_modifier_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_set_modifier_mapping_unchecked*(c: ptr xcb_connection_t;# keycodes_per_modifier: uint8;# keycodes: ptr xcb_keycode_t): xcb_set_modifier_mapping_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_set_modifier_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_set_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_set_modifier_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_set_modifier_mapping_reply_t# proc xcb_get_modifier_mapping_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_get_modifier_mapping*(c: ptr xcb_connection_t): xcb_get_modifier_mapping_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_get_modifier_mapping_unchecked*(c: ptr xcb_connection_t): xcb_get_modifier_mapping_cookie_t# proc xcb_get_modifier_mapping_keycodes*(R: ptr xcb_get_modifier_mapping_reply_t): ptr xcb_keycode_t# proc xcb_get_modifier_mapping_keycodes_length*(# R: ptr xcb_get_modifier_mapping_reply_t): cint# proc xcb_get_modifier_mapping_keycodes_end*(# R: ptr xcb_get_modifier_mapping_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_get_modifier_mapping_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_get_modifier_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_get_modifier_mapping_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_get_modifier_mapping_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_no_operation_checked*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_no_operation*(c: ptr xcb_connection_t): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from xselinux.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_SELinux_API XCB SELinux API# ## @brief SELinux XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_SELINUX_MAJOR_VERSION* = 1# XCB_SELINUX_MINOR_VERSION* = 0# var xcb_selinux_id*: xcb_extension_t# ## *# ## @brief xcb_selinux_query_version_cookie_t# ### type# xcb_selinux_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_query_version.# const# XCB_SELINUX_QUERY_VERSION* = 0# ## *# ## @brief xcb_selinux_query_version_request_t# ### type# xcb_selinux_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# client_major*: uint8# client_minor*: uint8# ## *# ## @brief xcb_selinux_query_version_reply_t# ### type# xcb_selinux_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# server_major*: uint16# server_minor*: uint16# ## * Opcode for xcb_selinux_set_device_create_context.# const# XCB_SELINUX_SET_DEVICE_CREATE_CONTEXT* = 1# ## *# ## @brief xcb_selinux_set_device_create_context_request_t# ### type# xcb_selinux_set_device_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_len*: uint32# ## *# ## @brief xcb_selinux_get_device_create_context_cookie_t# ### type# xcb_selinux_get_device_create_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_device_create_context.# const# XCB_SELINUX_GET_DEVICE_CREATE_CONTEXT* = 2# ## *# ## @brief xcb_selinux_get_device_create_context_request_t# ### type# xcb_selinux_get_device_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_get_device_create_context_reply_t# ### type# xcb_selinux_get_device_create_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_selinux_set_device_context.# const# XCB_SELINUX_SET_DEVICE_CONTEXT* = 3# ## *# ## @brief xcb_selinux_set_device_context_request_t# ### type# xcb_selinux_set_device_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device*: uint32# context_len*: uint32# ## *# ## @brief xcb_selinux_get_device_context_cookie_t# ### type# xcb_selinux_get_device_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_device_context.# const# XCB_SELINUX_GET_DEVICE_CONTEXT* = 4# ## *# ## @brief xcb_selinux_get_device_context_request_t# ### type# xcb_selinux_get_device_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# device*: uint32# ## *# ## @brief xcb_selinux_get_device_context_reply_t# ### type# xcb_selinux_get_device_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_selinux_set_window_create_context.# const# XCB_SELINUX_SET_WINDOW_CREATE_CONTEXT* = 5# ## *# ## @brief xcb_selinux_set_window_create_context_request_t# ### type# xcb_selinux_set_window_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_len*: uint32# ## *# ## @brief xcb_selinux_get_window_create_context_cookie_t# ### type# xcb_selinux_get_window_create_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_window_create_context.# const# XCB_SELINUX_GET_WINDOW_CREATE_CONTEXT* = 6# ## *# ## @brief xcb_selinux_get_window_create_context_request_t# ### type# xcb_selinux_get_window_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_get_window_create_context_reply_t# ### type# xcb_selinux_get_window_create_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_get_window_context_cookie_t# ### type# xcb_selinux_get_window_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_window_context.# const# XCB_SELINUX_GET_WINDOW_CONTEXT* = 7# ## *# ## @brief xcb_selinux_get_window_context_request_t# ### type# xcb_selinux_get_window_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_selinux_get_window_context_reply_t# ### type# xcb_selinux_get_window_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_list_item_t# ### type# xcb_selinux_list_item_t* {.bycopy.} = object# name*: xcb_atom_t# object_context_len*: uint32# data_context_len*: uint32# ## *# ## @brief xcb_selinux_list_item_iterator_t# ### type# xcb_selinux_list_item_iterator_t* {.bycopy.} = object# data*: ptr xcb_selinux_list_item_t# rem*: cint# index*: cint# ## * Opcode for xcb_selinux_set_property_create_context.# const# XCB_SELINUX_SET_PROPERTY_CREATE_CONTEXT* = 8# ## *# ## @brief xcb_selinux_set_property_create_context_request_t# ### type# xcb_selinux_set_property_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_len*: uint32# ## *# ## @brief xcb_selinux_get_property_create_context_cookie_t# ### type# xcb_selinux_get_property_create_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_property_create_context.# const# XCB_SELINUX_GET_PROPERTY_CREATE_CONTEXT* = 9# ## *# ## @brief xcb_selinux_get_property_create_context_request_t# ### type# xcb_selinux_get_property_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_get_property_create_context_reply_t# ### type# xcb_selinux_get_property_create_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_selinux_set_property_use_context.# const# XCB_SELINUX_SET_PROPERTY_USE_CONTEXT* = 10# ## *# ## @brief xcb_selinux_set_property_use_context_request_t# ### type# xcb_selinux_set_property_use_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_len*: uint32# ## *# ## @brief xcb_selinux_get_property_use_context_cookie_t# ### type# xcb_selinux_get_property_use_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_property_use_context.# const# XCB_SELINUX_GET_PROPERTY_USE_CONTEXT* = 11# ## *# ## @brief xcb_selinux_get_property_use_context_request_t# ### type# xcb_selinux_get_property_use_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_get_property_use_context_reply_t# ### type# xcb_selinux_get_property_use_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_get_property_context_cookie_t# ### type# xcb_selinux_get_property_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_property_context.# const# XCB_SELINUX_GET_PROPERTY_CONTEXT* = 12# ## *# ## @brief xcb_selinux_get_property_context_request_t# ### type# xcb_selinux_get_property_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# property*: xcb_atom_t# ## *# ## @brief xcb_selinux_get_property_context_reply_t# ### type# xcb_selinux_get_property_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_get_property_data_context_cookie_t# ### type# xcb_selinux_get_property_data_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_property_data_context.# const# XCB_SELINUX_GET_PROPERTY_DATA_CONTEXT* = 13# ## *# ## @brief xcb_selinux_get_property_data_context_request_t# ### type# xcb_selinux_get_property_data_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# property*: xcb_atom_t# ## *# ## @brief xcb_selinux_get_property_data_context_reply_t# ### type# xcb_selinux_get_property_data_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_list_properties_cookie_t# ### type# xcb_selinux_list_properties_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_list_properties.# const# XCB_SELINUX_LIST_PROPERTIES* = 14# ## *# ## @brief xcb_selinux_list_properties_request_t# ### type# xcb_selinux_list_properties_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_selinux_list_properties_reply_t# ### type# xcb_selinux_list_properties_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# properties_len*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_selinux_set_selection_create_context.# const# XCB_SELINUX_SET_SELECTION_CREATE_CONTEXT* = 15# ## *# ## @brief xcb_selinux_set_selection_create_context_request_t# ### type# xcb_selinux_set_selection_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_len*: uint32# ## *# ## @brief xcb_selinux_get_selection_create_context_cookie_t# ### type# xcb_selinux_get_selection_create_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_selection_create_context.# const# XCB_SELINUX_GET_SELECTION_CREATE_CONTEXT* = 16# ## *# ## @brief xcb_selinux_get_selection_create_context_request_t# ### type# xcb_selinux_get_selection_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_get_selection_create_context_reply_t# ### type# xcb_selinux_get_selection_create_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_selinux_set_selection_use_context.# const# XCB_SELINUX_SET_SELECTION_USE_CONTEXT* = 17# ## *# ## @brief xcb_selinux_set_selection_use_context_request_t# ### type# xcb_selinux_set_selection_use_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_len*: uint32# ## *# ## @brief xcb_selinux_get_selection_use_context_cookie_t# ### type# xcb_selinux_get_selection_use_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_selection_use_context.# const# XCB_SELINUX_GET_SELECTION_USE_CONTEXT* = 18# ## *# ## @brief xcb_selinux_get_selection_use_context_request_t# ### type# xcb_selinux_get_selection_use_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_get_selection_use_context_reply_t# ### type# xcb_selinux_get_selection_use_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_get_selection_context_cookie_t# ### type# xcb_selinux_get_selection_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_selection_context.# const# XCB_SELINUX_GET_SELECTION_CONTEXT* = 19# ## *# ## @brief xcb_selinux_get_selection_context_request_t# ### type# xcb_selinux_get_selection_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# selection*: xcb_atom_t# ## *# ## @brief xcb_selinux_get_selection_context_reply_t# ### type# xcb_selinux_get_selection_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_get_selection_data_context_cookie_t# ### type# xcb_selinux_get_selection_data_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_selection_data_context.# const# XCB_SELINUX_GET_SELECTION_DATA_CONTEXT* = 20# ## *# ## @brief xcb_selinux_get_selection_data_context_request_t# ### type# xcb_selinux_get_selection_data_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# selection*: xcb_atom_t# ## *# ## @brief xcb_selinux_get_selection_data_context_reply_t# ### type# xcb_selinux_get_selection_data_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_list_selections_cookie_t# ### type# xcb_selinux_list_selections_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_list_selections.# const# XCB_SELINUX_LIST_SELECTIONS* = 21# ## *# ## @brief xcb_selinux_list_selections_request_t# ### type# xcb_selinux_list_selections_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_selinux_list_selections_reply_t# ### type# xcb_selinux_list_selections_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# selections_len*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_selinux_get_client_context_cookie_t# ### type# xcb_selinux_get_client_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_selinux_get_client_context.# const# XCB_SELINUX_GET_CLIENT_CONTEXT* = 22# ## *# ## @brief xcb_selinux_get_client_context_request_t# ### type# xcb_selinux_get_client_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# resource*: uint32# ## *# ## @brief xcb_selinux_get_client_context_reply_t# ### type# xcb_selinux_get_client_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# context_len*: uint32# pad1*: array[20, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_query_version*(c: ptr xcb_connection_t; client_major: uint8;# client_minor: uint8): xcb_selinux_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_query_version_unchecked*(c: ptr xcb_connection_t;# client_major: uint8; client_minor: uint8): xcb_selinux_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_query_version_reply_t# proc xcb_selinux_set_device_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_device_create_context_checked*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_device_create_context*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_device_create_context_context*(# R: ptr xcb_selinux_set_device_create_context_request_t): cstring# proc xcb_selinux_set_device_create_context_context_length*(# R: ptr xcb_selinux_set_device_create_context_request_t): cint# proc xcb_selinux_set_device_create_context_context_end*(# R: ptr xcb_selinux_set_device_create_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_device_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_device_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_device_create_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_device_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_device_create_context_cookie_t# proc xcb_selinux_get_device_create_context_context*(# R: ptr xcb_selinux_get_device_create_context_reply_t): cstring# proc xcb_selinux_get_device_create_context_context_length*(# R: ptr xcb_selinux_get_device_create_context_reply_t): cint# proc xcb_selinux_get_device_create_context_context_end*(# R: ptr xcb_selinux_get_device_create_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_device_create_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_device_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_device_create_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_device_create_context_reply_t# proc xcb_selinux_set_device_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_device_context_checked*(c: ptr xcb_connection_t;# device: uint32; context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_device_context*(c: ptr xcb_connection_t; device: uint32;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_device_context_context*(# R: ptr xcb_selinux_set_device_context_request_t): cstring# proc xcb_selinux_set_device_context_context_length*(# R: ptr xcb_selinux_set_device_context_request_t): cint# proc xcb_selinux_set_device_context_context_end*(# R: ptr xcb_selinux_set_device_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_device_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_device_context*(c: ptr xcb_connection_t; device: uint32): xcb_selinux_get_device_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_device_context_unchecked*(c: ptr xcb_connection_t;# device: uint32): xcb_selinux_get_device_context_cookie_t# proc xcb_selinux_get_device_context_context*(# R: ptr xcb_selinux_get_device_context_reply_t): cstring# proc xcb_selinux_get_device_context_context_length*(# R: ptr xcb_selinux_get_device_context_reply_t): cint# proc xcb_selinux_get_device_context_context_end*(# R: ptr xcb_selinux_get_device_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_device_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_device_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_device_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_device_context_reply_t# proc xcb_selinux_set_window_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_window_create_context_checked*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_window_create_context*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_window_create_context_context*(# R: ptr xcb_selinux_set_window_create_context_request_t): cstring# proc xcb_selinux_set_window_create_context_context_length*(# R: ptr xcb_selinux_set_window_create_context_request_t): cint# proc xcb_selinux_set_window_create_context_context_end*(# R: ptr xcb_selinux_set_window_create_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_window_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_window_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_window_create_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_window_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_window_create_context_cookie_t# proc xcb_selinux_get_window_create_context_context*(# R: ptr xcb_selinux_get_window_create_context_reply_t): cstring# proc xcb_selinux_get_window_create_context_context_length*(# R: ptr xcb_selinux_get_window_create_context_reply_t): cint# proc xcb_selinux_get_window_create_context_context_end*(# R: ptr xcb_selinux_get_window_create_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_window_create_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_window_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_window_create_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_window_create_context_reply_t# proc xcb_selinux_get_window_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_window_context*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_selinux_get_window_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_window_context_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_selinux_get_window_context_cookie_t# proc xcb_selinux_get_window_context_context*(# R: ptr xcb_selinux_get_window_context_reply_t): cstring# proc xcb_selinux_get_window_context_context_length*(# R: ptr xcb_selinux_get_window_context_reply_t): cint# proc xcb_selinux_get_window_context_context_end*(# R: ptr xcb_selinux_get_window_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_window_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_window_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_window_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_window_context_reply_t# proc xcb_selinux_list_item_sizeof*(_buffer: pointer): cint# proc xcb_selinux_list_item_object_context*(R: ptr xcb_selinux_list_item_t): cstring# proc xcb_selinux_list_item_object_context_length*(R: ptr xcb_selinux_list_item_t): cint# proc xcb_selinux_list_item_object_context_end*(R: ptr xcb_selinux_list_item_t): xcb_generic_iterator_t# proc xcb_selinux_list_item_data_context*(R: ptr xcb_selinux_list_item_t): cstring# proc xcb_selinux_list_item_data_context_length*(R: ptr xcb_selinux_list_item_t): cint# proc xcb_selinux_list_item_data_context_end*(R: ptr xcb_selinux_list_item_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_selinux_list_item_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_selinux_list_item_t)# ### proc xcb_selinux_list_item_next*(i: ptr xcb_selinux_list_item_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_selinux_list_item_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_selinux_list_item_end*(i: xcb_selinux_list_item_iterator_t): xcb_generic_iterator_t# proc xcb_selinux_set_property_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_property_create_context_checked*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_property_create_context*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_property_create_context_context*(# R: ptr xcb_selinux_set_property_create_context_request_t): cstring# proc xcb_selinux_set_property_create_context_context_length*(# R: ptr xcb_selinux_set_property_create_context_request_t): cint# proc xcb_selinux_set_property_create_context_context_end*(# R: ptr xcb_selinux_set_property_create_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_property_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_property_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_property_create_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_property_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_property_create_context_cookie_t# proc xcb_selinux_get_property_create_context_context*(# R: ptr xcb_selinux_get_property_create_context_reply_t): cstring# proc xcb_selinux_get_property_create_context_context_length*(# R: ptr xcb_selinux_get_property_create_context_reply_t): cint# proc xcb_selinux_get_property_create_context_context_end*(# R: ptr xcb_selinux_get_property_create_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_property_create_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_property_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_create_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_create_context_reply_t# proc xcb_selinux_set_property_use_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_property_use_context_checked*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_property_use_context*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_property_use_context_context*(# R: ptr xcb_selinux_set_property_use_context_request_t): cstring# proc xcb_selinux_set_property_use_context_context_length*(# R: ptr xcb_selinux_set_property_use_context_request_t): cint# proc xcb_selinux_set_property_use_context_context_end*(# R: ptr xcb_selinux_set_property_use_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_property_use_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_property_use_context*(c: ptr xcb_connection_t): xcb_selinux_get_property_use_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_property_use_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_property_use_context_cookie_t# proc xcb_selinux_get_property_use_context_context*(# R: ptr xcb_selinux_get_property_use_context_reply_t): cstring# proc xcb_selinux_get_property_use_context_context_length*(# R: ptr xcb_selinux_get_property_use_context_reply_t): cint# proc xcb_selinux_get_property_use_context_context_end*(# R: ptr xcb_selinux_get_property_use_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_property_use_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_property_use_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_use_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_use_context_reply_t# proc xcb_selinux_get_property_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_property_context*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_property_context_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_context_cookie_t# proc xcb_selinux_get_property_context_context*(# R: ptr xcb_selinux_get_property_context_reply_t): cstring# proc xcb_selinux_get_property_context_context_length*(# R: ptr xcb_selinux_get_property_context_reply_t): cint# proc xcb_selinux_get_property_context_context_end*(# R: ptr xcb_selinux_get_property_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_property_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_property_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_context_reply_t# proc xcb_selinux_get_property_data_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_property_data_context*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_data_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_property_data_context_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; property: xcb_atom_t): xcb_selinux_get_property_data_context_cookie_t# proc xcb_selinux_get_property_data_context_context*(# R: ptr xcb_selinux_get_property_data_context_reply_t): cstring# proc xcb_selinux_get_property_data_context_context_length*(# R: ptr xcb_selinux_get_property_data_context_reply_t): cint# proc xcb_selinux_get_property_data_context_context_end*(# R: ptr xcb_selinux_get_property_data_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_property_data_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_property_data_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_property_data_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_property_data_context_reply_t# proc xcb_selinux_list_properties_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_list_properties*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_selinux_list_properties_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_list_properties_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t): xcb_selinux_list_properties_cookie_t# proc xcb_selinux_list_properties_properties_length*(# R: ptr xcb_selinux_list_properties_reply_t): cint# proc xcb_selinux_list_properties_properties_iterator*(# R: ptr xcb_selinux_list_properties_reply_t): xcb_selinux_list_item_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_list_properties_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_list_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_list_properties_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_list_properties_reply_t# proc xcb_selinux_set_selection_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_selection_create_context_checked*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_selection_create_context*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_selection_create_context_context*(# R: ptr xcb_selinux_set_selection_create_context_request_t): cstring# proc xcb_selinux_set_selection_create_context_context_length*(# R: ptr xcb_selinux_set_selection_create_context_request_t): cint# proc xcb_selinux_set_selection_create_context_context_end*(# R: ptr xcb_selinux_set_selection_create_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_selection_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_selection_create_context*(c: ptr xcb_connection_t): xcb_selinux_get_selection_create_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_selection_create_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_selection_create_context_cookie_t# proc xcb_selinux_get_selection_create_context_context*(# R: ptr xcb_selinux_get_selection_create_context_reply_t): cstring# proc xcb_selinux_get_selection_create_context_context_length*(# R: ptr xcb_selinux_get_selection_create_context_reply_t): cint# proc xcb_selinux_get_selection_create_context_context_end*(# R: ptr xcb_selinux_get_selection_create_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_selection_create_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_selection_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_create_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_create_context_reply_t# proc xcb_selinux_set_selection_use_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_selinux_set_selection_use_context_checked*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_set_selection_use_context*(c: ptr xcb_connection_t;# context_len: uint32; context: cstring): xcb_void_cookie_t# proc xcb_selinux_set_selection_use_context_context*(# R: ptr xcb_selinux_set_selection_use_context_request_t): cstring# proc xcb_selinux_set_selection_use_context_context_length*(# R: ptr xcb_selinux_set_selection_use_context_request_t): cint# proc xcb_selinux_set_selection_use_context_context_end*(# R: ptr xcb_selinux_set_selection_use_context_request_t): xcb_generic_iterator_t# proc xcb_selinux_get_selection_use_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_selection_use_context*(c: ptr xcb_connection_t): xcb_selinux_get_selection_use_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_selection_use_context_unchecked*(c: ptr xcb_connection_t): xcb_selinux_get_selection_use_context_cookie_t# proc xcb_selinux_get_selection_use_context_context*(# R: ptr xcb_selinux_get_selection_use_context_reply_t): cstring# proc xcb_selinux_get_selection_use_context_context_length*(# R: ptr xcb_selinux_get_selection_use_context_reply_t): cint# proc xcb_selinux_get_selection_use_context_context_end*(# R: ptr xcb_selinux_get_selection_use_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_selection_use_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_selection_use_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_use_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_use_context_reply_t# proc xcb_selinux_get_selection_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_selection_context*(c: ptr xcb_connection_t;# selection: xcb_atom_t): xcb_selinux_get_selection_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_selection_context_unchecked*(c: ptr xcb_connection_t;# selection: xcb_atom_t): xcb_selinux_get_selection_context_cookie_t# proc xcb_selinux_get_selection_context_context*(# R: ptr xcb_selinux_get_selection_context_reply_t): cstring# proc xcb_selinux_get_selection_context_context_length*(# R: ptr xcb_selinux_get_selection_context_reply_t): cint# proc xcb_selinux_get_selection_context_context_end*(# R: ptr xcb_selinux_get_selection_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_selection_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_selection_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_context_reply_t# proc xcb_selinux_get_selection_data_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_selection_data_context*(c: ptr xcb_connection_t;# selection: xcb_atom_t): xcb_selinux_get_selection_data_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_selection_data_context_unchecked*(c: ptr xcb_connection_t;# selection: xcb_atom_t): xcb_selinux_get_selection_data_context_cookie_t# proc xcb_selinux_get_selection_data_context_context*(# R: ptr xcb_selinux_get_selection_data_context_reply_t): cstring# proc xcb_selinux_get_selection_data_context_context_length*(# R: ptr xcb_selinux_get_selection_data_context_reply_t): cint# proc xcb_selinux_get_selection_data_context_context_end*(# R: ptr xcb_selinux_get_selection_data_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_selection_data_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_selection_data_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_selection_data_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_selection_data_context_reply_t# proc xcb_selinux_list_selections_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_list_selections*(c: ptr xcb_connection_t): xcb_selinux_list_selections_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_list_selections_unchecked*(c: ptr xcb_connection_t): xcb_selinux_list_selections_cookie_t# proc xcb_selinux_list_selections_selections_length*(# R: ptr xcb_selinux_list_selections_reply_t): cint# proc xcb_selinux_list_selections_selections_iterator*(# R: ptr xcb_selinux_list_selections_reply_t): xcb_selinux_list_item_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_list_selections_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_list_selections_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_list_selections_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_list_selections_reply_t# proc xcb_selinux_get_client_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_selinux_get_client_context*(c: ptr xcb_connection_t; resource: uint32): xcb_selinux_get_client_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_selinux_get_client_context_unchecked*(c: ptr xcb_connection_t;# resource: uint32): xcb_selinux_get_client_context_cookie_t# proc xcb_selinux_get_client_context_context*(# R: ptr xcb_selinux_get_client_context_reply_t): cstring# proc xcb_selinux_get_client_context_context_length*(# R: ptr xcb_selinux_get_client_context_reply_t): cint# proc xcb_selinux_get_client_context_context_end*(# R: ptr xcb_selinux_get_client_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_selinux_get_client_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_selinux_get_client_context_reply*(c: ptr xcb_connection_t; cookie: xcb_selinux_get_client_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_selinux_get_client_context_reply_t# ## *# ## @}# ### ### ## This file generated automatically from xtest.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Test_API XCB Test API# ## @brief Test XCB Protocol Implementation.# ## @{# ### import# xcb, xproto# const# XCB_TEST_MAJOR_VERSION* = 2# XCB_TEST_MINOR_VERSION* = 2# var xcb_test_id*: xcb_extension_t# ## *# ## @brief xcb_test_get_version_cookie_t# ### type# xcb_test_get_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_test_get_version.# const# XCB_TEST_GET_VERSION* = 0# ## *# ## @brief xcb_test_get_version_request_t# ### type# xcb_test_get_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# major_version*: uint8# pad0*: uint8# minor_version*: uint16# ## *# ## @brief xcb_test_get_version_reply_t# ### type# xcb_test_get_version_reply_t* {.bycopy.} = object# response_type*: uint8# major_version*: uint8# sequence*: uint16# length*: uint32# minor_version*: uint16# xcb_test_cursor_t* = enum# XCB_TEST_CURSOR_NONE = 0, XCB_TEST_CURSOR_CURRENT = 1# ## *# ## @brief xcb_test_compare_cursor_cookie_t# ### type# xcb_test_compare_cursor_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_test_compare_cursor.# const# XCB_TEST_COMPARE_CURSOR* = 1# ## *# ## @brief xcb_test_compare_cursor_request_t# ### type# xcb_test_compare_cursor_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# cursor*: xcb_cursor_t# ## *# ## @brief xcb_test_compare_cursor_reply_t# ### type# xcb_test_compare_cursor_reply_t* {.bycopy.} = object# response_type*: uint8# same*: uint8# sequence*: uint16# length*: uint32# ## * Opcode for xcb_test_fake_input.# const# XCB_TEST_FAKE_INPUT* = 2# ## *# ## @brief xcb_test_fake_input_request_t# ### type# xcb_test_fake_input_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# `type`*: uint8# detail*: uint8# pad0*: array[2, uint8]# time*: uint32# root*: xcb_window_t# pad1*: array[8, uint8]# rootX*: int16# rootY*: int16# pad2*: array[7, uint8]# deviceid*: uint8# ## * Opcode for xcb_test_grab_control.# const# XCB_TEST_GRAB_CONTROL* = 3# ## *# ## @brief xcb_test_grab_control_request_t# ### type# xcb_test_grab_control_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# impervious*: uint8# pad0*: array[3, uint8]# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_test_get_version*(c: ptr xcb_connection_t; major_version: uint8;# minor_version: uint16): xcb_test_get_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_test_get_version_unchecked*(c: ptr xcb_connection_t;# major_version: uint8;# minor_version: uint16): xcb_test_get_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_test_get_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_test_get_version_reply*(c: ptr xcb_connection_t; cookie: xcb_test_get_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_test_get_version_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_test_compare_cursor*(c: ptr xcb_connection_t; window: xcb_window_t;# cursor: xcb_cursor_t): xcb_test_compare_cursor_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_test_compare_cursor_unchecked*(c: ptr xcb_connection_t;# window: xcb_window_t; cursor: xcb_cursor_t): xcb_test_compare_cursor_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_test_compare_cursor_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_test_compare_cursor_reply*(c: ptr xcb_connection_t; cookie: xcb_test_compare_cursor_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_test_compare_cursor_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_test_fake_input_checked*(c: ptr xcb_connection_t; `type`: uint8;# detail: uint8; time: uint32;# root: xcb_window_t; rootX: int16; rootY: int16;# deviceid: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_test_fake_input*(c: ptr xcb_connection_t; `type`: uint8; detail: uint8;# time: uint32; root: xcb_window_t; rootX: int16;# rootY: int16; deviceid: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_test_grab_control_checked*(c: ptr xcb_connection_t; impervious: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_test_grab_control*(c: ptr xcb_connection_t; impervious: uint8): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from xv.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_Xv_API XCB Xv API# ## @brief Xv XCB Protocol Implementation.# ## @{# ### import# xcb, xproto, shm# const# XCB_XV_MAJOR_VERSION* = 2# XCB_XV_MINOR_VERSION* = 2# var xcb_xv_id*: xcb_extension_t# type# xcb_xv_port_t* = uint32# ## *# ## @brief xcb_xv_port_iterator_t# ### type# xcb_xv_port_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_port_t# rem*: cint# index*: cint# xcb_xv_encoding_t* = uint32# ## *# ## @brief xcb_xv_encoding_iterator_t# ### type# xcb_xv_encoding_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_encoding_t# rem*: cint# index*: cint# xcb_xv_type_t* = enum# XCB_XV_TYPE_INPUT_MASK = 1, XCB_XV_TYPE_OUTPUT_MASK = 2,# XCB_XV_TYPE_VIDEO_MASK = 4, XCB_XV_TYPE_STILL_MASK = 8,# XCB_XV_TYPE_IMAGE_MASK = 16# xcb_xv_image_format_info_type_t* = enum# XCB_XV_IMAGE_FORMAT_INFO_TYPE_RGB = 0, XCB_XV_IMAGE_FORMAT_INFO_TYPE_YUV = 1# xcb_xv_image_format_info_format_t* = enum# XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PACKED = 0,# XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PLANAR = 1# xcb_xv_attribute_flag_t* = enum# XCB_XV_ATTRIBUTE_FLAG_GETTABLE = 1, XCB_XV_ATTRIBUTE_FLAG_SETTABLE = 2# xcb_xv_video_notify_reason_t* = enum# XCB_XV_VIDEO_NOTIFY_REASON_STARTED = 0, XCB_XV_VIDEO_NOTIFY_REASON_STOPPED = 1,# XCB_XV_VIDEO_NOTIFY_REASON_BUSY = 2, XCB_XV_VIDEO_NOTIFY_REASON_PREEMPTED = 3,# XCB_XV_VIDEO_NOTIFY_REASON_HARD_ERROR = 4# xcb_xv_scanline_order_t* = enum# XCB_XV_SCANLINE_ORDER_TOP_TO_BOTTOM = 0,# XCB_XV_SCANLINE_ORDER_BOTTOM_TO_TOP = 1# xcb_xv_grab_port_status_t* = enum# XCB_XV_GRAB_PORT_STATUS_SUCCESS = 0, XCB_XV_GRAB_PORT_STATUS_BAD_EXTENSION = 1,# XCB_XV_GRAB_PORT_STATUS_ALREADY_GRABBED = 2,# XCB_XV_GRAB_PORT_STATUS_INVALID_TIME = 3,# XCB_XV_GRAB_PORT_STATUS_BAD_REPLY = 4, XCB_XV_GRAB_PORT_STATUS_BAD_ALLOC = 5# ## *# ## @brief xcb_xv_rational_t# ### type# xcb_xv_rational_t* {.bycopy.} = object# numerator*: int32# denominator*: int32# ## *# ## @brief xcb_xv_rational_iterator_t# ### type# xcb_xv_rational_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_rational_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xv_format_t# ### type# xcb_xv_format_t* {.bycopy.} = object# visual*: xcb_visualid_t# depth*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_xv_format_iterator_t# ### type# xcb_xv_format_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_format_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xv_adaptor_info_t# ### type# xcb_xv_adaptor_info_t* {.bycopy.} = object# base_id*: xcb_xv_port_t# name_size*: uint16# num_ports*: uint16# num_formats*: uint16# `type`*: uint8# pad0*: uint8# ## *# ## @brief xcb_xv_adaptor_info_iterator_t# ### type# xcb_xv_adaptor_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_adaptor_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xv_encoding_info_t# ### type# xcb_xv_encoding_info_t* {.bycopy.} = object# encoding*: xcb_xv_encoding_t# name_size*: uint16# width*: uint16# height*: uint16# pad0*: array[2, uint8]# rate*: xcb_xv_rational_t# ## *# ## @brief xcb_xv_encoding_info_iterator_t# ### type# xcb_xv_encoding_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_encoding_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xv_image_t# ### type# xcb_xv_image_t* {.bycopy.} = object# id*: uint32# width*: uint16# height*: uint16# data_size*: uint32# num_planes*: uint32# ## *# ## @brief xcb_xv_image_iterator_t# ### type# xcb_xv_image_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_image_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xv_attribute_info_t# ### type# xcb_xv_attribute_info_t* {.bycopy.} = object# flags*: uint32# min*: int32# max*: int32# size*: uint32# ## *# ## @brief xcb_xv_attribute_info_iterator_t# ### type# xcb_xv_attribute_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_attribute_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xv_image_format_info_t# ### type# xcb_xv_image_format_info_t* {.bycopy.} = object# id*: uint32# `type`*: uint8# byte_order*: uint8# pad0*: array[2, uint8]# guid*: array[16, uint8]# bpp*: uint8# num_planes*: uint8# pad1*: array[2, uint8]# depth*: uint8# pad2*: array[3, uint8]# red_mask*: uint32# green_mask*: uint32# blue_mask*: uint32# format*: uint8# pad3*: array[3, uint8]# y_sample_bits*: uint32# u_sample_bits*: uint32# v_sample_bits*: uint32# vhorz_y_period*: uint32# vhorz_u_period*: uint32# vhorz_v_period*: uint32# vvert_y_period*: uint32# vvert_u_period*: uint32# vvert_v_period*: uint32# vcomp_order*: array[32, uint8]# vscanline_order*: uint8# pad4*: array[11, uint8]# ## *# ## @brief xcb_xv_image_format_info_iterator_t# ### type# xcb_xv_image_format_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xv_image_format_info_t# rem*: cint# index*: cint# ## * Opcode for xcb_xv_bad_port.# const# XCB_XV_BAD_PORT* = 0# ## *# ## @brief xcb_xv_bad_port_error_t# ### type# xcb_xv_bad_port_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_xv_bad_encoding.# const# XCB_XV_BAD_ENCODING* = 1# ## *# ## @brief xcb_xv_bad_encoding_error_t# ### type# xcb_xv_bad_encoding_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_xv_bad_control.# const# XCB_XV_BAD_CONTROL* = 2# ## *# ## @brief xcb_xv_bad_control_error_t# ### type# xcb_xv_bad_control_error_t* {.bycopy.} = object# response_type*: uint8# error_code*: uint8# sequence*: uint16# ## * Opcode for xcb_xv_video_notify.# const# XCB_XV_VIDEO_NOTIFY* = 0# ## *# ## @brief xcb_xv_video_notify_event_t# ### type# xcb_xv_video_notify_event_t* {.bycopy.} = object# response_type*: uint8# reason*: uint8# sequence*: uint16# time*: xcb_timestamp_t# drawable*: xcb_drawable_t# port*: xcb_xv_port_t# ## * Opcode for xcb_xv_port_notify.# const# XCB_XV_PORT_NOTIFY* = 1# ## *# ## @brief xcb_xv_port_notify_event_t# ### type# xcb_xv_port_notify_event_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# time*: xcb_timestamp_t# port*: xcb_xv_port_t# attribute*: xcb_atom_t# value*: int32# ## *# ## @brief xcb_xv_query_extension_cookie_t# ### type# xcb_xv_query_extension_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_query_extension.# const# XCB_XV_QUERY_EXTENSION* = 0# ## *# ## @brief xcb_xv_query_extension_request_t# ### type# xcb_xv_query_extension_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xv_query_extension_reply_t# ### type# xcb_xv_query_extension_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major*: uint16# minor*: uint16# ## *# ## @brief xcb_xv_query_adaptors_cookie_t# ### type# xcb_xv_query_adaptors_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_query_adaptors.# const# XCB_XV_QUERY_ADAPTORS* = 1# ## *# ## @brief xcb_xv_query_adaptors_request_t# ### type# xcb_xv_query_adaptors_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# window*: xcb_window_t# ## *# ## @brief xcb_xv_query_adaptors_reply_t# ### type# xcb_xv_query_adaptors_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_adaptors*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_xv_query_encodings_cookie_t# ### type# xcb_xv_query_encodings_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_query_encodings.# const# XCB_XV_QUERY_ENCODINGS* = 2# ## *# ## @brief xcb_xv_query_encodings_request_t# ### type# xcb_xv_query_encodings_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# ## *# ## @brief xcb_xv_query_encodings_reply_t# ### type# xcb_xv_query_encodings_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_encodings*: uint16# pad1*: array[22, uint8]# ## *# ## @brief xcb_xv_grab_port_cookie_t# ### type# xcb_xv_grab_port_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_grab_port.# const# XCB_XV_GRAB_PORT* = 3# ## *# ## @brief xcb_xv_grab_port_request_t# ### type# xcb_xv_grab_port_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# time*: xcb_timestamp_t# ## *# ## @brief xcb_xv_grab_port_reply_t# ### type# xcb_xv_grab_port_reply_t* {.bycopy.} = object# response_type*: uint8# result*: uint8# sequence*: uint16# length*: uint32# ## * Opcode for xcb_xv_ungrab_port.# const# XCB_XV_UNGRAB_PORT* = 4# ## *# ## @brief xcb_xv_ungrab_port_request_t# ### type# xcb_xv_ungrab_port_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# time*: xcb_timestamp_t# ## * Opcode for xcb_xv_put_video.# const# XCB_XV_PUT_VIDEO* = 5# ## *# ## @brief xcb_xv_put_video_request_t# ### type# xcb_xv_put_video_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# vid_x*: int16# vid_y*: int16# vid_w*: uint16# vid_h*: uint16# drw_x*: int16# drw_y*: int16# drw_w*: uint16# drw_h*: uint16# ## * Opcode for xcb_xv_put_still.# const# XCB_XV_PUT_STILL* = 6# ## *# ## @brief xcb_xv_put_still_request_t# ### type# xcb_xv_put_still_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# vid_x*: int16# vid_y*: int16# vid_w*: uint16# vid_h*: uint16# drw_x*: int16# drw_y*: int16# drw_w*: uint16# drw_h*: uint16# ## * Opcode for xcb_xv_get_video.# const# XCB_XV_GET_VIDEO* = 7# ## *# ## @brief xcb_xv_get_video_request_t# ### type# xcb_xv_get_video_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# vid_x*: int16# vid_y*: int16# vid_w*: uint16# vid_h*: uint16# drw_x*: int16# drw_y*: int16# drw_w*: uint16# drw_h*: uint16# ## * Opcode for xcb_xv_get_still.# const# XCB_XV_GET_STILL* = 8# ## *# ## @brief xcb_xv_get_still_request_t# ### type# xcb_xv_get_still_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# vid_x*: int16# vid_y*: int16# vid_w*: uint16# vid_h*: uint16# drw_x*: int16# drw_y*: int16# drw_w*: uint16# drw_h*: uint16# ## * Opcode for xcb_xv_stop_video.# const# XCB_XV_STOP_VIDEO* = 9# ## *# ## @brief xcb_xv_stop_video_request_t# ### type# xcb_xv_stop_video_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# ## * Opcode for xcb_xv_select_video_notify.# const# XCB_XV_SELECT_VIDEO_NOTIFY* = 10# ## *# ## @brief xcb_xv_select_video_notify_request_t# ### type# xcb_xv_select_video_notify_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# drawable*: xcb_drawable_t# onoff*: uint8# pad0*: array[3, uint8]# ## * Opcode for xcb_xv_select_port_notify.# const# XCB_XV_SELECT_PORT_NOTIFY* = 11# ## *# ## @brief xcb_xv_select_port_notify_request_t# ### type# xcb_xv_select_port_notify_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# onoff*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_xv_query_best_size_cookie_t# ### type# xcb_xv_query_best_size_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_query_best_size.# const# XCB_XV_QUERY_BEST_SIZE* = 12# ## *# ## @brief xcb_xv_query_best_size_request_t# ### type# xcb_xv_query_best_size_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# vid_w*: uint16# vid_h*: uint16# drw_w*: uint16# drw_h*: uint16# motion*: uint8# pad0*: array[3, uint8]# ## *# ## @brief xcb_xv_query_best_size_reply_t# ### type# xcb_xv_query_best_size_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# actual_width*: uint16# actual_height*: uint16# ## * Opcode for xcb_xv_set_port_attribute.# const# XCB_XV_SET_PORT_ATTRIBUTE* = 13# ## *# ## @brief xcb_xv_set_port_attribute_request_t# ### type# xcb_xv_set_port_attribute_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# attribute*: xcb_atom_t# value*: int32# ## *# ## @brief xcb_xv_get_port_attribute_cookie_t# ### type# xcb_xv_get_port_attribute_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_get_port_attribute.# const# XCB_XV_GET_PORT_ATTRIBUTE* = 14# ## *# ## @brief xcb_xv_get_port_attribute_request_t# ### type# xcb_xv_get_port_attribute_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# attribute*: xcb_atom_t# ## *# ## @brief xcb_xv_get_port_attribute_reply_t# ### type# xcb_xv_get_port_attribute_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# value*: int32# ## *# ## @brief xcb_xv_query_port_attributes_cookie_t# ### type# xcb_xv_query_port_attributes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_query_port_attributes.# const# XCB_XV_QUERY_PORT_ATTRIBUTES* = 15# ## *# ## @brief xcb_xv_query_port_attributes_request_t# ### type# xcb_xv_query_port_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# ## *# ## @brief xcb_xv_query_port_attributes_reply_t# ### type# xcb_xv_query_port_attributes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_attributes*: uint32# text_size*: uint32# pad1*: array[16, uint8]# ## *# ## @brief xcb_xv_list_image_formats_cookie_t# ### type# xcb_xv_list_image_formats_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_list_image_formats.# const# XCB_XV_LIST_IMAGE_FORMATS* = 16# ## *# ## @brief xcb_xv_list_image_formats_request_t# ### type# xcb_xv_list_image_formats_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# ## *# ## @brief xcb_xv_list_image_formats_reply_t# ### type# xcb_xv_list_image_formats_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_formats*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_xv_query_image_attributes_cookie_t# ### type# xcb_xv_query_image_attributes_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xv_query_image_attributes.# const# XCB_XV_QUERY_IMAGE_ATTRIBUTES* = 17# ## *# ## @brief xcb_xv_query_image_attributes_request_t# ### type# xcb_xv_query_image_attributes_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# id*: uint32# width*: uint16# height*: uint16# ## *# ## @brief xcb_xv_query_image_attributes_reply_t# ### type# xcb_xv_query_image_attributes_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num_planes*: uint32# data_size*: uint32# width*: uint16# height*: uint16# pad1*: array[12, uint8]# ## * Opcode for xcb_xv_put_image.# const# XCB_XV_PUT_IMAGE* = 18# ## *# ## @brief xcb_xv_put_image_request_t# ### type# xcb_xv_put_image_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# id*: uint32# src_x*: int16# src_y*: int16# src_w*: uint16# src_h*: uint16# drw_x*: int16# drw_y*: int16# drw_w*: uint16# drw_h*: uint16# width*: uint16# height*: uint16# ## * Opcode for xcb_xv_shm_put_image.# const# XCB_XV_SHM_PUT_IMAGE* = 19# ## *# ## @brief xcb_xv_shm_put_image_request_t# ### type# xcb_xv_shm_put_image_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port*: xcb_xv_port_t# drawable*: xcb_drawable_t# gc*: xcb_gcontext_t# shmseg*: xcb_shm_seg_t# id*: uint32# offset*: uint32# src_x*: int16# src_y*: int16# src_w*: uint16# src_h*: uint16# drw_x*: int16# drw_y*: int16# drw_w*: uint16# drw_h*: uint16# width*: uint16# height*: uint16# send_event*: uint8# pad0*: array[3, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_port_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_port_t)# ### proc xcb_xv_port_next*(i: ptr xcb_xv_port_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_port_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_port_end*(i: xcb_xv_port_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_encoding_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_encoding_t)# ### proc xcb_xv_encoding_next*(i: ptr xcb_xv_encoding_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_encoding_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_encoding_end*(i: xcb_xv_encoding_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_rational_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_rational_t)# ### proc xcb_xv_rational_next*(i: ptr xcb_xv_rational_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_rational_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_rational_end*(i: xcb_xv_rational_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_format_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_format_t)# ### proc xcb_xv_format_next*(i: ptr xcb_xv_format_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_format_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_format_end*(i: xcb_xv_format_iterator_t): xcb_generic_iterator_t# proc xcb_xv_adaptor_info_sizeof*(_buffer: pointer): cint# proc xcb_xv_adaptor_info_name*(R: ptr xcb_xv_adaptor_info_t): cstring# proc xcb_xv_adaptor_info_name_length*(R: ptr xcb_xv_adaptor_info_t): cint# proc xcb_xv_adaptor_info_name_end*(R: ptr xcb_xv_adaptor_info_t): xcb_generic_iterator_t# proc xcb_xv_adaptor_info_formats*(R: ptr xcb_xv_adaptor_info_t): ptr xcb_xv_format_t# proc xcb_xv_adaptor_info_formats_length*(R: ptr xcb_xv_adaptor_info_t): cint# proc xcb_xv_adaptor_info_formats_iterator*(R: ptr xcb_xv_adaptor_info_t): xcb_xv_format_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_adaptor_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_adaptor_info_t)# ### proc xcb_xv_adaptor_info_next*(i: ptr xcb_xv_adaptor_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_adaptor_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_adaptor_info_end*(i: xcb_xv_adaptor_info_iterator_t): xcb_generic_iterator_t# proc xcb_xv_encoding_info_sizeof*(_buffer: pointer): cint# proc xcb_xv_encoding_info_name*(R: ptr xcb_xv_encoding_info_t): cstring# proc xcb_xv_encoding_info_name_length*(R: ptr xcb_xv_encoding_info_t): cint# proc xcb_xv_encoding_info_name_end*(R: ptr xcb_xv_encoding_info_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_encoding_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_encoding_info_t)# ### proc xcb_xv_encoding_info_next*(i: ptr xcb_xv_encoding_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_encoding_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_encoding_info_end*(i: xcb_xv_encoding_info_iterator_t): xcb_generic_iterator_t# proc xcb_xv_image_sizeof*(_buffer: pointer): cint# proc xcb_xv_image_pitches*(R: ptr xcb_xv_image_t): ptr uint32# proc xcb_xv_image_pitches_length*(R: ptr xcb_xv_image_t): cint# proc xcb_xv_image_pitches_end*(R: ptr xcb_xv_image_t): xcb_generic_iterator_t# proc xcb_xv_image_offsets*(R: ptr xcb_xv_image_t): ptr uint32# proc xcb_xv_image_offsets_length*(R: ptr xcb_xv_image_t): cint# proc xcb_xv_image_offsets_end*(R: ptr xcb_xv_image_t): xcb_generic_iterator_t# proc xcb_xv_image_data*(R: ptr xcb_xv_image_t): ptr uint8# proc xcb_xv_image_data_length*(R: ptr xcb_xv_image_t): cint# proc xcb_xv_image_data_end*(R: ptr xcb_xv_image_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_image_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_image_t)# ### proc xcb_xv_image_next*(i: ptr xcb_xv_image_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_image_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_image_end*(i: xcb_xv_image_iterator_t): xcb_generic_iterator_t# proc xcb_xv_attribute_info_sizeof*(_buffer: pointer): cint# proc xcb_xv_attribute_info_name*(R: ptr xcb_xv_attribute_info_t): cstring# proc xcb_xv_attribute_info_name_length*(R: ptr xcb_xv_attribute_info_t): cint# proc xcb_xv_attribute_info_name_end*(R: ptr xcb_xv_attribute_info_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_attribute_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_attribute_info_t)# ### proc xcb_xv_attribute_info_next*(i: ptr xcb_xv_attribute_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_attribute_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_attribute_info_end*(i: xcb_xv_attribute_info_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xv_image_format_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xv_image_format_info_t)# ### proc xcb_xv_image_format_info_next*(i: ptr xcb_xv_image_format_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xv_image_format_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xv_image_format_info_end*(i: xcb_xv_image_format_info_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_query_extension*(c: ptr xcb_connection_t): xcb_xv_query_extension_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_query_extension_unchecked*(c: ptr xcb_connection_t): xcb_xv_query_extension_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_query_extension_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_query_extension_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_extension_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_extension_reply_t# proc xcb_xv_query_adaptors_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_query_adaptors*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xv_query_adaptors_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_query_adaptors_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_xv_query_adaptors_cookie_t# proc xcb_xv_query_adaptors_info_length*(R: ptr xcb_xv_query_adaptors_reply_t): cint# proc xcb_xv_query_adaptors_info_iterator*(R: ptr xcb_xv_query_adaptors_reply_t): xcb_xv_adaptor_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_query_adaptors_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_query_adaptors_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_adaptors_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_adaptors_reply_t# proc xcb_xv_query_encodings_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_query_encodings*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_query_encodings_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_query_encodings_unchecked*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_query_encodings_cookie_t# proc xcb_xv_query_encodings_info_length*(R: ptr xcb_xv_query_encodings_reply_t): cint# proc xcb_xv_query_encodings_info_iterator*(R: ptr xcb_xv_query_encodings_reply_t): xcb_xv_encoding_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_query_encodings_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_query_encodings_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_encodings_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_encodings_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_grab_port*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# time: xcb_timestamp_t): xcb_xv_grab_port_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_grab_port_unchecked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# time: xcb_timestamp_t): xcb_xv_grab_port_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_grab_port_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_grab_port_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_grab_port_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_grab_port_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_ungrab_port_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_ungrab_port*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# time: xcb_timestamp_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_put_video_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# vid_x: int16; vid_y: int16; vid_w: uint16;# vid_h: uint16; drw_x: int16; drw_y: int16;# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_put_video*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;# vid_y: int16; vid_w: uint16; vid_h: uint16;# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_put_still_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# vid_x: int16; vid_y: int16; vid_w: uint16;# vid_h: uint16; drw_x: int16; drw_y: int16;# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_put_still*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;# vid_y: int16; vid_w: uint16; vid_h: uint16;# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_get_video_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# vid_x: int16; vid_y: int16; vid_w: uint16;# vid_h: uint16; drw_x: int16; drw_y: int16;# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_get_video*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;# vid_y: int16; vid_w: uint16; vid_h: uint16;# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_get_still_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# vid_x: int16; vid_y: int16; vid_w: uint16;# vid_h: uint16; drw_x: int16; drw_y: int16;# drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_get_still*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; vid_x: int16;# vid_y: int16; vid_w: uint16; vid_h: uint16;# drw_x: int16; drw_y: int16; drw_w: uint16; drw_h: uint16): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_stop_video_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_stop_video*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_select_video_notify_checked*(c: ptr xcb_connection_t;# drawable: xcb_drawable_t; onoff: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_select_video_notify*(c: ptr xcb_connection_t; drawable: xcb_drawable_t;# onoff: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_select_port_notify_checked*(c: ptr xcb_connection_t;# port: xcb_xv_port_t; onoff: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_select_port_notify*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# onoff: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_query_best_size*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# vid_w: uint16; vid_h: uint16; drw_w: uint16;# drw_h: uint16; motion: uint8): xcb_xv_query_best_size_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_query_best_size_unchecked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# vid_w: uint16; vid_h: uint16;# drw_w: uint16; drw_h: uint16;# motion: uint8): xcb_xv_query_best_size_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_query_best_size_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_query_best_size_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_best_size_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_best_size_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_set_port_attribute_checked*(c: ptr xcb_connection_t;# port: xcb_xv_port_t; attribute: xcb_atom_t;# value: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_set_port_attribute*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# attribute: xcb_atom_t; value: int32): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_get_port_attribute*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# attribute: xcb_atom_t): xcb_xv_get_port_attribute_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_get_port_attribute_unchecked*(c: ptr xcb_connection_t;# port: xcb_xv_port_t; attribute: xcb_atom_t): xcb_xv_get_port_attribute_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_get_port_attribute_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_get_port_attribute_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_get_port_attribute_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_get_port_attribute_reply_t# proc xcb_xv_query_port_attributes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_query_port_attributes*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_query_port_attributes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_query_port_attributes_unchecked*(c: ptr xcb_connection_t;# port: xcb_xv_port_t): xcb_xv_query_port_attributes_cookie_t# proc xcb_xv_query_port_attributes_attributes_length*(# R: ptr xcb_xv_query_port_attributes_reply_t): cint# proc xcb_xv_query_port_attributes_attributes_iterator*(# R: ptr xcb_xv_query_port_attributes_reply_t): xcb_xv_attribute_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_query_port_attributes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_query_port_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_port_attributes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_port_attributes_reply_t# proc xcb_xv_list_image_formats_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_list_image_formats*(c: ptr xcb_connection_t; port: xcb_xv_port_t): xcb_xv_list_image_formats_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_list_image_formats_unchecked*(c: ptr xcb_connection_t;# port: xcb_xv_port_t): xcb_xv_list_image_formats_cookie_t# proc xcb_xv_list_image_formats_format*(R: ptr xcb_xv_list_image_formats_reply_t): ptr xcb_xv_image_format_info_t# proc xcb_xv_list_image_formats_format_length*(# R: ptr xcb_xv_list_image_formats_reply_t): cint# proc xcb_xv_list_image_formats_format_iterator*(# R: ptr xcb_xv_list_image_formats_reply_t): xcb_xv_image_format_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_list_image_formats_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_list_image_formats_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_list_image_formats_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_list_image_formats_reply_t# proc xcb_xv_query_image_attributes_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_query_image_attributes*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# id: uint32; width: uint16; height: uint16): xcb_xv_query_image_attributes_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xv_query_image_attributes_unchecked*(c: ptr xcb_connection_t;# port: xcb_xv_port_t; id: uint32; width: uint16; height: uint16): xcb_xv_query_image_attributes_cookie_t# proc xcb_xv_query_image_attributes_pitches*(# R: ptr xcb_xv_query_image_attributes_reply_t): ptr uint32# proc xcb_xv_query_image_attributes_pitches_length*(# R: ptr xcb_xv_query_image_attributes_reply_t): cint# proc xcb_xv_query_image_attributes_pitches_end*(# R: ptr xcb_xv_query_image_attributes_reply_t): xcb_generic_iterator_t# proc xcb_xv_query_image_attributes_offsets*(# R: ptr xcb_xv_query_image_attributes_reply_t): ptr uint32# proc xcb_xv_query_image_attributes_offsets_length*(# R: ptr xcb_xv_query_image_attributes_reply_t): cint# proc xcb_xv_query_image_attributes_offsets_end*(# R: ptr xcb_xv_query_image_attributes_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xv_query_image_attributes_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xv_query_image_attributes_reply*(c: ptr xcb_connection_t; cookie: xcb_xv_query_image_attributes_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xv_query_image_attributes_reply_t# proc xcb_xv_put_image_sizeof*(_buffer: pointer; data_len: uint32): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_put_image_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# id: uint32; src_x: int16; src_y: int16;# src_w: uint16; src_h: uint16; drw_x: int16;# drw_y: int16; drw_w: uint16; drw_h: uint16;# width: uint16; height: uint16; data_len: uint32;# data: ptr uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_put_image*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t; id: uint32;# src_x: int16; src_y: int16; src_w: uint16;# src_h: uint16; drw_x: int16; drw_y: int16;# drw_w: uint16; drw_h: uint16; width: uint16;# height: uint16; data_len: uint32; data: ptr uint8): xcb_void_cookie_t# proc xcb_xv_put_image_data*(R: ptr xcb_xv_put_image_request_t): ptr uint8# proc xcb_xv_put_image_data_length*(R: ptr xcb_xv_put_image_request_t): cint# proc xcb_xv_put_image_data_end*(R: ptr xcb_xv_put_image_request_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xv_shm_put_image_checked*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# shmseg: xcb_shm_seg_t; id: uint32;# offset: uint32; src_x: int16; src_y: int16;# src_w: uint16; src_h: uint16; drw_x: int16;# drw_y: int16; drw_w: uint16; drw_h: uint16;# width: uint16; height: uint16;# send_event: uint8): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xv_shm_put_image*(c: ptr xcb_connection_t; port: xcb_xv_port_t;# drawable: xcb_drawable_t; gc: xcb_gcontext_t;# shmseg: xcb_shm_seg_t; id: uint32; offset: uint32;# src_x: int16; src_y: int16; src_w: uint16;# src_h: uint16; drw_x: int16; drw_y: int16;# drw_w: uint16; drw_h: uint16; width: uint16;# height: uint16; send_event: uint8): xcb_void_cookie_t# ## *# ## @}# ### ### ## This file generated automatically from xvmc.xml by c_client.py.# ## Edit at your peril.# ### ## *# ## @defgroup XCB_XvMC_API XCB XvMC API# ## @brief XvMC XCB Protocol Implementation.# ## @{# ### import# xcb, xv# const# XCB_XVMC_MAJOR_VERSION* = 1# XCB_XVMC_MINOR_VERSION* = 1# var xcb_xvmc_id*: xcb_extension_t# type# xcb_xvmc_context_t* = uint32# ## *# ## @brief xcb_xvmc_context_iterator_t# ### type# xcb_xvmc_context_iterator_t* {.bycopy.} = object# data*: ptr xcb_xvmc_context_t# rem*: cint# index*: cint# xcb_xvmc_surface_t* = uint32# ## *# ## @brief xcb_xvmc_surface_iterator_t# ### type# xcb_xvmc_surface_iterator_t* {.bycopy.} = object# data*: ptr xcb_xvmc_surface_t# rem*: cint# index*: cint# xcb_xvmc_subpicture_t* = uint32# ## *# ## @brief xcb_xvmc_subpicture_iterator_t# ### type# xcb_xvmc_subpicture_iterator_t* {.bycopy.} = object# data*: ptr xcb_xvmc_subpicture_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xvmc_surface_info_t# ### type# xcb_xvmc_surface_info_t* {.bycopy.} = object# id*: xcb_xvmc_surface_t# chroma_format*: uint16# pad0*: uint16# max_width*: uint16# max_height*: uint16# subpicture_max_width*: uint16# subpicture_max_height*: uint16# mc_type*: uint32# flags*: uint32# ## *# ## @brief xcb_xvmc_surface_info_iterator_t# ### type# xcb_xvmc_surface_info_iterator_t* {.bycopy.} = object# data*: ptr xcb_xvmc_surface_info_t# rem*: cint# index*: cint# ## *# ## @brief xcb_xvmc_query_version_cookie_t# ### type# xcb_xvmc_query_version_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xvmc_query_version.# const# XCB_XVMC_QUERY_VERSION* = 0# ## *# ## @brief xcb_xvmc_query_version_request_t# ### type# xcb_xvmc_query_version_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# ## *# ## @brief xcb_xvmc_query_version_reply_t# ### type# xcb_xvmc_query_version_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# major*: uint32# minor*: uint32# ## *# ## @brief xcb_xvmc_list_surface_types_cookie_t# ### type# xcb_xvmc_list_surface_types_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xvmc_list_surface_types.# const# XCB_XVMC_LIST_SURFACE_TYPES* = 1# ## *# ## @brief xcb_xvmc_list_surface_types_request_t# ### type# xcb_xvmc_list_surface_types_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port_id*: xcb_xv_port_t# ## *# ## @brief xcb_xvmc_list_surface_types_reply_t# ### type# xcb_xvmc_list_surface_types_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num*: uint32# pad1*: array[20, uint8]# ## *# ## @brief xcb_xvmc_create_context_cookie_t# ### type# xcb_xvmc_create_context_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xvmc_create_context.# const# XCB_XVMC_CREATE_CONTEXT* = 2# ## *# ## @brief xcb_xvmc_create_context_request_t# ### type# xcb_xvmc_create_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_id*: xcb_xvmc_context_t# port_id*: xcb_xv_port_t# surface_id*: xcb_xvmc_surface_t# width*: uint16# height*: uint16# flags*: uint32# ## *# ## @brief xcb_xvmc_create_context_reply_t# ### type# xcb_xvmc_create_context_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width_actual*: uint16# height_actual*: uint16# flags_return*: uint32# pad1*: array[20, uint8]# ## * Opcode for xcb_xvmc_destroy_context.# const# XCB_XVMC_DESTROY_CONTEXT* = 3# ## *# ## @brief xcb_xvmc_destroy_context_request_t# ### type# xcb_xvmc_destroy_context_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# context_id*: xcb_xvmc_context_t# ## *# ## @brief xcb_xvmc_create_surface_cookie_t# ### type# xcb_xvmc_create_surface_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xvmc_create_surface.# const# XCB_XVMC_CREATE_SURFACE* = 4# ## *# ## @brief xcb_xvmc_create_surface_request_t# ### type# xcb_xvmc_create_surface_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# surface_id*: xcb_xvmc_surface_t# context_id*: xcb_xvmc_context_t# ## *# ## @brief xcb_xvmc_create_surface_reply_t# ### type# xcb_xvmc_create_surface_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# pad1*: array[24, uint8]# ## * Opcode for xcb_xvmc_destroy_surface.# const# XCB_XVMC_DESTROY_SURFACE* = 5# ## *# ## @brief xcb_xvmc_destroy_surface_request_t# ### type# xcb_xvmc_destroy_surface_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# surface_id*: xcb_xvmc_surface_t# ## *# ## @brief xcb_xvmc_create_subpicture_cookie_t# ### type# xcb_xvmc_create_subpicture_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xvmc_create_subpicture.# const# XCB_XVMC_CREATE_SUBPICTURE* = 6# ## *# ## @brief xcb_xvmc_create_subpicture_request_t# ### type# xcb_xvmc_create_subpicture_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# subpicture_id*: xcb_xvmc_subpicture_t# context*: xcb_xvmc_context_t# xvimage_id*: uint32# width*: uint16# height*: uint16# ## *# ## @brief xcb_xvmc_create_subpicture_reply_t# ### type# xcb_xvmc_create_subpicture_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# width_actual*: uint16# height_actual*: uint16# num_palette_entries*: uint16# entry_bytes*: uint16# component_order*: array[4, uint8]# pad1*: array[12, uint8]# ## * Opcode for xcb_xvmc_destroy_subpicture.# const# XCB_XVMC_DESTROY_SUBPICTURE* = 7# ## *# ## @brief xcb_xvmc_destroy_subpicture_request_t# ### type# xcb_xvmc_destroy_subpicture_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# subpicture_id*: xcb_xvmc_subpicture_t# ## *# ## @brief xcb_xvmc_list_subpicture_types_cookie_t# ### type# xcb_xvmc_list_subpicture_types_cookie_t* {.bycopy.} = object# sequence*: uint8# ## * Opcode for xcb_xvmc_list_subpicture_types.# const# XCB_XVMC_LIST_SUBPICTURE_TYPES* = 8# ## *# ## @brief xcb_xvmc_list_subpicture_types_request_t# ### type# xcb_xvmc_list_subpicture_types_request_t* {.bycopy.} = object# major_opcode*: uint8# minor_opcode*: uint8# length*: uint16# port_id*: xcb_xv_port_t# surface_id*: xcb_xvmc_surface_t# ## *# ## @brief xcb_xvmc_list_subpicture_types_reply_t# ### type# xcb_xvmc_list_subpicture_types_reply_t* {.bycopy.} = object# response_type*: uint8# pad0*: uint8# sequence*: uint16# length*: uint32# num*: uint32# pad1*: array[20, uint8]# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xvmc_context_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xvmc_context_t)# ### proc xcb_xvmc_context_next*(i: ptr xcb_xvmc_context_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xvmc_context_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xvmc_context_end*(i: xcb_xvmc_context_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xvmc_surface_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xvmc_surface_t)# ### proc xcb_xvmc_surface_next*(i: ptr xcb_xvmc_surface_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xvmc_surface_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xvmc_surface_end*(i: xcb_xvmc_surface_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xvmc_subpicture_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xvmc_subpicture_t)# ### proc xcb_xvmc_subpicture_next*(i: ptr xcb_xvmc_subpicture_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xvmc_subpicture_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xvmc_subpicture_end*(i: xcb_xvmc_subpicture_iterator_t): xcb_generic_iterator_t# ## *# ## Get the next element of the iterator# ## @param i Pointer to a xcb_xvmc_surface_info_iterator_t# ### ## Get the next element in the iterator. The member rem is# ## decreased by one. The member data points to the next# ## element. The member index is increased by sizeof(xcb_xvmc_surface_info_t)# ### proc xcb_xvmc_surface_info_next*(i: ptr xcb_xvmc_surface_info_iterator_t)# ## *# ## Return the iterator pointing to the last element# ## @param i An xcb_xvmc_surface_info_iterator_t# ## @return The iterator pointing to the last element# ### ## Set the current element in the iterator to the last element.# ## The member rem is set to 0. The member data points to the# ## last element.# ### proc xcb_xvmc_surface_info_end*(i: xcb_xvmc_surface_info_iterator_t): xcb_generic_iterator_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_query_version*(c: ptr xcb_connection_t): xcb_xvmc_query_version_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xvmc_query_version_unchecked*(c: ptr xcb_connection_t): xcb_xvmc_query_version_cookie_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xvmc_query_version_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xvmc_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_query_version_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_query_version_reply_t# proc xcb_xvmc_list_surface_types_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_list_surface_types*(c: ptr xcb_connection_t; port_id: xcb_xv_port_t): xcb_xvmc_list_surface_types_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xvmc_list_surface_types_unchecked*(c: ptr xcb_connection_t;# port_id: xcb_xv_port_t): xcb_xvmc_list_surface_types_cookie_t# proc xcb_xvmc_list_surface_types_surfaces*(# R: ptr xcb_xvmc_list_surface_types_reply_t): ptr xcb_xvmc_surface_info_t# proc xcb_xvmc_list_surface_types_surfaces_length*(# R: ptr xcb_xvmc_list_surface_types_reply_t): cint# proc xcb_xvmc_list_surface_types_surfaces_iterator*(# R: ptr xcb_xvmc_list_surface_types_reply_t): xcb_xvmc_surface_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xvmc_list_surface_types_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xvmc_list_surface_types_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_list_surface_types_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_list_surface_types_reply_t# proc xcb_xvmc_create_context_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_create_context*(c: ptr xcb_connection_t;# context_id: xcb_xvmc_context_t;# port_id: xcb_xv_port_t;# surface_id: xcb_xvmc_surface_t; width: uint16;# height: uint16; flags: uint32): xcb_xvmc_create_context_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xvmc_create_context_unchecked*(c: ptr xcb_connection_t;# context_id: xcb_xvmc_context_t;# port_id: xcb_xv_port_t;# surface_id: xcb_xvmc_surface_t;# width: uint16; height: uint16;# flags: uint32): xcb_xvmc_create_context_cookie_t# proc xcb_xvmc_create_context_priv_data*(R: ptr xcb_xvmc_create_context_reply_t): ptr uint32# proc xcb_xvmc_create_context_priv_data_length*(# R: ptr xcb_xvmc_create_context_reply_t): cint# proc xcb_xvmc_create_context_priv_data_end*(# R: ptr xcb_xvmc_create_context_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xvmc_create_context_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xvmc_create_context_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_create_context_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_create_context_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xvmc_destroy_context_checked*(c: ptr xcb_connection_t;# context_id: xcb_xvmc_context_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_destroy_context*(c: ptr xcb_connection_t;# context_id: xcb_xvmc_context_t): xcb_void_cookie_t# proc xcb_xvmc_create_surface_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_create_surface*(c: ptr xcb_connection_t;# surface_id: xcb_xvmc_surface_t;# context_id: xcb_xvmc_context_t): xcb_xvmc_create_surface_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xvmc_create_surface_unchecked*(c: ptr xcb_connection_t;# surface_id: xcb_xvmc_surface_t;# context_id: xcb_xvmc_context_t): xcb_xvmc_create_surface_cookie_t# proc xcb_xvmc_create_surface_priv_data*(R: ptr xcb_xvmc_create_surface_reply_t): ptr uint32# proc xcb_xvmc_create_surface_priv_data_length*(# R: ptr xcb_xvmc_create_surface_reply_t): cint# proc xcb_xvmc_create_surface_priv_data_end*(# R: ptr xcb_xvmc_create_surface_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xvmc_create_surface_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xvmc_create_surface_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_create_surface_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_create_surface_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xvmc_destroy_surface_checked*(c: ptr xcb_connection_t;# surface_id: xcb_xvmc_surface_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_destroy_surface*(c: ptr xcb_connection_t;# surface_id: xcb_xvmc_surface_t): xcb_void_cookie_t# proc xcb_xvmc_create_subpicture_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_create_subpicture*(c: ptr xcb_connection_t;# subpicture_id: xcb_xvmc_subpicture_t;# context: xcb_xvmc_context_t; xvimage_id: uint32;# width: uint16; height: uint16): xcb_xvmc_create_subpicture_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xvmc_create_subpicture_unchecked*(c: ptr xcb_connection_t;# subpicture_id: xcb_xvmc_subpicture_t; context: xcb_xvmc_context_t;# xvimage_id: uint32; width: uint16; height: uint16): xcb_xvmc_create_subpicture_cookie_t# proc xcb_xvmc_create_subpicture_priv_data*(# R: ptr xcb_xvmc_create_subpicture_reply_t): ptr uint32# proc xcb_xvmc_create_subpicture_priv_data_length*(# R: ptr xcb_xvmc_create_subpicture_reply_t): cint# proc xcb_xvmc_create_subpicture_priv_data_end*(# R: ptr xcb_xvmc_create_subpicture_reply_t): xcb_generic_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xvmc_create_subpicture_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xvmc_create_subpicture_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_create_subpicture_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_create_subpicture_reply_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will not cause# ## a reply to be generated. Any returned error will be# ## saved for handling by xcb_request_check().# ### proc xcb_xvmc_destroy_subpicture_checked*(c: ptr xcb_connection_t;# subpicture_id: xcb_xvmc_subpicture_t): xcb_void_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_destroy_subpicture*(c: ptr xcb_connection_t;# subpicture_id: xcb_xvmc_subpicture_t): xcb_void_cookie_t# proc xcb_xvmc_list_subpicture_types_sizeof*(_buffer: pointer): cint# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ### proc xcb_xvmc_list_subpicture_types*(c: ptr xcb_connection_t;# port_id: xcb_xv_port_t;# surface_id: xcb_xvmc_surface_t): xcb_xvmc_list_subpicture_types_cookie_t# ## *# ### ## @param c The connection# ## @return A cookie# ### ## Delivers a request to the X server.# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.# ### proc xcb_xvmc_list_subpicture_types_unchecked*(c: ptr xcb_connection_t;# port_id: xcb_xv_port_t; surface_id: xcb_xvmc_surface_t): xcb_xvmc_list_subpicture_types_cookie_t# proc xcb_xvmc_list_subpicture_types_types*(# R: ptr xcb_xvmc_list_subpicture_types_reply_t): ptr xcb_xv_image_format_info_t# proc xcb_xvmc_list_subpicture_types_types_length*(# R: ptr xcb_xvmc_list_subpicture_types_reply_t): cint# proc xcb_xvmc_list_subpicture_types_types_iterator*(# R: ptr xcb_xvmc_list_subpicture_types_reply_t): xcb_xv_image_format_info_iterator_t# ## *# ## Return the reply# ## @param c The connection# ## @param cookie The cookie# ## @param e The xcb_generic_error_t supplied# ### ## Returns the reply of the request asked by# ### ## The parameter @p e supplied to this function must be NULL if# ## xcb_xvmc_list_subpicture_types_unchecked(). is used.# ## Otherwise, it stores the error if any.# ### ## The returned value must be freed by the caller using free().# ### proc xcb_xvmc_list_subpicture_types_reply*(c: ptr xcb_connection_t; cookie: xcb_xvmc_list_subpicture_types_cookie_t; ## *<# e: ptr ptr xcb_generic_error_t): ptr xcb_xvmc_list_subpicture_types_reply_t# ## *# ## @}# ##
# TODO:# 1. document all the XCB/XKB linkings# 2. move these to their proper files{.deadCodeElim: on.}when defined linux:{.passL: "-lxcb".}{.passL: "-lxcb".}{.passL: "-lX11-xcb".}{.passl: "-lxcb-util".}{.passl: "-lxcb-randr".}{.passl: "-lxcb-xkb".}{.passl: "-lxkbcommon".}{.passl: "-lxkbcommon-x11".}{.passl: "-lxcb-xrm".}{.passl: "-lxkbfile".} # links XKBRules stuff for keyboard layouts{.passl: "-lXfixes".}{.passl: "-lxcb-xfixes".}{.passl: "-lxcb-ewmh".}{.passl: "-lXcomposite".}{.passl: "-lxcb-composite".}when defined dragonfly:{.passL: "`pkgconf --cflags --libs xcb`".}{.passL: "`pkgconf --cflags --libs xcb-util`".}{.passL: "`pkgconf --cflags --libs xcb-randr`".}{.passL: "`pkgconf --cflags --libs xcb-xkb`".}{.passL: "`pkgconf --cflags --libs xkbcommon`".}import x, xrandr, xlibconstXCB_NONE* = 0## * XCB_COPY_FROM_PARENT can be used for many xcb_create_window parametersXCB_COPY_FROM_PARENT* = 0## * XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_tXCB_CURRENT_TIME* = 0## * XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tablesXCB_NO_SYMBOL* = 0XCB_KEY_RELEASE* = 3XCB_BUTTON_PRESS* = 4XCB_BUTTON_RELEASE* = 5XCB_MOTION_NOTIFY* = 6XCB_DESTROY_NOTIFY* = 17XCB_CONFIGURE_NOTIFY* = 22XCB_RESIZE_REQUEST* = 25XCB_BIGREQUESTS_MAJOR_VERSION* = 0XCB_BIG_REQUESTS_ENABLE* = 0XCB_COMPOSITE_MAJOR_VERSION* = 0XCB_COMPOSITE_QUERY_VERSION* = 0XCB_COMPOSITE_REDIRECT_WINDOW* = 1XCB_COMPOSITE_REDIRECT_SUBWINDOWS* = 2XCB_COMPOSITE_UNREDIRECT_WINDOW* = 3XCB_COMPOSITE_UNREDIRECT_SUBWINDOWS* = 4XCB_COMPOSITE_CREATE_REGION_FROM_BORDER_CLIP* = 5XCB_COMPOSITE_NAME_WINDOW_PIXMAP* = 6XCB_COMPOSITE_GET_OVERLAY_WINDOW* = 7XCB_COMPOSITE_RELEASE_OVERLAY_WINDOW* = 8XCB_DAMAGE_MAJOR_VERSION* = 1XCB_DAMAGE_BAD_DAMAGE* = 0XCB_DAMAGE_QUERY_VERSION* = 0XCB_DAMAGE_CREATE* = 1XCB_DAMAGE_DESTROY* = 2XCB_DAMAGE_SUBTRACT* = 3XCB_DAMAGE_ADD* = 4XCB_DAMAGE_NOTIFY* = 0XCB_DPMS_MAJOR_VERSION* = 0XCB_DPMS_GET_VERSION* = 0XCB_DPMS_CAPABLE* = 1XCB_DPMS_GET_TIMEOUTS* = 2XCB_DPMS_SET_TIMEOUTS* = 3XCB_DPMS_ENABLE* = 4XCB_DPMS_DISABLE* = 5XCB_DPMS_FORCE_LEVEL* = 6XCB_DPMS_INFO* = 7XCB_DRI2_MAJOR_VERSION* = 1XCB_DRI2_QUERY_VERSION* = 0XCB_DRI2_CONNECT* = 1XCB_DRI2_AUTHENTICATE* = 2XCB_DRI2_CREATE_DRAWABLE* = 3XCB_DRI2_DESTROY_DRAWABLE* = 4XCB_DRI2_GET_BUFFERS* = 5XCB_DRI2_COPY_REGION* = 6XCB_DRI2_GET_BUFFERS_WITH_FORMAT* = 7XCB_DRI2_SWAP_BUFFERS* = 8XCB_DRI2_GET_MSC* = 9XCB_DRI2_WAIT_MSC* = 10XCB_DRI2_WAIT_SBC* = 11XCB_DRI2_SWAP_INTERVAL* = 12XCB_DRI2_GET_PARAM* = 13XCB_DRI2_BUFFER_SWAP_COMPLETE* = 0XCB_DRI2_INVALIDATE_BUFFERS* = 1XCB_DRI3_MAJOR_VERSION* = 1XCB_DRI3_QUERY_VERSION* = 0XCB_DRI3_OPEN* = 1XCB_DRI3_PIXMAP_FROM_BUFFER* = 2XCB_DRI3_BUFFER_FROM_PIXMAP* = 3XCB_DRI3_FENCE_FROM_FD* = 4XCB_DRI3_FD_FROM_FENCE* = 5XCB_DRI3_GET_SUPPORTED_MODIFIERS* = 6XCB_DRI3_PIXMAP_FROM_BUFFERS* = 7XCB_DRI3_BUFFERS_FROM_PIXMAP* = 8XCB_GENERICEVENT_MAJOR_VERSION* = 1XCB_GENERICEVENT_QUERY_VERSION* = 0XCB_PRESENT_MAJOR_VERSION* = 1XCB_PRESENT_QUERY_VERSION* = 0XCB_PRESENT_PIXMAP* = 1XCB_PRESENT_NOTIFY_MSC* = 2XCB_PRESENT_SELECT_INPUT* = 3XCB_PRESENT_QUERY_CAPABILITIES* = 4XCB_PRESENT_GENERIC* = 0XCB_PRESENT_CONFIGURE_NOTIFY* = 0XCB_PRESENT_COMPLETE_NOTIFY* = 1XCB_PRESENT_IDLE_NOTIFY* = 2XCB_PRESENT_REDIRECT_NOTIFY* = 3XCB_RANDR_MAJOR_VERSION* = 1XCB_RANDR_MINOR_VERSION* = 6XCB_RANDR_BAD_OUTPUT* = 0XCB_RANDR_BAD_CRTC* = 1XCB_RANDR_BAD_MODE* = 2XCB_RANDR_BAD_PROVIDER* = 3XCB_RANDR_QUERY_VERSION* = 0XCB_RANDR_SET_SCREEN_CONFIG* = 2XCB_RANDR_SELECT_INPUT* = 4XCB_RANDR_GET_SCREEN_INFO* = 5XCB_RANDR_GET_SCREEN_SIZE_RANGE* = 6XCB_RANDR_SET_SCREEN_SIZE* = 7XCB_RANDR_GET_SCREEN_RESOURCES* = 8XCB_RANDR_GET_OUTPUT_INFO* = 9XCB_RANDR_LIST_OUTPUT_PROPERTIES* = 10XCB_RANDR_QUERY_OUTPUT_PROPERTY* = 11XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY* = 12XCB_RANDR_CHANGE_OUTPUT_PROPERTY* = 13XCB_RANDR_DELETE_OUTPUT_PROPERTY* = 14XCB_RANDR_GET_OUTPUT_PROPERTY* = 15XCB_RANDR_CREATE_MODE* = 16XCB_RANDR_DESTROY_MODE* = 17XCB_RANDR_ADD_OUTPUT_MODE* = 18XCB_RANDR_DELETE_OUTPUT_MODE* = 19XCB_RANDR_GET_CRTC_INFO* = 20XCB_RANDR_SET_CRTC_CONFIG* = 21XCB_RANDR_GET_CRTC_GAMMA_SIZE* = 22XCB_RANDR_GET_CRTC_GAMMA* = 23XCB_RANDR_SET_CRTC_GAMMA* = 24XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT* = 25XCB_RANDR_SET_CRTC_TRANSFORM* = 26XCB_RANDR_GET_CRTC_TRANSFORM* = 27XCB_RANDR_GET_PANNING* = 28XCB_RANDR_SET_PANNING* = 29XCB_RANDR_SET_OUTPUT_PRIMARY* = 30XCB_RANDR_GET_OUTPUT_PRIMARY* = 31XCB_RANDR_GET_PROVIDERS* = 32XCB_RANDR_GET_PROVIDER_INFO* = 33XCB_RANDR_SET_PROVIDER_OFFLOAD_SINK* = 34XCB_RANDR_SET_PROVIDER_OUTPUT_SOURCE* = 35XCB_RANDR_LIST_PROVIDER_PROPERTIES* = 36XCB_RANDR_QUERY_PROVIDER_PROPERTY* = 37XCB_RANDR_CONFIGURE_PROVIDER_PROPERTY* = 38XCB_RANDR_CHANGE_PROVIDER_PROPERTY* = 39XCB_RANDR_DELETE_PROVIDER_PROPERTY* = 40XCB_RANDR_GET_PROVIDER_PROPERTY* = 41XCB_RANDR_SCREEN_CHANGE_NOTIFY* = 0XCB_RANDR_GET_MONITORS* = 42XCB_RANDR_SET_MONITOR* = 43XCB_RANDR_DELETE_MONITOR* = 44XCB_RANDR_CREATE_LEASE* = 45XCB_RANDR_FREE_LEASE* = 46XCB_RANDR_NOTIFY* = 1XCB_RECORD_MAJOR_VERSION* = 1XCB_RECORD_BAD_CONTEXT* = 0XCB_RECORD_QUERY_VERSION* = 0XCB_RECORD_CREATE_CONTEXT* = 1XCB_RECORD_REGISTER_CLIENTS* = 2XCB_RECORD_UNREGISTER_CLIENTS* = 3XCB_RECORD_GET_CONTEXT* = 4XCB_RECORD_ENABLE_CONTEXT* = 5XCB_RECORD_DISABLE_CONTEXT* = 6XCB_RECORD_FREE_CONTEXT* = 7XCB_RENDER_MAJOR_VERSION* = 0XCB_RENDER_PICT_FORMAT* = 0XCB_RENDER_PICTURE* = 1XCB_RENDER_PICT_OP* = 2XCB_RENDER_GLYPH_SET* = 3XCB_RENDER_GLYPH* = 4XCB_RENDER_QUERY_VERSION* = 0XCB_RENDER_QUERY_PICT_FORMATS* = 1XCB_RENDER_QUERY_PICT_INDEX_VALUES* = 2XCB_RENDER_CREATE_PICTURE* = 4XCB_RENDER_CHANGE_PICTURE* = 5XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES* = 6XCB_RENDER_FREE_PICTURE* = 7XCB_RENDER_COMPOSITE* = 8XCB_RENDER_TRAPEZOIDS* = 10XCB_RENDER_TRIANGLES* = 11XCB_RENDER_TRI_STRIP* = 12XCB_RENDER_TRI_FAN* = 13XCB_RENDER_CREATE_GLYPH_SET* = 17XCB_RENDER_REFERENCE_GLYPH_SET* = 18XCB_RENDER_FREE_GLYPH_SET* = 19XCB_RENDER_ADD_GLYPHS* = 20XCB_RENDER_FREE_GLYPHS* = 22XCB_RENDER_COMPOSITE_GLYPHS_8* = 23XCB_RENDER_COMPOSITE_GLYPHS_16* = 24XCB_RENDER_COMPOSITE_GLYPHS_32* = 25XCB_RENDER_FILL_RECTANGLES* = 26XCB_RENDER_CREATE_CURSOR* = 27XCB_RENDER_SET_PICTURE_TRANSFORM* = 28XCB_RENDER_QUERY_FILTERS* = 29XCB_RENDER_SET_PICTURE_FILTER* = 30XCB_RENDER_CREATE_ANIM_CURSOR* = 31XCB_RENDER_ADD_TRAPS* = 32XCB_RENDER_CREATE_SOLID_FILL* = 33XCB_RENDER_CREATE_LINEAR_GRADIENT* = 34XCB_RENDER_CREATE_RADIAL_GRADIENT* = 35XCB_RENDER_CREATE_CONICAL_GRADIENT* = 36XCB_RES_MAJOR_VERSION* = 1XCB_RES_QUERY_VERSION* = 0XCB_RES_QUERY_CLIENTS* = 1XCB_RES_QUERY_CLIENT_RESOURCES* = 2XCB_RES_QUERY_CLIENT_PIXMAP_BYTES* = 3XCB_RES_QUERY_CLIENT_IDS* = 4XCB_RES_QUERY_RESOURCE_BYTES* = 5XCB_SCREENSAVER_MAJOR_VERSION* = 1XCB_SCREENSAVER_QUERY_VERSION* = 0XCB_SCREENSAVER_QUERY_INFO* = 1XCB_SCREENSAVER_SELECT_INPUT* = 2XCB_SCREENSAVER_SET_ATTRIBUTES* = 3XCB_SCREENSAVER_UNSET_ATTRIBUTES* = 4XCB_SCREENSAVER_SUSPEND* = 5XCB_SCREENSAVER_NOTIFY* = 0XCB_SHAPE_MAJOR_VERSION* = 1XCB_SHAPE_NOTIFY* = 0XCB_SHAPE_QUERY_VERSION* = 0XCB_SHAPE_RECTANGLES* = 1XCB_SHAPE_MASK* = 2XCB_SHAPE_COMBINE* = 3XCB_SHAPE_OFFSET* = 4XCB_SHAPE_QUERY_EXTENTS* = 5XCB_SHAPE_SELECT_INPUT* = 6XCB_SHAPE_INPUT_SELECTED* = 7XCB_SHAPE_GET_RECTANGLES* = 8XCB_SHM_MAJOR_VERSION* = 1XCB_SHM_COMPLETION* = 0XCB_SHM_BAD_SEG* = 0XCB_SHM_QUERY_VERSION* = 0XCB_SHM_ATTACH* = 1XCB_SHM_DETACH* = 2XCB_SHM_PUT_IMAGE* = 3XCB_SHM_GET_IMAGE* = 4XCB_SHM_CREATE_PIXMAP* = 5XCB_SHM_ATTACH_FD* = 6XCB_SHM_CREATE_SEGMENT* = 7XCB_SYNC_MAJOR_VERSION* = 3XCB_SYNC_COUNTER* = 0XCB_SYNC_ALARM* = 1XCB_SYNC_INITIALIZE* = 0XCB_SYNC_LIST_SYSTEM_COUNTERS* = 1XCB_SYNC_CREATE_COUNTER* = 2XCB_SYNC_DESTROY_COUNTER* = 6XCB_SYNC_QUERY_COUNTER* = 5XCB_SYNC_AWAIT* = 7XCB_SYNC_CHANGE_COUNTER* = 4XCB_SYNC_SET_COUNTER* = 3XCB_SYNC_CREATE_ALARM* = 8XCB_SYNC_CHANGE_ALARM* = 9XCB_SYNC_DESTROY_ALARM* = 11XCB_SYNC_QUERY_ALARM* = 10XCB_SYNC_SET_PRIORITY* = 12XCB_SYNC_GET_PRIORITY* = 13XCB_SYNC_CREATE_FENCE* = 14XCB_SYNC_TRIGGER_FENCE* = 15XCB_SYNC_RESET_FENCE* = 16XCB_SYNC_DESTROY_FENCE* = 17XCB_SYNC_QUERY_FENCE* = 18XCB_SYNC_AWAIT_FENCE* = 19XCB_SYNC_COUNTER_NOTIFY* = 0XCB_SYNC_ALARM_NOTIFY* = 1XCB_EVENT_RESPONSE_TYPE_MASK* = (0x0000007F)# XCB_PACKED* = __attribute__((__packed__))XCB_CONN_ERROR* = 1XCB_CONN_CLOSED_EXT_NOTSUPPORTED* = 2XCB_CONN_CLOSED_MEM_INSUFFICIENT* = 3XCB_CONN_CLOSED_REQ_LEN_EXCEED* = 4XCB_CONN_CLOSED_PARSE_ERR* = 5XCB_CONN_CLOSED_INVALID_SCREEN* = 6XCB_CONN_CLOSED_FDPASSING_FAILED* = 7XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS* = 18XCB_ICCCM_NUM_WM_HINTS_ELEMENTS* = 9# XCB_ICCCM_WM_ALL_HINTS* = (XCB_ICCCM_WM_HINT_INPUT or XCB_ICCCM_WM_HINT_STATE orXCB_XCMISC_MAJOR_VERSION* = 1XCB_XC_MISC_GET_VERSION* = 0XCB_XC_MISC_GET_XID_RANGE* = 1XCB_XC_MISC_GET_XID_LIST* = 2XCB_XEVIE_MAJOR_VERSION* = 1XCB_XEVIE_QUERY_VERSION* = 0XCB_XEVIE_START* = 1XCB_XEVIE_END* = 2XCB_XEVIE_SEND* = 3XCB_XEVIE_SELECT_INPUT* = 4XCB_XF86DRI_MAJOR_VERSION* = 4XCB_XF86DRI_QUERY_VERSION* = 0XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE* = 1XCB_XF86DRI_OPEN_CONNECTION* = 2XCB_XF86DRI_CLOSE_CONNECTION* = 3XCB_XF86DRI_GET_CLIENT_DRIVER_NAME* = 4XCB_XF86DRI_CREATE_CONTEXT* = 5XCB_XF86DRI_DESTROY_CONTEXT* = 6XCB_XF86DRI_CREATE_DRAWABLE* = 7XCB_XF86DRI_DESTROY_DRAWABLE* = 8XCB_XF86DRI_GET_DRAWABLE_INFO* = 9XCB_XF86DRI_GET_DEVICE_INFO* = 10XCB_XF86DRI_AUTH_CONNECTION* = 11XCB_XFIXES_MAJOR_VERSION* = 5XCB_XFIXES_QUERY_VERSION* = 0XCB_XFIXES_CHANGE_SAVE_SET* = 1XCB_XFIXES_SELECTION_NOTIFY* = 0XCB_XFIXES_SELECT_SELECTION_INPUT* = 2XCB_XFIXES_CURSOR_NOTIFY* = 1XCB_XFIXES_SELECT_CURSOR_INPUT* = 3XCB_XFIXES_GET_CURSOR_IMAGE* = 4XCB_XFIXES_BAD_REGION* = 0XCB_XFIXES_CREATE_REGION* = 5XCB_XFIXES_CREATE_REGION_FROM_BITMAP* = 6XCB_XFIXES_CREATE_REGION_FROM_WINDOW* = 7XCB_XFIXES_CREATE_REGION_FROM_GC* = 8XCB_XFIXES_CREATE_REGION_FROM_PICTURE* = 9XCB_XFIXES_DESTROY_REGION* = 10XCB_XFIXES_SET_REGION* = 11XCB_XFIXES_COPY_REGION* = 12XCB_XFIXES_UNION_REGION* = 13XCB_XFIXES_INTERSECT_REGION* = 14XCB_XFIXES_SUBTRACT_REGION* = 15XCB_XFIXES_INVERT_REGION* = 16XCB_XFIXES_TRANSLATE_REGION* = 17XCB_XFIXES_REGION_EXTENTS* = 18XCB_XFIXES_FETCH_REGION* = 19XCB_XFIXES_SET_GC_CLIP_REGION* = 20XCB_XFIXES_SET_WINDOW_SHAPE_REGION* = 21XCB_XFIXES_SET_PICTURE_CLIP_REGION* = 22XCB_XFIXES_SET_CURSOR_NAME* = 23XCB_XFIXES_GET_CURSOR_NAME* = 24XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME* = 25XCB_XFIXES_CHANGE_CURSOR* = 26XCB_XFIXES_CHANGE_CURSOR_BY_NAME* = 27XCB_XFIXES_EXPAND_REGION* = 28XCB_XFIXES_HIDE_CURSOR* = 29XCB_XFIXES_SHOW_CURSOR* = 30XCB_XFIXES_CREATE_POINTER_BARRIER* = 31XCB_XFIXES_DELETE_POINTER_BARRIER* = 32XCB_XINERAMA_MAJOR_VERSION* = 1XCB_XINERAMA_QUERY_VERSION* = 0XCB_XINERAMA_GET_STATE* = 1XCB_XINERAMA_GET_SCREEN_COUNT* = 2XCB_XINERAMA_GET_SCREEN_SIZE* = 3XCB_XINERAMA_IS_ACTIVE* = 4XCB_XINERAMA_QUERY_SCREENS* = 5XCB_INPUT_MAJOR_VERSION* = 2XCB_INPUT_GET_EXTENSION_VERSION* = 1XCB_INPUT_LIST_INPUT_DEVICES* = 2XCB_INPUT_OPEN_DEVICE* = 3XCB_INPUT_CLOSE_DEVICE* = 4XCB_INPUT_SET_DEVICE_MODE* = 5XCB_INPUT_SELECT_EXTENSION_EVENT* = 6XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS* = 7XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST* = 8XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST* = 9XCB_INPUT_GET_DEVICE_MOTION_EVENTS* = 10XCB_INPUT_CHANGE_KEYBOARD_DEVICE* = 11XCB_INPUT_CHANGE_POINTER_DEVICE* = 12XCB_INPUT_GRAB_DEVICE* = 13XCB_INPUT_UNGRAB_DEVICE* = 14XCB_INPUT_GRAB_DEVICE_KEY* = 15XCB_INPUT_UNGRAB_DEVICE_KEY* = 16XCB_INPUT_GRAB_DEVICE_BUTTON* = 17XCB_INPUT_UNGRAB_DEVICE_BUTTON* = 18XCB_INPUT_ALLOW_DEVICE_EVENTS* = 19XCB_INPUT_GET_DEVICE_FOCUS* = 20XCB_INPUT_SET_DEVICE_FOCUS* = 21XCB_INPUT_GET_FEEDBACK_CONTROL* = 22# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_STRING = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENTXCB_INPUT_CHANGE_FEEDBACK_CONTROL* = 23XCB_INPUT_GET_DEVICE_KEY_MAPPING* = 24XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING* = 25XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING* = 26XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING* = 27XCB_INPUT_GET_DEVICE_BUTTON_MAPPING* = 28XCB_INPUT_SET_DEVICE_BUTTON_MAPPING* = 29XCB_INPUT_QUERY_DEVICE_STATE* = 30XCB_INPUT_DEVICE_BELL* = 32XCB_INPUT_SET_DEVICE_VALUATORS* = 33XCB_INPUT_GET_DEVICE_CONTROL* = 34XCB_INPUT_CHANGE_DEVICE_CONTROL* = 35XCB_INPUT_LIST_DEVICE_PROPERTIES* = 36XCB_INPUT_CHANGE_DEVICE_PROPERTY* = 37XCB_INPUT_DELETE_DEVICE_PROPERTY* = 38XCB_INPUT_GET_DEVICE_PROPERTY* = 39XCB_INPUT_XI_QUERY_POINTER* = 40XCB_INPUT_XI_WARP_POINTER* = 41XCB_INPUT_XI_CHANGE_CURSOR* = 42XCB_INPUT_XI_CHANGE_HIERARCHY* = 43XCB_INPUT_XI_SET_CLIENT_POINTER* = 44XCB_INPUT_XI_GET_CLIENT_POINTER* = 45XCB_INPUT_XI_SELECT_EVENTS* = 46XCB_INPUT_XI_QUERY_VERSION* = 47XCB_INPUT_XI_QUERY_DEVICE* = 48XCB_INPUT_XI_SET_FOCUS* = 49XCB_INPUT_XI_GET_FOCUS* = 50XCB_INPUT_XI_GRAB_DEVICE* = 51XCB_INPUT_XI_UNGRAB_DEVICE* = 52XCB_INPUT_XI_ALLOW_EVENTS* = 53XCB_INPUT_XI_PASSIVE_GRAB_DEVICE* = 54XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE* = 55XCB_INPUT_XI_LIST_PROPERTIES* = 56XCB_INPUT_XI_CHANGE_PROPERTY* = 57XCB_INPUT_XI_DELETE_PROPERTY* = 58XCB_INPUT_XI_GET_PROPERTY* = 59XCB_INPUT_XI_GET_SELECTED_EVENTS* = 60XCB_INPUT_XI_BARRIER_RELEASE_POINTER* = 61XCB_INPUT_DEVICE_VALUATOR* = 0XCB_INPUT_DEVICE_KEY_PRESS* = 1XCB_INPUT_DEVICE_KEY_RELEASE* = 2XCB_INPUT_DEVICE_BUTTON_PRESS* = 3XCB_INPUT_DEVICE_BUTTON_RELEASE* = 4XCB_INPUT_DEVICE_MOTION_NOTIFY* = 5XCB_INPUT_DEVICE_FOCUS_IN* = 6XCB_INPUT_DEVICE_FOCUS_OUT* = 7XCB_INPUT_PROXIMITY_IN* = 8XCB_INPUT_PROXIMITY_OUT* = 9XCB_INPUT_DEVICE_STATE_NOTIFY* = 10XCB_INPUT_DEVICE_MAPPING_NOTIFY* = 11XCB_INPUT_CHANGE_DEVICE_NOTIFY* = 12XCB_INPUT_DEVICE_KEY_STATE_NOTIFY* = 13XCB_INPUT_DEVICE_BUTTON_STATE_NOTIFY* = 14XCB_INPUT_DEVICE_PRESENCE_NOTIFY* = 15XCB_INPUT_DEVICE_PROPERTY_NOTIFY* = 16XCB_INPUT_DEVICE_CHANGED* = 1XCB_INPUT_KEY_PRESS* = 2XCB_INPUT_KEY_RELEASE* = 3XCB_INPUT_BUTTON_PRESS* = 4XCB_INPUT_BUTTON_RELEASE* = 5XCB_INPUT_MOTION* = 6XCB_INPUT_ENTER* = 7XCB_INPUT_LEAVE* = 8XCB_INPUT_FOCUS_IN* = 9XCB_INPUT_FOCUS_OUT* = 10XCB_INPUT_HIERARCHY* = 11XCB_INPUT_PROPERTY* = 12XCB_INPUT_RAW_KEY_PRESS* = 13XCB_INPUT_RAW_KEY_RELEASE* = 14XCB_INPUT_RAW_BUTTON_PRESS* = 15XCB_INPUT_RAW_BUTTON_RELEASE* = 16XCB_INPUT_RAW_MOTION* = 17XCB_INPUT_TOUCH_BEGIN* = 18XCB_INPUT_TOUCH_UPDATE* = 19XCB_INPUT_TOUCH_END* = 20XCB_INPUT_TOUCH_OWNERSHIP* = 21XCB_INPUT_RAW_TOUCH_BEGIN* = 22XCB_INPUT_RAW_TOUCH_UPDATE* = 23XCB_INPUT_RAW_TOUCH_END* = 24XCB_INPUT_BARRIER_HIT* = 25XCB_INPUT_BARRIER_LEAVE* = 26XCB_INPUT_SEND_EXTENSION_EVENT* = 31XCB_INPUT_DEVICE* = 0XCB_INPUT_EVENT* = 1XCB_INPUT_MODE* = 2XCB_INPUT_DEVICE_BUSY* = 3XCB_INPUT_CLASS* = 4XCB_XKB_MAJOR_VERSION* = 1XCB_XKB_MINOR_VERSION* = 0XCB_XKB_KEYBOARD* = 0# XCB_XKB_SA_GROUP_ABSOLUTE = XCB_XKB_SA_USE_MOD_MAP_MODS# XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE = XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODSXCB_XKB_USE_EXTENSION* = 0XCB_XKB_SELECT_EVENTS* = 1XCB_XKB_BELL* = 3XCB_XKB_GET_STATE* = 4XCB_XKB_LATCH_LOCK_STATE* = 5XCB_XKB_GET_CONTROLS* = 6XCB_XKB_SET_CONTROLS* = 7XCB_XKB_GET_MAP* = 8XCB_XKB_SET_MAP* = 9XCB_XKB_GET_COMPAT_MAP* = 10XCB_XKB_SET_COMPAT_MAP* = 11XCB_XKB_GET_INDICATOR_STATE* = 12XCB_XKB_GET_INDICATOR_MAP* = 13XCB_XKB_SET_INDICATOR_MAP* = 14XCB_XKB_GET_NAMED_INDICATOR* = 15XCB_XKB_SET_NAMED_INDICATOR* = 16XCB_XKB_GET_NAMES* = 17XCB_XKB_SET_NAMES* = 18XCB_XKB_PER_CLIENT_FLAGS* = 21XCB_XKB_LIST_COMPONENTS* = 22XCB_XKB_GET_KBD_BY_NAME* = 23XCB_XKB_GET_DEVICE_INFO* = 24XCB_XKB_SET_DEVICE_INFO* = 25XCB_XKB_SET_DEBUGGING_FLAGS* = 101XCB_XKB_NEW_KEYBOARD_NOTIFY* = 0XCB_XKB_MAP_NOTIFY* = 1XCB_XKB_STATE_NOTIFY* = 2XCB_XKB_CONTROLS_NOTIFY* = 3XCB_XKB_INDICATOR_STATE_NOTIFY* = 4XCB_XKB_INDICATOR_MAP_NOTIFY* = 5XCB_XKB_NAMES_NOTIFY* = 6XCB_XKB_COMPAT_MAP_NOTIFY* = 7XCB_XKB_BELL_NOTIFY* = 8XCB_XKB_ACTION_MESSAGE* = 9XCB_XKB_ACCESS_X_NOTIFY* = 10XCB_XKB_EXTENSION_DEVICE_NOTIFY* = 11XCB_XPRINT_MAJOR_VERSION* = 1XCB_X_PRINT_PRINT_QUERY_VERSION* = 0XCB_X_PRINT_PRINT_GET_PRINTER_LIST* = 1XCB_X_PRINT_PRINT_REHASH_PRINTER_LIST* = 20XCB_X_PRINT_CREATE_CONTEXT* = 2XCB_X_PRINT_PRINT_SET_CONTEXT* = 3XCB_X_PRINT_PRINT_GET_CONTEXT* = 4XCB_X_PRINT_PRINT_DESTROY_CONTEXT* = 5XCB_X_PRINT_PRINT_GET_SCREEN_OF_CONTEXT* = 6XCB_X_PRINT_PRINT_START_JOB* = 7XCB_X_PRINT_PRINT_END_JOB* = 8XCB_X_PRINT_PRINT_START_DOC* = 9XCB_X_PRINT_PRINT_END_DOC* = 10XCB_X_PRINT_PRINT_PUT_DOCUMENT_DATA* = 11XCB_X_PRINT_PRINT_GET_DOCUMENT_DATA* = 12XCB_X_PRINT_PRINT_START_PAGE* = 13XCB_X_PRINT_PRINT_END_PAGE* = 14XCB_X_PRINT_PRINT_SELECT_INPUT* = 15XCB_X_PRINT_PRINT_INPUT_SELECTED* = 16XCB_X_PRINT_PRINT_GET_ATTRIBUTES* = 17XCB_X_PRINT_PRINT_GET_ONE_ATTRIBUTES* = 19XCB_X_PRINT_PRINT_SET_ATTRIBUTES* = 18XCB_X_PRINT_PRINT_GET_PAGE_DIMENSIONS* = 21XCB_X_PRINT_PRINT_QUERY_SCREENS* = 22XCB_X_PRINT_PRINT_SET_IMAGE_RESOLUTION* = 23XCB_X_PRINT_PRINT_GET_IMAGE_RESOLUTION* = 24XCB_X_PRINT_NOTIFY* = 0XCB_X_PRINT_ATTRIBUT_NOTIFY* = 1XCB_X_PRINT_BAD_CONTEXT* = 0XCB_X_PRINT_BAD_SEQUENCE* = 1XCB_KEY_PRESS* = 2XCB_ENTER_NOTIFY* = 7XCB_LEAVE_NOTIFY* = 8XCB_FOCUS_IN* = 9XCB_FOCUS_OUT* = 10XCB_KEYMAP_NOTIFY* = 11XCB_EXPOSE* = 12XCB_GRAPHICS_EXPOSURE* = 13XCB_NO_EXPOSURE* = 14XCB_VISIBILITY_NOTIFY* = 15XCB_CREATE_NOTIFY* = 16XCB_UNMAP_NOTIFY* = 18XCB_MAP_NOTIFY* = 19XCB_MAP_REQUEST* = 20XCB_REPARENT_NOTIFY* = 21# XCB_CONFIGURE_NOTIFY* = 22XCB_CONFIGURE_REQUEST* = 23XCB_GRAVITY_NOTIFY* = 24# XCB_RESIZE_REQUEST* = 25XCB_CIRCULATE_NOTIFY* = 26XCB_CIRCULATE_REQUEST* = 27XCB_PROPERTY_NOTIFY* = 28XCB_SELECTION_CLEAR* = 29XCB_SELECTION_REQUEST* = 30XCB_SELECTION_NOTIFY* = 31XCB_COLORMAP_NOTIFY* = 32XCB_CLIENT_MESSAGE* = 33XCB_MAPPING_NOTIFY* = 34XCB_GE_GENERIC* = 35XCB_REQUEST* = 1XCB_VALUE* = 2XCB_WINDOW* = 3XCB_PIXMAP* = 4XCB_ATOM* = 5XCB_CURSOR* = 6XCB_FONT* = 7XCB_MATCH* = 8XCB_DRAWABLE* = 9XCB_ACCESS* = 10XCB_ALLOC* = 11XCB_COLORMAP* = 12XCB_G_CONTEXT* = 13XCB_ID_CHOICE* = 14XCB_NAME* = 15XCB_LENGTH* = 16XCB_IMPLEMENTATION* = 17# XCB_GRAVITY_WIN_UNMAP = XCB_GRAVITY_BIT_FORGETXCB_CREATE_WINDOW* = 1XCB_CHANGE_WINDOW_ATTRIBUTES* = 2XCB_GET_WINDOW_ATTRIBUTES* = 3XCB_DESTROY_WINDOW* = 4XCB_DESTROY_SUBWINDOWS* = 5XCB_CHANGE_SAVE_SET* = 6XCB_REPARENT_WINDOW* = 7XCB_MAP_WINDOW* = 8XCB_MAP_SUBWINDOWS* = 9XCB_UNMAP_WINDOW* = 10XCB_UNMAP_SUBWINDOWS* = 11XCB_CONFIGURE_WINDOW* = 12XCB_CIRCULATE_WINDOW* = 13XCB_GET_GEOMETRY* = 14XCB_QUERY_TREE* = 15XCB_INTERN_ATOM* = 16XCB_GET_ATOM_NAME* = 17XCB_CHANGE_PROPERTY* = 18XCB_DELETE_PROPERTY* = 19XCB_GET_PROPERTY* = 20XCB_LIST_PROPERTIES* = 21XCB_SET_SELECTION_OWNER* = 22XCB_GET_SELECTION_OWNER* = 23XCB_CONVERT_SELECTION* = 24XCB_SEND_EVENT* = 25XCB_GRAB_POINTER* = 26XCB_UNGRAB_POINTER* = 27XCB_GRAB_BUTTON* = 28XCB_UNGRAB_BUTTON* = 29XCB_CHANGE_ACTIVE_POINTER_GRAB* = 30XCB_GRAB_KEYBOARD* = 31XCB_UNGRAB_KEYBOARD* = 32XCB_GRAB_KEY* = 33XCB_UNGRAB_KEY* = 34XCB_ALLOW_EVENTS* = 35XCB_GRAB_SERVER* = 36XCB_UNGRAB_SERVER* = 37XCB_QUERY_POINTER* = 38XCB_GET_MOTION_EVENTS* = 39XCB_TRANSLATE_COORDINATES* = 40XCB_WARP_POINTER* = 41XCB_SET_INPUT_FOCUS* = 42XCB_GET_INPUT_FOCUS* = 43XCB_QUERY_KEYMAP* = 44XCB_OPEN_FONT* = 45XCB_CLOSE_FONT* = 46XCB_QUERY_FONT* = 47XCB_QUERY_TEXT_EXTENTS* = 48XCB_LIST_FONTS* = 49XCB_LIST_FONTS_WITH_INFO* = 50XCB_SET_FONT_PATH* = 51XCB_GET_FONT_PATH* = 52XCB_CREATE_PIXMAP* = 53XCB_FREE_PIXMAP* = 54XCB_CREATE_GC* = 55XCB_CHANGE_GC* = 56XCB_COPY_GC* = 57XCB_SET_DASHES* = 58XCB_SET_CLIP_RECTANGLES* = 59XCB_FREE_GC* = 60XCB_CLEAR_AREA* = 61XCB_COPY_AREA* = 62XCB_COPY_PLANE* = 63XCB_POLY_POINT* = 64XCB_POLY_LINE* = 65XCB_POLY_SEGMENT* = 66XCB_POLY_RECTANGLE* = 67XCB_POLY_ARC* = 68XCB_FILL_POLY* = 69XCB_POLY_FILL_RECTANGLE* = 70XCB_POLY_FILL_ARC* = 71XCB_PUT_IMAGE* = 72XCB_GET_IMAGE* = 73XCB_POLY_TEXT_8* = 74XCB_POLY_TEXT_16* = 75XCB_IMAGE_TEXT_8* = 76XCB_IMAGE_TEXT_16* = 77XCB_CREATE_COLORMAP* = 78XCB_FREE_COLORMAP* = 79XCB_COPY_COLORMAP_AND_FREE* = 80XCB_INSTALL_COLORMAP* = 81XCB_UNINSTALL_COLORMAP* = 82XCB_LIST_INSTALLED_COLORMAPS* = 83XCB_ALLOC_COLOR* = 84XCB_ALLOC_NAMED_COLOR* = 85XCB_ALLOC_COLOR_CELLS* = 86XCB_ALLOC_COLOR_PLANES* = 87XCB_FREE_COLORS* = 88XCB_STORE_COLORS* = 89XCB_STORE_NAMED_COLOR* = 90XCB_QUERY_COLORS* = 91XCB_LOOKUP_COLOR* = 92XCB_CREATE_CURSOR* = 93XCB_CREATE_GLYPH_CURSOR* = 94XCB_FREE_CURSOR* = 95XCB_RECOLOR_CURSOR* = 96XCB_QUERY_BEST_SIZE* = 97XCB_QUERY_EXTENSION* = 98XCB_LIST_EXTENSIONS* = 99XCB_CHANGE_KEYBOARD_MAPPING* = 100XCB_GET_KEYBOARD_MAPPING* = 101XCB_CHANGE_KEYBOARD_CONTROL* = 102XCB_GET_KEYBOARD_CONTROL* = 103XCB_BELL* = 104XCB_CHANGE_POINTER_CONTROL* = 105XCB_GET_POINTER_CONTROL* = 106XCB_SET_SCREEN_SAVER* = 107XCB_GET_SCREEN_SAVER* = 108XCB_CHANGE_HOSTS* = 109XCB_LIST_HOSTS* = 110XCB_SET_ACCESS_CONTROL* = 111XCB_SET_CLOSE_DOWN_MODE* = 112XCB_KILL_CLIENT* = 113XCB_ROTATE_PROPERTIES* = 114XCB_FORCE_SCREEN_SAVER* = 115XCB_SET_POINTER_MAPPING* = 116XCB_GET_POINTER_MAPPING* = 117XCB_SET_MODIFIER_MAPPING* = 118XCB_GET_MODIFIER_MAPPING* = 119XCB_NO_OPERATION* = 127XCB_SELINUX_MAJOR_VERSION* = 1XCB_SELINUX_QUERY_VERSION* = 0XCB_SELINUX_SET_DEVICE_CREATE_CONTEXT* = 1XCB_SELINUX_GET_DEVICE_CREATE_CONTEXT* = 2XCB_SELINUX_SET_DEVICE_CONTEXT* = 3XCB_SELINUX_GET_DEVICE_CONTEXT* = 4XCB_SELINUX_SET_WINDOW_CREATE_CONTEXT* = 5XCB_SELINUX_GET_WINDOW_CREATE_CONTEXT* = 6XCB_SELINUX_GET_WINDOW_CONTEXT* = 7XCB_SELINUX_SET_PROPERTY_CREATE_CONTEXT* = 8XCB_SELINUX_GET_PROPERTY_CREATE_CONTEXT* = 9XCB_SELINUX_SET_PROPERTY_USE_CONTEXT* = 10XCB_SELINUX_GET_PROPERTY_USE_CONTEXT* = 11XCB_SELINUX_GET_PROPERTY_CONTEXT* = 12XCB_SELINUX_GET_PROPERTY_DATA_CONTEXT* = 13XCB_SELINUX_LIST_PROPERTIES* = 14XCB_SELINUX_SET_SELECTION_CREATE_CONTEXT* = 15XCB_SELINUX_GET_SELECTION_CREATE_CONTEXT* = 16XCB_SELINUX_SET_SELECTION_USE_CONTEXT* = 17XCB_SELINUX_GET_SELECTION_USE_CONTEXT* = 18XCB_SELINUX_GET_SELECTION_CONTEXT* = 19XCB_SELINUX_GET_SELECTION_DATA_CONTEXT* = 20XCB_SELINUX_LIST_SELECTIONS* = 21XCB_SELINUX_GET_CLIENT_CONTEXT* = 22XCB_TEST_MAJOR_VERSION* = 2XCB_TEST_GET_VERSION* = 0XCB_TEST_COMPARE_CURSOR* = 1XCB_TEST_FAKE_INPUT* = 2XCB_TEST_GRAB_CONTROL* = 3XCB_XV_MAJOR_VERSION* = 2XCB_XV_BAD_PORT* = 0XCB_XV_BAD_ENCODING* = 1XCB_XV_BAD_CONTROL* = 2XCB_XV_VIDEO_NOTIFY* = 0XCB_XV_PORT_NOTIFY* = 1XCB_XV_QUERY_EXTENSION* = 0XCB_XV_QUERY_ADAPTORS* = 1XCB_XV_QUERY_ENCODINGS* = 2XCB_XV_GRAB_PORT* = 3XCB_XV_UNGRAB_PORT* = 4XCB_XV_PUT_VIDEO* = 5XCB_XV_PUT_STILL* = 6XCB_XV_GET_VIDEO* = 7XCB_XV_GET_STILL* = 8XCB_XV_STOP_VIDEO* = 9XCB_XV_SELECT_VIDEO_NOTIFY* = 10XCB_XV_SELECT_PORT_NOTIFY* = 11XCB_XV_QUERY_BEST_SIZE* = 12XCB_XV_SET_PORT_ATTRIBUTE* = 13XCB_XV_GET_PORT_ATTRIBUTE* = 14XCB_XV_QUERY_PORT_ATTRIBUTES* = 15XCB_XV_LIST_IMAGE_FORMATS* = 16XCB_XV_QUERY_IMAGE_ATTRIBUTES* = 17XCB_XV_PUT_IMAGE* = 18XCB_XV_SHM_PUT_IMAGE* = 19XCB_XVMC_MAJOR_VERSION* = 1XCB_XVMC_QUERY_VERSION* = 0XCB_XVMC_LIST_SURFACE_TYPES* = 1XCB_XVMC_CREATE_CONTEXT* = 2XCB_XVMC_DESTROY_CONTEXT* = 3XCB_XVMC_CREATE_SURFACE* = 4XCB_XVMC_DESTROY_SURFACE* = 5XCB_XVMC_CREATE_SUBPICTURE* = 6XCB_XVMC_DESTROY_SUBPICTURE* = 7XCB_XVMC_LIST_SUBPICTURE_TYPES* = 8typexcb_keycode_t* = uint8xcb_timestamp_t* = uint32xcb_window_t* = uint32xcb_button_t* = uint8xcb_motion_notify_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16time*: xcb_timestamp_troot*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16event_x*: int16event_y*: int16state*: uint16same_screen*: uint8pad0*: uint8xcb_button_index_t* = enumXCB_BUTTON_INDEX_ANY = 0, ## *< Any of the following (or none):XCB_BUTTON_INDEX_1 = 1, ## *< The left mouse button.XCB_BUTTON_INDEX_2 = 2, ## *< The right mouse button.XCB_BUTTON_INDEX_3 = 3, ## *< The middle mouse button.XCB_BUTTON_INDEX_4 = 4, ## *< Scroll wheel. TODO: direction?XCB_BUTTON_INDEX_5 = 5XCB_BUTTON_INDEX_6XCB_BUTTON_INDEX_7XCB_BUTTON_INDEX_8XCB_BUTTON_INDEX_9XCB_BUTTON_INDEX_10XCB_BUTTON_INDEX_11XCB_BUTTON_INDEX_12XCB_BUTTON_INDEX_13XCB_BUTTON_INDEX_14XCB_BUTTON_INDEX_15XCB_BUTTON_INDEX_16XCB_BUTTON_INDEX_17XCB_BUTTON_INDEX_18XCB_BUTTON_INDEX_19XCB_BUTTON_INDEX_20xcb_notify_detail_t* = enumXCB_NOTIFY_DETAIL_ANCESTOR = 0, XCB_NOTIFY_DETAIL_VIRTUAL = 1,XCB_NOTIFY_DETAIL_INFERIOR = 2, XCB_NOTIFY_DETAIL_NONLINEAR = 3,XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4, XCB_NOTIFY_DETAIL_POINTER = 5,XCB_NOTIFY_DETAIL_POINTER_ROOT = 6, XCB_NOTIFY_DETAIL_NONE = 7# typedef struct xcb_xrm_database_t xcb_xrm_database_t;xcb_xrm_database_t* {.bycopy.} = object # correct?xcb_client_message_data_t* {.bycopy, union.} = objectdata8*: array[20, uint8]data16*: array[10, uint16]data32*: array[5, uint32]xcb_client_message_event_t* {.bycopy.} = objectresponse_type*: uint8format*: uint8sequence*: uint16window*: xcb_window_tty*: xcb_atom_tdata*: xcb_client_message_data_tMotifHints* {.bycopy.} = objectflags*: uint32functions*: uint32decorations*: uint32input_mode*: int32status*: uint32xcb_mapping_t* = enumXCB_MAPPING_MODIFIER = 0, XCB_MAPPING_KEYBOARD = 1, XCB_MAPPING_POINTER = 2xcb_notify_mode_t* = enumXCB_NOTIFY_MODE_NORMAL = 0, XCB_NOTIFY_MODE_GRAB = 1, XCB_NOTIFY_MODE_UNGRAB = 2,XCB_NOTIFY_MODE_WHILE_GRABBED = 3xcb_configure_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_tabove_sibling*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16border_width*: uint16override_redirect*: uint8pad1*: uint8xcb_setup_t* {.bycopy.} = objectstatus*: uint8pad0*: uint8protocol_major_version*: uint16protocol_minor_version*: uint16length*: uint16release_number*: uint32resource_id_base*: uint32resource_id_mask*: uint32motion_buffer_size*: uint32vendor_len*: uint16maximum_request_length*: uint16roots_len*: uint8pixmap_formats_len*: uint8image_byte_order*: uint8bitmap_format_bit_order*: uint8bitmap_format_scanline_unit*: uint8bitmap_format_scanline_pad*: uint8min_keycode*: xcb_keycode_tmax_keycode*: xcb_keycode_tpad1*: array[4, uint8]# xcb_void_cookie_t* = object# sequence*: cuint ## *< Sequence numberxcb_connection_t* = objectxcb_colormap_t* = uint32xcb_atom_t* = uint32#TODO: better name for the port of the C version:#[union xkb_event{struct{uint8_t response_type;uint8_t xkbType;uint16_t sequence;xcb_timestamp_t time;uint8_t deviceID;} any;xcb_xkb_new_keyboard_notify_event_t new_keyboard_notify;xcb_xkb_map_notify_event_t map_notify;xcb_xkb_state_notify_event_t state_notify;} *event = (union xkb_event *) gevent;]#AnyStruct* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8xkb_event* {.bycopy, union.} = objectanyy*: AnyStructnew_keyboard_notify*: xcb_xkb_new_keyboard_notify_event_tmap_notify*: xcb_xkb_map_notify_event_tstate_notify*: xcb_xkb_state_notify_event_txcb_generic_event_t* {.bycopy.} = objectresponse_type*: uint8 ## *< of the responsepad0*: uint8 ## *< Paddingsequence*: uint16 ## *< Sequence numberpad*: array[7, uint32] ## *< Paddingfull_sequence*: uint32 ## *< full sequencexcb_generic_iterator_t* {.bycopy.} = objectdata*: pointer ## *< Data of the current iteratorrem*: cint ## *< remaining elementsindex*: cint ## *< index of the current iteratorxcb_intern_atom_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32atom*: xcb_atom_txcb_intern_atom_cookie_t* {.bycopy.} = objectsequence*: cuintxcb_screen_t* {.bycopy.} = objectroot*: xcb_window_tdefault_colormap*: xcb_colormap_twhite_pixel*: uint32black_pixel*: uint32current_input_masks*: uint32width_in_pixels*: uint16height_in_pixels*: uint16width_in_millimeters*: uint16height_in_millimeters*: uint16min_installed_maps*: uint16max_installed_maps*: uint16root_visual*: xcb_visualid_tbacking_stores*: uint8save_unders*: uint8root_depth*: uint8allowed_depths_len*: uint8xcb_visualid_t* = uint32xcb_screen_iterator_t* {.bycopy.} = objectdata*: ptr xcb_screen_trem*: cintindex*: cintxcb_generic_error_t* {.bycopy.} = objectresponse_type*: uint8 ## *< of the responseerror_code*: uint8 ## *< Error codesequence*: uint16 ## *< Sequence numberresource_id*: uint32 ## * < Resource ID for requests with side effects onlyminor_code*: uint16 ## * < Minor opcode of the failed requestmajor_code*: uint8 ## * < Major opcode of the failed requestpad0*: uint8pad*: array[5, uint32] ## *< Paddingfull_sequence*: uint32 ## *< full sequencexcb_button_press_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: xcb_button_tsequence*: uint16time*: xcb_timestamp_troot*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16event_x*: int16event_y*: int16state*: uint16same_screen*: uint8pad0*: uint8xcb_button_release_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: xcb_button_tsequence*: uint16time*: xcb_timestamp_troot*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16event_x*: int16event_y*: int16state*: uint16same_screen*: uint8pad0*: uint8xcb_key_press_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: xcb_keycode_tsequence*: uint16time*: xcb_timestamp_troot*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16event_x*: int16event_y*: int16state*: uint16same_screen*: uint8pad0*: uint8xcb_key_release_event_t* = xcb_key_press_event_txcb_button_mask_t* = enumXCB_BUTTON_MASK_1 = 256, XCB_BUTTON_MASK_2 = 512, XCB_BUTTON_MASK_3 = 1024,XCB_BUTTON_MASK_4 = 2048, XCB_BUTTON_MASK_5 = 4096, XCB_BUTTON_MASK_ANY = 32768xcb_window_class_t* {.pure, size: sizeof(cint).} = enumXCB_WINDOW_CLASS_COPY_FROM_PARENT = 0,XCB_WINDOW_CLASS_INPUT_OUTPUT = 1,XCB_WINDOW_CLASS_INPUT_ONLY = 2xcb_prop_mode_t* {.pure, size: sizeof(cint).} = enumXCB_PROP_MODE_REPLACE = 0, ## *< Discard the previous property value and store the new data.XCB_PROP_MODE_PREPEND = 1, ## *< Insert the new data before the beginning of existing data. The `format` must## match existing property value. If the property is undefined, it is treated as## defined with the correct and format with zero-length data.XCB_PROP_MODE_APPEND = 2xcb_cw_t* {.pure, size: sizeof(cint).} = enumXCB_CW_BACK_PIXMAP = 1, ## *< Overrides the default background-pixmap. The background pixmap and window must## have the same root and same depth. Any size pixmap can be used, although some## sizes may be faster than others.#### If `XCB_BACK_PIXMAP_NONE` is specified, the window has no defined background.## The server may fill the contents with the previous screen contents or with## contents of its own choosing.#### If `XCB_BACK_PIXMAP_PARENT_RELATIVE` is specified, the parent's background is## used, but the window must have the same depth as the parent (or a Match error## results). The parent's background is tracked, and the current version is## used each time the window background is required.XCB_CW_BACK_PIXEL = 2, ## *< Overrides `BackPixmap`. A pixmap of undefined size filled with the specified## background pixel is used for the background. Range-checking is not performed,## the background pixel is truncated to the appropriate number of bits.XCB_CW_BORDER_PIXMAP = 4, ## *< Overrides the default border-pixmap. The border pixmap and window must have the## same root and the same depth. Any size pixmap can be used, although some sizes## may be faster than others.#### The special value `XCB_COPY_FROM_PARENT` means the parent's border pixmap is## copied (subsequent changes to the parent's border attribute do not affect the## child), but the window must have the same depth as the parent.XCB_CW_BORDER_PIXEL = 8, ## *< Overrides `BorderPixmap`. A pixmap of undefined size filled with the specified## border pixel is used for the border. Range checking is not performed on the## border-pixel value, it is truncated to the appropriate number of bits.XCB_CW_BIT_GRAVITY = 16, ## *< Defines which region of the window should be retained if the window is resized.XCB_CW_WIN_GRAVITY = 32, ## *< Defines how the window should be repositioned if the parent is resized (see## `ConfigureWindow`).XCB_CW_BACKING_STORE = 64, ## *< A backing-store of `WhenMapped` advises the server that maintaining contents of## obscured regions when the window is mapped would be beneficial. A backing-store## of `Always` advises the server that maintaining contents even when the window## is unmapped would be beneficial. In this case, the server may generate an## exposure event when the window is created. A value of `NotUseful` advises the## server that maintaining contents is unnecessary, although a server may still## choose to maintain contents while the window is mapped. Note that if the server## maintains contents, then the server should maintain complete contents not just## the region within the parent boundaries, even if the window is larger than its## parent. While the server maintains contents, exposure events will not normally## be generated, but the server may stop maintaining contents at any time.XCB_CW_BACKING_PLANES = 128, ## *< The backing-planes indicates (with bits set to 1) which bit planes of the## window hold dynamic data that must be preserved in backing-stores and during## save-unders.XCB_CW_BACKING_PIXEL = 256, ## *< The backing-pixel specifies what value to use in planes not covered by## backing-planes. The server is free to save only the specified bit planes in the## backing-store or save-under and regenerate the remaining planes with the## specified pixel value. Any bits beyond the specified depth of the window in## these values are simply ignored.XCB_CW_OVERRIDE_REDIRECT = 512, ## *< The override-redirect specifies whether map and configure requests on this## window should override a SubstructureRedirect on the parent, typically to## inform a window manager not to tamper with the window.XCB_CW_SAVE_UNDER = 1024, ## *< If 1, the server is advised that when this window is mapped, saving the## contents of windows it obscures would be beneficial.XCB_CW_EVENT_MASK = 2048, ## *< The event-mask defines which events the client is interested in for this window## (or for some event types, inferiors of the window).XCB_CW_DONT_PROPAGATE = 4096, ## *< The do-not-propagate-mask defines which events should not be propagated to## ancestor windows when no client has the event selected in this window.XCB_CW_COLORMAP = 8192, ## *< The colormap specifies the colormap that best reflects the true colors of the window. Servers## capable of supporting multiple hardware colormaps may use this information, and window man-## agers may use it for InstallColormap requests. The colormap must have the same visual## and root as the window (or a Match error results). If CopyFromParent is specified, the parent's## colormap is copied (subsequent changes to the parent's colormap attribute do not affect the child).## However, the window must have the same visual as the parent (or a Match error results),## and the parent must not have a colormap of None (or a Match error results). For an explanation## of None, see FreeColormap request. The colormap is copied by sharing the colormap object## between the child and the parent, not by making a complete copy of the colormap contents.XCB_CW_CURSOR = 16384xcb_back_pixmap_t* {.pure, size: sizeof(cint).}= enumXCB_BACK_PIXMAP_NONE = 0, XCB_BACK_PIXMAP_PARENT_RELATIVE = 1xcb_gravity_t*{.pure, size: sizeof(cint).} = enumXCB_GRAVITY_BIT_FORGET = 0, XCB_GRAVITY_NORTH_WEST = 1, XCB_GRAVITY_NORTH = 2,XCB_GRAVITY_NORTH_EAST = 3, XCB_GRAVITY_WEST = 4, XCB_GRAVITY_CENTER = 5,XCB_GRAVITY_EAST = 6, XCB_GRAVITY_SOUTH_WEST = 7, XCB_GRAVITY_SOUTH = 8,XCB_GRAVITY_SOUTH_EAST = 9, XCB_GRAVITY_STATIC = 10xcb_event_mask_t*{.pure, size: sizeof(cint).} = enumXCB_EVENT_MASK_NO_EVENT = 0,XCB_EVENT_MASK_KEY_PRESS = 1,XCB_EVENT_MASK_KEY_RELEASE = 2,XCB_EVENT_MASK_BUTTON_PRESS = 4,XCB_EVENT_MASK_BUTTON_RELEASE = 8,XCB_EVENT_MASK_ENTER_WINDOW = 16,XCB_EVENT_MASK_LEAVE_WINDOW = 32,XCB_EVENT_MASK_POINTER_MOTION = 64,XCB_EVENT_MASK_POINTER_MOTION_HINT = 128,XCB_EVENT_MASK_BUTTON_1_MOTION = 256,XCB_EVENT_MASK_BUTTON_2_MOTION = 512,XCB_EVENT_MASK_BUTTON_3_MOTION = 1024,XCB_EVENT_MASK_BUTTON_4_MOTION = 2048,XCB_EVENT_MASK_BUTTON_5_MOTION = 4096,XCB_EVENT_MASK_BUTTON_MOTION = 8192,XCB_EVENT_MASK_KEYMAP_STATE = 16384,XCB_EVENT_MASK_EXPOSURE = 32768,XCB_EVENT_MASK_VISIBILITY_CHANGE = 65536,XCB_EVENT_MASK_STRUCTURE_NOTIFY = 131072,XCB_EVENT_MASK_RESIZE_REDIRECT = 262144,XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY = 524288,XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT = 1048576,XCB_EVENT_MASK_FOCUS_CHANGE = 2097152,XCB_EVENT_MASK_PROPERTY_CHANGE = 4194304,XCB_EVENT_MASK_COLOR_MAP_CHANGE = 8388608,XCB_EVENT_MASK_OWNER_GRAB_BUTTON = 16777216xcb_backing_store_t*{.pure, size: sizeof(cint).} = enumXCB_BACKING_STORE_NOT_USEFUL = 0, XCB_BACKING_STORE_WHEN_MAPPED = 1,XCB_BACKING_STORE_ALWAYS = 2xcb_atom_enum_t* = enumXCB_ATOM_NONE = 0XCB_ATOM_PRIMARY = 1XCB_ATOM_SECONDARY = 2XCB_ATOM_ARC = 3XCB_ATOM_ATOM = 4XCB_ATOM_BITMAP = 5XCB_ATOM_CARDINAL = 6XCB_ATOM_COLORMAP = 7XCB_ATOM_CURSOR = 8XCB_ATOM_CUT_BUFFER0 = 9CB_ATOM_CUT_BUFFER1 = 10XCB_ATOM_CUT_BUFFER2 = 11XCB_ATOM_CUT_BUFFER3 = 12XCB_ATOM_CUT_BUFFER4 = 13XCB_ATOM_CUT_BUFFER5 = 14XCB_ATOM_CUT_BUFFER6 = 15XCB_ATOM_CUT_BUFFER7 = 16XCB_ATOM_DRAWABLE = 17XCB_ATOM_FONT = 18XCB_ATOM_INTEGER = 19XCB_ATOM_PIXMAP = 20XCB_ATOM_POINT = 21XCB_ATOM_RECTANGLE = 22XCB_ATOM_RESOURCE_MANAGER = 23XCB_ATOM_RGB_COLOR_MAP = 24XCB_ATOM_RGB_BEST_MAP = 25XCB_ATOM_RGB_BLUE_MAP = 26XCB_ATOM_RGB_DEFAULT_MAP = 27XCB_ATOM_RGB_GRAY_MAP = 28XCB_ATOM_RGB_GREEN_MAP = 29XCB_ATOM_RGB_RED_MAP = 30XCB_ATOM_STRING = 31XCB_ATOM_VISUALID = 32XCB_ATOM_WINDOW = 33XCB_ATOM_WM_COMMAND = 34XCB_ATOM_WM_HINTS = 35XCB_ATOM_WM_CLIENT_MACHINE = 36XCB_ATOM_WM_ICON_NAME = 37XCB_ATOM_WM_ICON_SIZE = 38XCB_ATOM_WM_NAME = 39XCB_ATOM_WM_NORMAL_HINTS = 40XCB_ATOM_WM_SIZE_HINTS = 41XCB_ATOM_WM_ZOOM_HINTS = 42XCB_ATOM_MIN_SPACE = 43XCB_ATOM_NORM_SPACE = 44XCB_ATOM_MAX_SPACE = 45XCB_ATOM_END_SPACE = 46XCB_ATOM_SUPERSCRIPT_X = 47XCB_ATOM_SUPERSCRIPT_Y = 48XCB_ATOM_SUBSCRIPT_X = 49XCB_ATOM_SUBSCRIPT_Y = 50XCB_ATOM_UNDERLINE_POSITION = 51XCB_ATOM_UNDERLINE_THICKNESS = 52XCB_ATOM_STRIKEOUT_ASCENT = 53XCB_ATOM_STRIKEOUT_DESCENT = 54XCB_ATOM_ITALIC_ANGLE = 55XCB_ATOM_X_HEIGHT = 56XCB_ATOM_QUAD_WIDTH = 57XCB_ATOM_WEIGHT = 58XCB_ATOM_POINT_SIZE = 59XCB_ATOM_RESOLUTION = 60XCB_ATOM_COPYRIGHT = 61XCB_ATOM_NOTICE = 62XCB_ATOM_FONT_NAME = 63XCB_ATOM_FAMILY_NAME = 64XCB_ATOM_FULL_NAME = 65XCB_ATOM_CAP_HEIGHT = 66XCB_ATOM_WM_CLASS = 67XCB_ATOM_WM_TRANSIENT_FOR = 68xcb_extension_t* {.bycopy.} = objectname*: cstringglobal_id*: cintxcb_big_requests_enable_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_big_requests_enable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_big_requests_enable_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32maximum_request_length*: uint32xcb_composite_redirect_t* = enumXCB_COMPOSITE_REDIRECT_AUTOMATIC = 0, XCB_COMPOSITE_REDIRECT_MANUAL = 1xcb_composite_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_composite_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint32client_minor_version*: uint32xcb_composite_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32pad1*: array[16, uint8]xcb_composite_redirect_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tupdate*: uint8pad0*: array[3, uint8]xcb_composite_redirect_subwindows_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tupdate*: uint8pad0*: array[3, uint8]xcb_composite_unredirect_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tupdate*: uint8pad0*: array[3, uint8]xcb_composite_unredirect_subwindows_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tupdate*: uint8pad0*: array[3, uint8]xcb_composite_create_region_from_border_clip_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_twindow*: xcb_window_txcb_composite_name_window_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tpixmap*: xcb_pixmap_txcb_composite_get_overlay_window_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_composite_get_overlay_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_composite_get_overlay_window_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32overlay_win*: xcb_window_tpad1*: array[20, uint8]xcb_composite_release_overlay_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_damage_damage_t* = uint32xcb_damage_damage_iterator_t* {.bycopy.} = objectdata*: ptr xcb_damage_damage_trem*: cintindex*: cintxcb_damage_report_level_t* = enumXCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES = 0,XCB_DAMAGE_REPORT_LEVEL_DELTA_RECTANGLES = 1,XCB_DAMAGE_REPORT_LEVEL_BOUNDING_BOX = 2, XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY = 3xcb_damage_bad_damage_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_damage_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_damage_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint32client_minor_version*: uint32xcb_damage_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32pad1*: array[16, uint8]xcb_damage_create_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16damage*: xcb_damage_damage_tdrawable*: xcb_drawable_tlevel*: uint8pad0*: array[3, uint8]xcb_damage_destroy_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16damage*: xcb_damage_damage_txcb_damage_subtract_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16damage*: xcb_damage_damage_trepair*: xcb_xfixes_region_tparts*: xcb_xfixes_region_txcb_damage_add_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tregion*: xcb_xfixes_region_txcb_damage_notify_event_t* {.bycopy.} = objectresponse_type*: uint8level*: uint8sequence*: uint16drawable*: xcb_drawable_tdamage*: xcb_damage_damage_ttimestamp*: xcb_timestamp_tarea*: xcb_rectangle_tgeometry*: xcb_rectangle_txcb_dpms_get_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dpms_get_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint16client_minor_version*: uint16xcb_dpms_get_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32server_major_version*: uint16server_minor_version*: uint16xcb_dpms_capable_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dpms_capable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_dpms_capable_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32capable*: uint8pad1*: array[23, uint8]xcb_dpms_get_timeouts_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dpms_get_timeouts_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_dpms_get_timeouts_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32standby_timeout*: uint16suspend_timeout*: uint16off_timeout*: uint16pad1*: array[18, uint8]xcb_dpms_set_timeouts_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16standby_timeout*: uint16suspend_timeout*: uint16off_timeout*: uint16xcb_dpms_enable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_dpms_disable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_dpms_dpms_mode_t* = enumXCB_DPMS_DPMS_MODE_ON = 0, XCB_DPMS_DPMS_MODE_STANDBY = 1,XCB_DPMS_DPMS_MODE_SUSPEND = 2, XCB_DPMS_DPMS_MODE_OFF = 3xcb_dpms_force_level_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16power_level*: uint16xcb_dpms_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dpms_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_dpms_info_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32power_level*: uint16state*: uint8pad1*: array[21, uint8]xcb_dri2_attachment_t* = enumXCB_DRI2_ATTACHMENT_BUFFER_FRONT_LEFT = 0,XCB_DRI2_ATTACHMENT_BUFFER_BACK_LEFT = 1,XCB_DRI2_ATTACHMENT_BUFFER_FRONT_RIGHT = 2,XCB_DRI2_ATTACHMENT_BUFFER_BACK_RIGHT = 3,XCB_DRI2_ATTACHMENT_BUFFER_DEPTH = 4, XCB_DRI2_ATTACHMENT_BUFFER_STENCIL = 5,XCB_DRI2_ATTACHMENT_BUFFER_ACCUM = 6,XCB_DRI2_ATTACHMENT_BUFFER_FAKE_FRONT_LEFT = 7,XCB_DRI2_ATTACHMENT_BUFFER_FAKE_FRONT_RIGHT = 8,XCB_DRI2_ATTACHMENT_BUFFER_DEPTH_STENCIL = 9,XCB_DRI2_ATTACHMENT_BUFFER_HIZ = 10xcb_dri2_driver_type_t* = enumXCB_DRI2_DRIVER_TYPE_DRI = 0, XCB_DRI2_DRIVER_TYPE_VDPAU = 1xcb_dri2_event_type_t* = enumXCB_DRI2_EVENT_TYPE_EXCHANGE_COMPLETE = 1,XCB_DRI2_EVENT_TYPE_BLIT_COMPLETE = 2, XCB_DRI2_EVENT_TYPE_FLIP_COMPLETE = 3xcb_dri2_dri2_buffer_t* {.bycopy.} = objectattachment*: uint32name*: uint32pitch*: uint32cpp*: uint32flags*: uint32xcb_dri2_dri2_buffer_iterator_t* {.bycopy.} = objectdata*: ptr xcb_dri2_dri2_buffer_trem*: cintindex*: cintxcb_dri2_attach_format_t* {.bycopy.} = objectattachment*: uint32format*: uint32xcb_dri2_attach_format_iterator_t* {.bycopy.} = objectdata*: ptr xcb_dri2_attach_format_trem*: cintindex*: cintxcb_dri2_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint32minor_version*: uint32xcb_dri2_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32xcb_dri2_connect_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_connect_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tdriver_type*: uint32xcb_dri2_connect_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32driver_name_length*: uint32device_name_length*: uint32pad1*: array[16, uint8]xcb_dri2_authenticate_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_authenticate_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tmagic*: uint32xcb_dri2_authenticate_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32authenticated*: uint32xcb_dri2_create_drawable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_txcb_dri2_destroy_drawable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_txcb_dri2_get_buffers_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_get_buffers_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tcount*: uint32xcb_dri2_get_buffers_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width*: uint32height*: uint32count*: uint32pad1*: array[12, uint8]xcb_dri2_copy_region_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_copy_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tregion*: uint32dest*: uint32src*: uint32xcb_dri2_copy_region_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32xcb_dri2_get_buffers_with_format_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_get_buffers_with_format_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tcount*: uint32xcb_dri2_get_buffers_with_format_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width*: uint32height*: uint32count*: uint32pad1*: array[12, uint8]xcb_dri2_swap_buffers_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_swap_buffers_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_ttarget_msc_hi*: uint32target_msc_lo*: uint32divisor_hi*: uint32divisor_lo*: uint32remainder_hi*: uint32remainder_lo*: uint32xcb_dri2_swap_buffers_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32swap_hi*: uint32swap_lo*: uint32xcb_dri2_get_msc_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_get_msc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_txcb_dri2_get_msc_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32ust_hi*: uint32ust_lo*: uint32msc_hi*: uint32msc_lo*: uint32sbc_hi*: uint32sbc_lo*: uint32xcb_dri2_wait_msc_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_wait_msc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_ttarget_msc_hi*: uint32target_msc_lo*: uint32divisor_hi*: uint32divisor_lo*: uint32remainder_hi*: uint32remainder_lo*: uint32xcb_dri2_wait_msc_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32ust_hi*: uint32ust_lo*: uint32msc_hi*: uint32msc_lo*: uint32sbc_hi*: uint32sbc_lo*: uint32xcb_dri2_wait_sbc_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_wait_sbc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_ttarget_sbc_hi*: uint32target_sbc_lo*: uint32xcb_dri2_wait_sbc_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32ust_hi*: uint32ust_lo*: uint32msc_hi*: uint32msc_lo*: uint32sbc_hi*: uint32sbc_lo*: uint32xcb_dri2_swap_interval_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tinterval*: uint32xcb_dri2_get_param_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri2_get_param_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tparam*: uint32xcb_dri2_get_param_reply_t* {.bycopy.} = objectresponse_type*: uint8is_param_recognized*: uint8sequence*: uint16length*: uint32value_hi*: uint32value_lo*: uint32xcb_dri2_buffer_swap_complete_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event_type*: uint16pad1*: array[2, uint8]drawable*: xcb_drawable_tust_hi*: uint32ust_lo*: uint32msc_hi*: uint32msc_lo*: uint32sbc*: uint32xcb_dri2_invalidate_buffers_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16drawable*: xcb_drawable_txcb_dri3_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri3_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint32minor_version*: uint32xcb_dri3_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32xcb_dri3_open_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri3_open_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tprovider*: uint32xcb_dri3_open_reply_t* {.bycopy.} = objectresponse_type*: uint8nfd*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_dri3_pixmap_from_buffer_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16pixmap*: xcb_pixmap_tdrawable*: xcb_drawable_tsize*: uint32width*: uint16height*: uint16stride*: uint16depth*: uint8bpp*: uint8xcb_dri3_buffer_from_pixmap_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri3_buffer_from_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16pixmap*: xcb_pixmap_txcb_dri3_buffer_from_pixmap_reply_t* {.bycopy.} = objectresponse_type*: uint8nfd*: uint8sequence*: uint16length*: uint32size*: uint32width*: uint16height*: uint16stride*: uint16depth*: uint8bpp*: uint8pad0*: array[12, uint8]xcb_dri3_fence_from_fd_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tfence*: uint32initially_triggered*: uint8pad0*: array[3, uint8]xcb_dri3_fd_from_fence_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri3_fd_from_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tfence*: uint32xcb_dri3_fd_from_fence_reply_t* {.bycopy.} = objectresponse_type*: uint8nfd*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_dri3_get_supported_modifiers_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri3_get_supported_modifiers_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: uint32depth*: uint8bpp*: uint8pad0*: array[2, uint8]xcb_dri3_get_supported_modifiers_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_window_modifiers*: uint32num_screen_modifiers*: uint32pad1*: array[16, uint8]xcb_dri3_pixmap_from_buffers_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16pixmap*: xcb_pixmap_twindow*: xcb_window_tnum_buffers*: uint8pad0*: array[3, uint8]width*: uint16height*: uint16stride0*: uint32offset0*: uint32stride1*: uint32offset1*: uint32stride2*: uint32offset2*: uint32stride3*: uint32offset3*: uint32depth*: uint8bpp*: uint8pad1*: array[2, uint8]modifier*: uint64xcb_dri3_buffers_from_pixmap_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_dri3_buffers_from_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16pixmap*: xcb_pixmap_txcb_dri3_buffers_from_pixmap_reply_t* {.bycopy.} = objectresponse_type*: uint8nfd*: uint8sequence*: uint16length*: uint32width*: uint16height*: uint16pad0*: array[4, uint8]modifier*: uint64depth*: uint8bpp*: uint8pad1*: array[6, uint8]xcb_genericevent_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_genericevent_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint16client_minor_version*: uint16xcb_genericevent_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint16minor_version*: uint16pad1*: array[20, uint8]xcb_present_event_enum_t* = enumXCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0, XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,XCB_PRESENT_EVENT_IDLE_NOTIFY = 2, XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3xcb_present_event_mask_t* = enumXCB_PRESENT_EVENT_MASK_NO_EVENT = 0,XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8xcb_present_option_t* = enumXCB_PRESENT_OPTION_NONE = 0, XCB_PRESENT_OPTION_ASYNC = 1,XCB_PRESENT_OPTION_COPY = 2, XCB_PRESENT_OPTION_UST = 4,XCB_PRESENT_OPTION_SUBOPTIMAL = 8xcb_present_capability_t* = enumXCB_PRESENT_CAPABILITY_NONE = 0, XCB_PRESENT_CAPABILITY_ASYNC = 1,XCB_PRESENT_CAPABILITY_FENCE = 2, XCB_PRESENT_CAPABILITY_UST = 4xcb_present_complete_kind_t* = enumXCB_PRESENT_COMPLETE_KIND_PIXMAP = 0, XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1xcb_present_complete_mode_t* = enumXCB_PRESENT_COMPLETE_MODE_COPY = 0, XCB_PRESENT_COMPLETE_MODE_FLIP = 1,XCB_PRESENT_COMPLETE_MODE_SKIP = 2,XCB_PRESENT_COMPLETE_MODE_SUBOPTIMAL_COPY = 3xcb_present_notify_t* {.bycopy.} = objectwindow*: xcb_window_tserial*: uint32xcb_present_notify_iterator_t* {.bycopy.} = objectdata*: ptr xcb_present_notify_trem*: cintindex*: cintxcb_present_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_present_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint32minor_version*: uint32xcb_present_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32xcb_present_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tpixmap*: xcb_pixmap_tserial*: uint32valid*: xcb_xfixes_region_tupdate*: xcb_xfixes_region_tx_off*: int16y_off*: int16target_crtc*: xcb_randr_crtc_twait_fence*: xcb_sync_fence_tidle_fence*: xcb_sync_fence_toptions*: uint32pad0*: array[4, uint8]target_msc*: uint64divisor*: uint64remainder*: uint64xcb_present_notify_msc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tserial*: uint32pad0*: array[4, uint8]target_msc*: uint64divisor*: uint64remainder*: uint64xcb_present_event_t* = uint32xcb_present_event_iterator_t* {.bycopy.} = objectdata*: ptr xcb_present_event_trem*: cintindex*: cintxcb_present_select_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16eid*: xcb_present_event_twindow*: xcb_window_tevent_mask*: uint32xcb_present_query_capabilities_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_present_query_capabilities_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16target*: uint32xcb_present_query_capabilities_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32capabilities*: uint32xcb_present_generic_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32evtype*: uint16pad0*: array[2, uint8]event*: xcb_present_event_txcb_present_configure_notify_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16pad0*: array[2, uint8]event*: xcb_present_event_twindow*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16off_x*: int16off_y*: int16full_sequence*: uint32pixmap_width*: uint16pixmap_height*: uint16pixmap_flags*: uint32xcb_present_complete_notify_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16kind*: uint8mode*: uint8event*: xcb_present_event_twindow*: xcb_window_tserial*: uint32ust*: uint64full_sequence*: uint32msc*: uint64xcb_present_idle_notify_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16pad0*: array[2, uint8]event*: xcb_present_event_twindow*: xcb_window_tserial*: uint32pixmap*: xcb_pixmap_tidle_fence*: xcb_sync_fence_tfull_sequence*: uint32xcb_present_redirect_notify_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16update_window*: uint8pad0*: uint8event*: xcb_present_event_tevent_window*: xcb_window_twindow*: xcb_window_tpixmap*: xcb_pixmap_tserial*: uint32full_sequence*: uint32valid_region*: xcb_xfixes_region_tupdate_region*: xcb_xfixes_region_tvalid_rect*: xcb_rectangle_tupdate_rect*: xcb_rectangle_tx_off*: int16y_off*: int16target_crtc*: xcb_randr_crtc_twait_fence*: xcb_sync_fence_tidle_fence*: xcb_sync_fence_toptions*: uint32pad1*: array[4, uint8]target_msc*: uint64divisor*: uint64remainder*: uint64xcb_randr_mode_t* = uint32xcb_randr_mode_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_mode_trem*: cintindex*: cintxcb_randr_crtc_t* = uint32xcb_randr_crtc_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_crtc_trem*: cintindex*: cintxcb_randr_output_t* = uint32xcb_randr_output_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_output_trem*: cintindex*: cintxcb_randr_provider_t* = uint32xcb_randr_provider_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_provider_trem*: cintindex*: cintxcb_randr_lease_t* = uint32xcb_randr_lease_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_lease_trem*: cintindex*: cintxcb_randr_bad_output_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_randr_bad_crtc_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_randr_bad_mode_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_randr_bad_provider_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_randr_rotation_t* = enumXCB_RANDR_ROTATION_ROTATE_0 = 1, XCB_RANDR_ROTATION_ROTATE_90 = 2,XCB_RANDR_ROTATION_ROTATE_180 = 4, XCB_RANDR_ROTATION_ROTATE_270 = 8,XCB_RANDR_ROTATION_REFLECT_X = 16, XCB_RANDR_ROTATION_REFLECT_Y = 32xcb_randr_screen_size_t* {.bycopy.} = objectwidth*: uint16height*: uint16mwidth*: uint16mheight*: uint16xcb_randr_screen_size_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_screen_size_trem*: cintindex*: cintxcb_randr_refresh_rates_t* {.bycopy.} = objectnRates*: uint16xcb_randr_refresh_rates_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_refresh_rates_trem*: cintindex*: cintxcb_randr_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint32minor_version*: uint32xcb_randr_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32pad1*: array[16, uint8]xcb_randr_set_config_t* = enumXCB_RANDR_SET_CONFIG_SUCCESS = 0, XCB_RANDR_SET_CONFIG_INVALID_CONFIG_TIME = 1,XCB_RANDR_SET_CONFIG_INVALID_TIME = 2, XCB_RANDR_SET_CONFIG_FAILED = 3xcb_randr_set_screen_config_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_set_screen_config_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_ttimestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_tsizeID*: uint16rotation*: uint16rate*: uint16pad0*: array[2, uint8]xcb_randr_set_screen_config_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32new_timestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_troot*: xcb_window_tsubpixel_order*: uint16pad0*: array[10, uint8]xcb_randr_notify_mask_t* = enumXCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE = 1, XCB_RANDR_NOTIFY_MASK_CRTC_CHANGE = 2,XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE = 4,XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY = 8,XCB_RANDR_NOTIFY_MASK_PROVIDER_CHANGE = 16,XCB_RANDR_NOTIFY_MASK_PROVIDER_PROPERTY = 32,XCB_RANDR_NOTIFY_MASK_RESOURCE_CHANGE = 64, XCB_RANDR_NOTIFY_MASK_LEASE = 128xcb_randr_select_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tenable*: uint16pad0*: array[2, uint8]xcb_randr_get_screen_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_screen_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_get_screen_info_reply_t* {.bycopy.} = objectresponse_type*: uint8rotations*: uint8sequence*: uint16length*: uint32root*: xcb_window_ttimestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_tnSizes*: uint16sizeID*: uint16rotation*: uint16rate*: uint16nInfo*: uint16pad0*: array[2, uint8]xcb_randr_get_screen_size_range_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_screen_size_range_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_get_screen_size_range_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32min_width*: uint16min_height*: uint16max_width*: uint16max_height*: uint16pad1*: array[16, uint8]xcb_randr_set_screen_size_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_twidth*: uint16height*: uint16mm_width*: uint32mm_height*: uint32xcb_randr_mode_flag_t* = enumXCB_RANDR_MODE_FLAG_HSYNC_POSITIVE = 1, XCB_RANDR_MODE_FLAG_HSYNC_NEGATIVE = 2,XCB_RANDR_MODE_FLAG_VSYNC_POSITIVE = 4, XCB_RANDR_MODE_FLAG_VSYNC_NEGATIVE = 8,XCB_RANDR_MODE_FLAG_INTERLACE = 16, XCB_RANDR_MODE_FLAG_DOUBLE_SCAN = 32,XCB_RANDR_MODE_FLAG_CSYNC = 64, XCB_RANDR_MODE_FLAG_CSYNC_POSITIVE = 128,XCB_RANDR_MODE_FLAG_CSYNC_NEGATIVE = 256,XCB_RANDR_MODE_FLAG_HSKEW_PRESENT = 512, XCB_RANDR_MODE_FLAG_BCAST = 1024,XCB_RANDR_MODE_FLAG_PIXEL_MULTIPLEX = 2048,XCB_RANDR_MODE_FLAG_DOUBLE_CLOCK = 4096, XCB_RANDR_MODE_FLAG_HALVE_CLOCK = 8192xcb_randr_mode_info_t* {.bycopy.} = objectid*: uint32width*: uint16height*: uint16dot_clock*: uint32hsync_start*: uint16hsync_end*: uint16htotal*: uint16hskew*: uint16vsync_start*: uint16vsync_end*: uint16vtotal*: uint16name_len*: uint16mode_flags*: uint32xcb_randr_mode_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_mode_info_trem*: cintindex*: cintxcb_randr_get_screen_resources_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_screen_resources_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_get_screen_resources_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_tnum_crtcs*: uint16num_outputs*: uint16num_modes*: uint16names_len*: uint16pad1*: array[8, uint8]xcb_randr_connection_t* = enumXCB_RANDR_CONNECTION_CONNECTED = 0, XCB_RANDR_CONNECTION_DISCONNECTED = 1,XCB_RANDR_CONNECTION_UNKNOWN = 2xcb_randr_get_output_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_output_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tconfig_timestamp*: xcb_timestamp_txcb_randr_get_output_info_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tcrtc*: xcb_randr_crtc_tmm_width*: uint32mm_height*: uint32connection*: uint8subpixel_order*: uint8num_crtcs*: uint16num_modes*: uint16num_preferred*: uint16num_clones*: uint16name_len*: uint16xcb_randr_list_output_properties_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_list_output_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_txcb_randr_list_output_properties_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_atoms*: uint16pad1*: array[22, uint8]xcb_randr_query_output_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_query_output_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tproperty*: xcb_atom_txcb_randr_query_output_property_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pending*: uint8range*: uint8immutable*: uint8pad1*: array[21, uint8]xcb_randr_configure_output_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tproperty*: xcb_atom_tpending*: uint8range*: uint8pad0*: array[2, uint8]xcb_randr_change_output_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tproperty*: xcb_atom_t`type`*: xcb_atom_tformat*: uint8mode*: uint8pad0*: array[2, uint8]num_units*: uint32xcb_randr_delete_output_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tproperty*: xcb_atom_txcb_randr_get_output_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_output_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tproperty*: xcb_atom_t`type`*: xcb_atom_tlong_offset*: uint32long_length*: uint32`u_delete`*: uint8pending*: uint8pad0*: array[2, uint8]xcb_randr_get_output_property_reply_t* {.bycopy.} = objectresponse_type*: uint8format*: uint8sequence*: uint16length*: uint32ty*: xcb_atom_tbytes_after*: uint32num_items*: uint32pad0*: array[12, uint8]xcb_randr_create_mode_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_create_mode_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tmode_info*: xcb_randr_mode_info_txcb_randr_create_mode_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32mode*: xcb_randr_mode_tpad1*: array[20, uint8]xcb_randr_destroy_mode_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16mode*: xcb_randr_mode_txcb_randr_add_output_mode_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tmode*: xcb_randr_mode_txcb_randr_delete_output_mode_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output*: xcb_randr_output_tmode*: xcb_randr_mode_txcb_randr_get_crtc_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_crtc_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_tconfig_timestamp*: xcb_timestamp_txcb_randr_get_crtc_info_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tx*: int16y*: int16width*: uint16height*: uint16mode*: xcb_randr_mode_trotation*: uint16rotations*: uint16num_outputs*: uint16num_possible_outputs*: uint16xcb_randr_set_crtc_config_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_set_crtc_config_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_ttimestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_tx*: int16y*: int16mode*: xcb_randr_mode_trotation*: uint16pad0*: array[2, uint8]xcb_randr_set_crtc_config_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tpad0*: array[20, uint8]xcb_randr_get_crtc_gamma_size_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_crtc_gamma_size_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_txcb_randr_get_crtc_gamma_size_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32size*: uint16pad1*: array[22, uint8]xcb_randr_get_crtc_gamma_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_crtc_gamma_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_txcb_randr_get_crtc_gamma_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32size*: uint16pad1*: array[22, uint8]xcb_randr_set_crtc_gamma_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_tsize*: uint16pad0*: array[2, uint8]xcb_randr_get_screen_resources_current_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_screen_resources_current_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_get_screen_resources_current_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_tnum_crtcs*: uint16num_outputs*: uint16num_modes*: uint16names_len*: uint16pad1*: array[8, uint8]xcb_randr_transform_t* = enumXCB_RANDR_TRANSFORM_UNIT = 1, XCB_RANDR_TRANSFORM_SCALE_UP = 2,XCB_RANDR_TRANSFORM_SCALE_DOWN = 4, XCB_RANDR_TRANSFORM_PROJECTIVE = 8xcb_randr_set_crtc_transform_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_ttransform*: xcb_render_transform_tfilter_len*: uint16pad0*: array[2, uint8]xcb_randr_get_crtc_transform_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_crtc_transform_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_txcb_randr_get_crtc_transform_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pending_transform*: xcb_render_transform_thas_transforms*: uint8pad1*: array[3, uint8]current_transform*: xcb_render_transform_tpad2*: array[4, uint8]pending_len*: uint16pending_nparams*: uint16current_len*: uint16current_nparams*: uint16xcb_randr_get_panning_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_panning_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_txcb_randr_get_panning_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tleft*: uint16top*: uint16width*: uint16height*: uint16track_left*: uint16track_top*: uint16track_width*: uint16track_height*: uint16border_left*: int16border_top*: int16border_right*: int16border_bottom*: int16xcb_randr_set_panning_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_set_panning_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16crtc*: xcb_randr_crtc_ttimestamp*: xcb_timestamp_tleft*: uint16top*: uint16width*: uint16height*: uint16track_left*: uint16track_top*: uint16track_width*: uint16track_height*: uint16border_left*: int16border_top*: int16border_right*: int16border_bottom*: int16xcb_randr_set_panning_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_txcb_randr_set_output_primary_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_toutput*: xcb_randr_output_txcb_randr_get_output_primary_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_output_primary_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_get_output_primary_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32output*: xcb_randr_output_txcb_randr_get_providers_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_providers_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_get_providers_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tnum_providers*: uint16pad1*: array[18, uint8]xcb_randr_provider_capability_t* = enumXCB_RANDR_PROVIDER_CAPABILITY_SOURCE_OUTPUT = 1,XCB_RANDR_PROVIDER_CAPABILITY_SINK_OUTPUT = 2,XCB_RANDR_PROVIDER_CAPABILITY_SOURCE_OFFLOAD = 4,XCB_RANDR_PROVIDER_CAPABILITY_SINK_OFFLOAD = 8xcb_randr_get_provider_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_provider_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tconfig_timestamp*: xcb_timestamp_txcb_randr_get_provider_info_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tcapabilities*: uint32num_crtcs*: uint16num_outputs*: uint16num_associated_providers*: uint16name_len*: uint16pad0*: array[8, uint8]xcb_randr_set_provider_offload_sink_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tsink_provider*: xcb_randr_provider_tconfig_timestamp*: xcb_timestamp_txcb_randr_set_provider_output_source_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tsource_provider*: xcb_randr_provider_tconfig_timestamp*: xcb_timestamp_txcb_randr_list_provider_properties_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_list_provider_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_txcb_randr_list_provider_properties_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_atoms*: uint16pad1*: array[22, uint8]xcb_randr_query_provider_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_query_provider_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tproperty*: xcb_atom_txcb_randr_query_provider_property_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pending*: uint8range*: uint8immutable*: uint8pad1*: array[21, uint8]xcb_randr_configure_provider_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tproperty*: xcb_atom_tpending*: uint8range*: uint8pad0*: array[2, uint8]xcb_randr_change_provider_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tproperty*: xcb_atom_t`type`*: xcb_atom_tformat*: uint8mode*: uint8pad0*: array[2, uint8]num_items*: uint32xcb_randr_delete_provider_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tproperty*: xcb_atom_txcb_randr_get_provider_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_provider_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16provider*: xcb_randr_provider_tproperty*: xcb_atom_t`type`*: xcb_atom_tlong_offset*: uint32long_length*: uint32xx_delete*: uint8pending*: uint8pad0*: array[2, uint8]xcb_randr_get_provider_property_reply_t* {.bycopy.} = objectresponse_type*: uint8format*: uint8sequence*: uint16length*: uint32`type`*: xcb_atom_tbytes_after*: uint32num_items*: uint32pad0*: array[12, uint8]xcb_randr_screen_change_notify_event_t* {.bycopy.} = objectresponse_type*: uint8rotation*: uint8sequence*: uint16timestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_troot*: xcb_window_trequest_window*: xcb_window_tsizeID*: uint16subpixel_order*: uint16width*: uint16height*: uint16mwidth*: uint16mheight*: uint16xcb_randr_notify_t* = enumXCB_RANDR_NOTIFY_CRTC_CHANGE = 0, XCB_RANDR_NOTIFY_OUTPUT_CHANGE = 1,XCB_RANDR_NOTIFY_OUTPUT_PROPERTY = 2, XCB_RANDR_NOTIFY_PROVIDER_CHANGE = 3,XCB_RANDR_NOTIFY_PROVIDER_PROPERTY = 4, XCB_RANDR_NOTIFY_RESOURCE_CHANGE = 5,XCB_RANDR_NOTIFY_LEASE = 6xcb_randr_crtc_change_t* {.bycopy.} = objecttimestamp*: xcb_timestamp_twindow*: xcb_window_tcrtc*: xcb_randr_crtc_tmode*: xcb_randr_mode_trotation*: uint16pad0*: array[2, uint8]x*: int16y*: int16width*: uint16height*: uint16xcb_randr_crtc_change_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_crtc_change_trem*: cintindex*: cintxcb_randr_output_change_t* {.bycopy.} = objecttimestamp*: xcb_timestamp_tconfig_timestamp*: xcb_timestamp_twindow*: xcb_window_toutput*: xcb_randr_output_tcrtc*: xcb_randr_crtc_tmode*: xcb_randr_mode_trotation*: uint16connection*: uint8subpixel_order*: uint8xcb_randr_output_change_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_output_change_trem*: cintindex*: cintxcb_randr_output_property_t* {.bycopy.} = objectwindow*: xcb_window_toutput*: xcb_randr_output_tatom*: xcb_atom_ttimestamp*: xcb_timestamp_tstatus*: uint8pad0*: array[11, uint8]xcb_randr_output_property_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_output_property_trem*: cintindex*: cintxcb_randr_provider_change_t* {.bycopy.} = objecttimestamp*: xcb_timestamp_twindow*: xcb_window_tprovider*: xcb_randr_provider_tpad0*: array[16, uint8]xcb_randr_provider_change_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_provider_change_trem*: cintindex*: cintxcb_randr_provider_property_t* {.bycopy.} = objectwindow*: xcb_window_tprovider*: xcb_randr_provider_tatom*: xcb_atom_ttimestamp*: xcb_timestamp_tstate*: uint8pad0*: array[11, uint8]xcb_randr_provider_property_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_provider_property_trem*: cintindex*: cintxcb_randr_resource_change_t* {.bycopy.} = objecttimestamp*: xcb_timestamp_twindow*: xcb_window_tpad0*: array[20, uint8]xcb_randr_resource_change_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_resource_change_trem*: cintindex*: cintxcb_randr_monitor_info_t* {.bycopy.} = objectname*: xcb_atom_tprimary*: uint8automatic*: uint8nOutput*: uint16x*: int16y*: int16width*: uint16height*: uint16width_in_millimeters*: uint32height_in_millimeters*: uint32xcb_randr_monitor_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_monitor_info_trem*: cintindex*: cintxcb_randr_get_monitors_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_get_monitors_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tget_active*: uint8xcb_randr_get_monitors_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32timestamp*: xcb_timestamp_tnMonitors*: uint32nOutputs*: uint32pad1*: array[12, uint8]xcb_randr_set_monitor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_randr_delete_monitor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tname*: xcb_atom_txcb_randr_create_lease_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_randr_create_lease_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tlid*: xcb_randr_lease_tnum_crtcs*: uint16num_outputs*: uint16xcb_randr_create_lease_reply_t* {.bycopy.} = objectresponse_type*: uint8nfd*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_randr_free_lease_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16lid*: xcb_randr_lease_tterminate*: uint8xcb_randr_lease_notify_t* {.bycopy.} = objecttimestamp*: xcb_timestamp_twindow*: xcb_window_tlease*: xcb_randr_lease_tcreated*: uint8pad0*: array[15, uint8]xcb_randr_lease_notify_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_lease_notify_trem*: cintindex*: cintxcb_randr_notify_data_t* {.bycopy, union.} = objectcc*: xcb_randr_crtc_change_toc*: xcb_randr_output_change_top*: xcb_randr_output_property_tpc*: xcb_randr_provider_change_tpp*: xcb_randr_provider_property_trc*: xcb_randr_resource_change_tlc*: xcb_randr_lease_notify_txcb_randr_notify_data_iterator_t* {.bycopy.} = objectdata*: ptr xcb_randr_notify_data_trem*: cintindex*: cintxcb_randr_notify_event_t* {.bycopy.} = objectresponse_type*: uint8subCode*: uint8sequence*: uint16u*: xcb_randr_notify_data_txcb_record_context_t* = uint32xcb_record_context_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_context_trem*: cintindex*: cintxcb_record_range_8_t* {.bycopy.} = objectfirst*: uint8last*: uint8xcb_record_range_8_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_range_8_trem*: cintindex*: cintxcb_record_range_16_t* {.bycopy.} = objectfirst*: uint16last*: uint16xcb_record_range_16_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_range_16_trem*: cintindex*: cintxcb_record_ext_range_t* {.bycopy.} = objectmajor*: xcb_record_range_8_tminor*: xcb_record_range_16_txcb_record_ext_range_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_ext_range_trem*: cintindex*: cintxcb_record_range_t* {.bycopy.} = objectcore_requests*: xcb_record_range_8_tcore_replies*: xcb_record_range_8_text_requests*: xcb_record_ext_range_text_replies*: xcb_record_ext_range_tdelivered_events*: xcb_record_range_8_tdevice_events*: xcb_record_range_8_terrors*: xcb_record_range_8_tclient_started*: uint8client_died*: uint8xcb_record_range_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_range_trem*: cintindex*: cintxcb_record_element_header_t* = uint8xcb_record_element_header_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_element_header_trem*: cintindex*: cintxcb_record_h_type_t* = enumXCB_RECORD_H_TYPE_FROM_SERVER_TIME = 1, XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = 2,XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = 4xcb_record_client_spec_t* = uint32xcb_record_client_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_client_spec_trem*: cintindex*: cintxcb_record_cs_t* = enumXCB_RECORD_CS_CURRENT_CLIENTS = 1, XCB_RECORD_CS_FUTURE_CLIENTS = 2,XCB_RECORD_CS_ALL_CLIENTS = 3xcb_record_client_info_t* {.bycopy.} = objectclient_resource*: xcb_record_client_spec_tnum_ranges*: uint32xcb_record_client_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_record_client_info_trem*: cintindex*: cintxcb_record_bad_context_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16invalid_record*: uint32xcb_record_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_record_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint16minor_version*: uint16xcb_record_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint16minor_version*: uint16xcb_record_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_telement_header*: xcb_record_element_header_tpad0*: array[3, uint8]num_client_specs*: uint32num_ranges*: uint32xcb_record_register_clients_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_telement_header*: xcb_record_element_header_tpad0*: array[3, uint8]num_client_specs*: uint32num_ranges*: uint32xcb_record_unregister_clients_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_tnum_client_specs*: uint32xcb_record_get_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_record_get_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_txcb_record_get_context_reply_t* {.bycopy.} = objectresponse_type*: uint8enabled*: uint8sequence*: uint16length*: uint32element_header*: xcb_record_element_header_tpad0*: array[3, uint8]num_intercepted_clients*: uint32pad1*: array[16, uint8]xcb_record_enable_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_record_enable_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_txcb_record_enable_context_reply_t* {.bycopy.} = objectresponse_type*: uint8category*: uint8sequence*: uint16length*: uint32element_header*: xcb_record_element_header_tclient_swapped*: uint8pad0*: array[2, uint8]xid_base*: uint32server_time*: uint32rec_sequence_num*: uint32pad1*: array[8, uint8]xcb_record_disable_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_txcb_record_free_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_record_context_txcb_render_pict_type_t* = enumXCB_RENDER_PICT_TYPE_INDEXED = 0, XCB_RENDER_PICT_TYPE_DIRECT = 1xcb_render_picture_enum_t* = enumXCB_RENDER_PICTURE_NONE = 0xcb_render_pict_op_t* = enumXCB_RENDER_PICT_OP_CLEAR = 0, XCB_RENDER_PICT_OP_SRC = 1,XCB_RENDER_PICT_OP_DST = 2, XCB_RENDER_PICT_OP_OVER = 3,XCB_RENDER_PICT_OP_OVER_REVERSE = 4, XCB_RENDER_PICT_OP_IN = 5,XCB_RENDER_PICT_OP_IN_REVERSE = 6, XCB_RENDER_PICT_OP_OUT = 7,XCB_RENDER_PICT_OP_OUT_REVERSE = 8, XCB_RENDER_PICT_OP_ATOP = 9,XCB_RENDER_PICT_OP_ATOP_REVERSE = 10, XCB_RENDER_PICT_OP_XOR = 11,XCB_RENDER_PICT_OP_ADD = 12, XCB_RENDER_PICT_OP_SATURATE = 13,XCB_RENDER_PICT_OP_DISJOINT_CLEAR = 16, XCB_RENDER_PICT_OP_DISJOINT_SRC = 17,XCB_RENDER_PICT_OP_DISJOINT_DST = 18, XCB_RENDER_PICT_OP_DISJOINT_OVER = 19,XCB_RENDER_PICT_OP_DISJOINT_OVER_REVERSE = 20,XCB_RENDER_PICT_OP_DISJOINT_IN = 21,XCB_RENDER_PICT_OP_DISJOINT_IN_REVERSE = 22,XCB_RENDER_PICT_OP_DISJOINT_OUT = 23,XCB_RENDER_PICT_OP_DISJOINT_OUT_REVERSE = 24,XCB_RENDER_PICT_OP_DISJOINT_ATOP = 25,XCB_RENDER_PICT_OP_DISJOINT_ATOP_REVERSE = 26,XCB_RENDER_PICT_OP_DISJOINT_XOR = 27, XCB_RENDER_PICT_OP_CONJOINT_CLEAR = 32,XCB_RENDER_PICT_OP_CONJOINT_SRC = 33, XCB_RENDER_PICT_OP_CONJOINT_DST = 34,XCB_RENDER_PICT_OP_CONJOINT_OVER = 35,XCB_RENDER_PICT_OP_CONJOINT_OVER_REVERSE = 36,XCB_RENDER_PICT_OP_CONJOINT_IN = 37,XCB_RENDER_PICT_OP_CONJOINT_IN_REVERSE = 38,XCB_RENDER_PICT_OP_CONJOINT_OUT = 39,XCB_RENDER_PICT_OP_CONJOINT_OUT_REVERSE = 40,XCB_RENDER_PICT_OP_CONJOINT_ATOP = 41,XCB_RENDER_PICT_OP_CONJOINT_ATOP_REVERSE = 42,XCB_RENDER_PICT_OP_CONJOINT_XOR = 43, XCB_RENDER_PICT_OP_MULTIPLY = 48,XCB_RENDER_PICT_OP_SCREEN = 49, XCB_RENDER_PICT_OP_OVERLAY = 50,XCB_RENDER_PICT_OP_DARKEN = 51, XCB_RENDER_PICT_OP_LIGHTEN = 52,XCB_RENDER_PICT_OP_COLOR_DODGE = 53, XCB_RENDER_PICT_OP_COLOR_BURN = 54,XCB_RENDER_PICT_OP_HARD_LIGHT = 55, XCB_RENDER_PICT_OP_SOFT_LIGHT = 56,XCB_RENDER_PICT_OP_DIFFERENCE = 57, XCB_RENDER_PICT_OP_EXCLUSION = 58,XCB_RENDER_PICT_OP_HSL_HUE = 59, XCB_RENDER_PICT_OP_HSL_SATURATION = 60,XCB_RENDER_PICT_OP_HSL_COLOR = 61, XCB_RENDER_PICT_OP_HSL_LUMINOSITY = 62xcb_render_poly_edge_t* = enumXCB_RENDER_POLY_EDGE_SHARP = 0, XCB_RENDER_POLY_EDGE_SMOOTH = 1xcb_render_poly_mode_t* = enumXCB_RENDER_POLY_MODE_PRECISE = 0, XCB_RENDER_POLY_MODE_IMPRECISE = 1xcb_render_cp_t* = enumXCB_RENDER_CP_REPEAT = 1, XCB_RENDER_CP_ALPHA_MAP = 2,XCB_RENDER_CP_ALPHA_X_ORIGIN = 4, XCB_RENDER_CP_ALPHA_Y_ORIGIN = 8,XCB_RENDER_CP_CLIP_X_ORIGIN = 16, XCB_RENDER_CP_CLIP_Y_ORIGIN = 32,XCB_RENDER_CP_CLIP_MASK = 64, XCB_RENDER_CP_GRAPHICS_EXPOSURE = 128,XCB_RENDER_CP_SUBWINDOW_MODE = 256, XCB_RENDER_CP_POLY_EDGE = 512,XCB_RENDER_CP_POLY_MODE = 1024, XCB_RENDER_CP_DITHER = 2048,XCB_RENDER_CP_COMPONENT_ALPHA = 4096xcb_render_sub_pixel_t* = enumXCB_RENDER_SUB_PIXEL_UNKNOWN = 0, XCB_RENDER_SUB_PIXEL_HORIZONTAL_RGB = 1,XCB_RENDER_SUB_PIXEL_HORIZONTAL_BGR = 2, XCB_RENDER_SUB_PIXEL_VERTICAL_RGB = 3,XCB_RENDER_SUB_PIXEL_VERTICAL_BGR = 4, XCB_RENDER_SUB_PIXEL_NONE = 5xcb_render_repeat_t* = enumXCB_RENDER_REPEAT_NONE = 0, XCB_RENDER_REPEAT_NORMAL = 1,XCB_RENDER_REPEAT_PAD = 2, XCB_RENDER_REPEAT_REFLECT = 3xcb_render_glyph_t* = uint32xcb_render_glyph_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_glyph_trem*: cintindex*: cintxcb_render_glyphset_t* = uint32xcb_render_glyphset_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_glyphset_trem*: cintindex*: cintxcb_render_picture_t* = uint32xcb_render_picture_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_picture_trem*: cintindex*: cintxcb_render_pictformat_t* = uint32xcb_render_pictformat_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_pictformat_trem*: cintindex*: cintxcb_render_fixed_t* = int32xcb_render_fixed_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_fixed_trem*: cintindex*: cintxcb_render_pict_format_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_render_picture_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_render_pict_op_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_render_glyph_set_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_render_glyph_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_render_directformat_t* {.bycopy.} = objectred_shift*: uint16red_mask*: uint16green_shift*: uint16green_mask*: uint16blue_shift*: uint16blue_mask*: uint16alpha_shift*: uint16alpha_mask*: uint16xcb_render_directformat_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_directformat_trem*: cintindex*: cintxcb_render_pictforminfo_t* {.bycopy.} = objectid*: xcb_render_pictformat_t`type`*: uint8depth*: uint8pad0*: array[2, uint8]direct*: xcb_render_directformat_tcolormap*: xcb_colormap_txcb_render_pictforminfo_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_pictforminfo_trem*: cintindex*: cintxcb_render_pictvisual_t* {.bycopy.} = objectvisual*: xcb_visualid_tformat*: xcb_render_pictformat_txcb_render_pictvisual_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_pictvisual_trem*: cintindex*: cintxcb_render_pictdepth_t* {.bycopy.} = objectdepth*: uint8pad0*: uint8num_visuals*: uint16pad1*: array[4, uint8]xcb_render_pictdepth_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_pictdepth_trem*: cintindex*: cintxcb_render_pictscreen_t* {.bycopy.} = objectnum_depths*: uint32fallback*: xcb_render_pictformat_txcb_render_pictscreen_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_pictscreen_trem*: cintindex*: cintxcb_render_indexvalue_t* {.bycopy.} = objectpixel*: uint32red*: uint16green*: uint16blue*: uint16alpha*: uint16xcb_render_indexvalue_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_indexvalue_trem*: cintindex*: cintxcb_render_color_t* {.bycopy.} = objectred*: uint16green*: uint16blue*: uint16alpha*: uint16xcb_render_color_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_color_trem*: cintindex*: cintxcb_render_pointfix_t* {.bycopy.} = objectx*: xcb_render_fixed_ty*: xcb_render_fixed_txcb_render_pointfix_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_pointfix_trem*: cintindex*: cintxcb_render_linefix_t* {.bycopy.} = objectp1*: xcb_render_pointfix_tp2*: xcb_render_pointfix_txcb_render_linefix_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_linefix_trem*: cintindex*: cintxcb_render_triangle_t* {.bycopy.} = objectp1*: xcb_render_pointfix_tp2*: xcb_render_pointfix_tp3*: xcb_render_pointfix_txcb_render_triangle_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_triangle_trem*: cintindex*: cintxcb_render_trapezoid_t* {.bycopy.} = objecttop*: xcb_render_fixed_tbottom*: xcb_render_fixed_tleft*: xcb_render_linefix_tright*: xcb_render_linefix_txcb_render_trapezoid_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_trapezoid_trem*: cintindex*: cintxcb_render_glyphinfo_t* {.bycopy.} = objectwidth*: uint16height*: uint16x*: int16y*: int16x_off*: int16y_off*: int16xcb_render_glyphinfo_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_glyphinfo_trem*: cintindex*: cintxcb_render_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_render_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint32client_minor_version*: uint32xcb_render_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32pad1*: array[16, uint8]xcb_render_query_pict_formats_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_render_query_pict_formats_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_render_query_pict_formats_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_formats*: uint32num_screens*: uint32num_depths*: uint32num_visuals*: uint32num_subpixel*: uint32pad1*: array[4, uint8]xcb_render_query_pict_index_values_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_render_query_pict_index_values_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16format*: xcb_render_pictformat_txcb_render_query_pict_index_values_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_values*: uint32pad1*: array[20, uint8]xcb_render_create_picture_value_list_t* {.bycopy.} = objectrepeat*: uint32alphamap*: xcb_render_picture_talphaxorigin*: int32alphayorigin*: int32clipxorigin*: int32clipyorigin*: int32clipmask*: xcb_pixmap_tgraphicsexposure*: uint32subwindowmode*: uint32polyedge*: uint32polymode*: uint32dither*: xcb_atom_tcomponentalpha*: uint32xcb_render_create_picture_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16pid*: xcb_render_picture_tdrawable*: xcb_drawable_tformat*: xcb_render_pictformat_tvalue_mask*: uint32xcb_render_change_picture_value_list_t* {.bycopy.} = objectrepeat*: uint32alphamap*: xcb_render_picture_talphaxorigin*: int32alphayorigin*: int32clipxorigin*: int32clipyorigin*: int32clipmask*: xcb_pixmap_tgraphicsexposure*: uint32subwindowmode*: uint32polyedge*: uint32polymode*: uint32dither*: xcb_atom_tcomponentalpha*: uint32xcb_render_change_picture_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tvalue_mask*: uint32xcb_render_set_picture_clip_rectangles_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tclip_x_origin*: int16clip_y_origin*: int16xcb_render_free_picture_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_txcb_render_composite_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tmask*: xcb_render_picture_tdst*: xcb_render_picture_tsrc_x*: int16src_y*: int16mask_x*: int16mask_y*: int16dst_x*: int16dst_y*: int16width*: uint16height*: uint16xcb_render_trapezoids_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tsrc_x*: int16src_y*: int16xcb_render_triangles_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tsrc_x*: int16src_y*: int16xcb_render_tri_strip_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tsrc_x*: int16src_y*: int16xcb_render_tri_fan_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tsrc_x*: int16src_y*: int16xcb_render_create_glyph_set_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16gsid*: xcb_render_glyphset_tformat*: xcb_render_pictformat_txcb_render_reference_glyph_set_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16gsid*: xcb_render_glyphset_texisting*: xcb_render_glyphset_txcb_render_free_glyph_set_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16glyphset*: xcb_render_glyphset_txcb_render_add_glyphs_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16glyphset*: xcb_render_glyphset_tglyphs_len*: uint32xcb_render_free_glyphs_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16glyphset*: xcb_render_glyphset_txcb_render_composite_glyphs_8_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tglyphset*: xcb_render_glyphset_tsrc_x*: int16src_y*: int16xcb_render_composite_glyphs_16_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tglyphset*: xcb_render_glyphset_tsrc_x*: int16src_y*: int16xcb_render_composite_glyphs_32_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]src*: xcb_render_picture_tdst*: xcb_render_picture_tmask_format*: xcb_render_pictformat_tglyphset*: xcb_render_glyphset_tsrc_x*: int16src_y*: int16xcb_render_fill_rectangles_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16op*: uint8pad0*: array[3, uint8]dst*: xcb_render_picture_tcolor*: xcb_render_color_txcb_render_create_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cid*: xcb_cursor_tsource*: xcb_render_picture_tx*: uint16y*: uint16xcb_render_transform_t* {.bycopy.} = objectmatrix11*: xcb_render_fixed_tmatrix12*: xcb_render_fixed_tmatrix13*: xcb_render_fixed_tmatrix21*: xcb_render_fixed_tmatrix22*: xcb_render_fixed_tmatrix23*: xcb_render_fixed_tmatrix31*: xcb_render_fixed_tmatrix32*: xcb_render_fixed_tmatrix33*: xcb_render_fixed_txcb_render_transform_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_transform_trem*: cintindex*: cintxcb_render_set_picture_transform_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_ttransform*: xcb_render_transform_txcb_render_query_filters_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_render_query_filters_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_txcb_render_query_filters_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_aliases*: uint32num_filters*: uint32pad1*: array[16, uint8]xcb_render_set_picture_filter_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tfilter_len*: uint16pad0*: array[2, uint8]xcb_render_animcursorelt_t* {.bycopy.} = objectcursor*: xcb_cursor_tdelay*: uint32xcb_render_animcursorelt_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_animcursorelt_trem*: cintindex*: cintxcb_render_create_anim_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cid*: xcb_cursor_txcb_render_spanfix_t* {.bycopy.} = objectl*: xcb_render_fixed_tr*: xcb_render_fixed_ty*: xcb_render_fixed_txcb_render_spanfix_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_spanfix_trem*: cintindex*: cintxcb_render_trap_t* {.bycopy.} = objecttop*: xcb_render_spanfix_tbot*: xcb_render_spanfix_txcb_render_trap_iterator_t* {.bycopy.} = objectdata*: ptr xcb_render_trap_trem*: cintindex*: cintxcb_render_add_traps_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tx_off*: int16y_off*: int16xcb_render_create_solid_fill_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tcolor*: xcb_render_color_txcb_render_create_linear_gradient_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tp1*: xcb_render_pointfix_tp2*: xcb_render_pointfix_tnum_stops*: uint32xcb_render_create_radial_gradient_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tinner*: xcb_render_pointfix_touter*: xcb_render_pointfix_tinner_radius*: xcb_render_fixed_touter_radius*: xcb_render_fixed_tnum_stops*: uint32xcb_render_create_conical_gradient_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tcenter*: xcb_render_pointfix_tangle*: xcb_render_fixed_tnum_stops*: uint32xcb_res_client_t* {.bycopy.} = objectresource_base*: uint32resource_mask*: uint32xcb_res_client_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_client_trem*: cintindex*: cintxcb_res_type_t* {.bycopy.} = objectresource_type*: xcb_atom_tcount*: uint32xcb_res_type_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_type_trem*: cintindex*: cintxcb_res_client_id_mask_t* = enumXCB_RES_CLIENT_ID_MASK_CLIENT_XID = 1,XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID = 2xcb_res_client_id_spec_t* {.bycopy.} = objectclient*: uint32mask*: uint32xcb_res_client_id_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_client_id_spec_trem*: cintindex*: cintxcb_res_client_id_value_t* {.bycopy.} = objectspec*: xcb_res_client_id_spec_tlength*: uint32xcb_res_client_id_value_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_client_id_value_trem*: cintindex*: cintxcb_res_resource_id_spec_t* {.bycopy.} = objectresource*: uint32`type`*: uint32xcb_res_resource_id_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_resource_id_spec_trem*: cintindex*: cintxcb_res_resource_size_spec_t* {.bycopy.} = objectspec*: xcb_res_resource_id_spec_tbytes*: uint32ref_count*: uint32use_count*: uint32xcb_res_resource_size_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_resource_size_spec_trem*: cintindex*: cintxcb_res_resource_size_value_t* {.bycopy.} = objectsize*: xcb_res_resource_size_spec_tnum_cross_references*: uint32xcb_res_resource_size_value_iterator_t* {.bycopy.} = objectdata*: ptr xcb_res_resource_size_value_trem*: cintindex*: cintxcb_res_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_res_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major*: uint8client_minor*: uint8xcb_res_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32server_major*: uint16server_minor*: uint16xcb_res_query_clients_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_res_query_clients_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_res_query_clients_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_clients*: uint32pad1*: array[20, uint8]xcb_res_query_client_resources_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_res_query_client_resources_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xid*: uint32xcb_res_query_client_resources_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_types*: uint32pad1*: array[20, uint8]xcb_res_query_client_pixmap_bytes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_res_query_client_pixmap_bytes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xid*: uint32xcb_res_query_client_pixmap_bytes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32bytes*: uint32bytes_overflow*: uint32xcb_res_query_client_ids_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_res_query_client_ids_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16num_specs*: uint32xcb_res_query_client_ids_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_ids*: uint32pad1*: array[20, uint8]xcb_res_query_resource_bytes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_res_query_resource_bytes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client*: uint32num_specs*: uint32xcb_res_query_resource_bytes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_sizes*: uint32pad1*: array[20, uint8]xcb_screensaver_kind_t* = enumXCB_SCREENSAVER_KIND_BLANKED = 0, XCB_SCREENSAVER_KIND_INTERNAL = 1,XCB_SCREENSAVER_KIND_EXTERNAL = 2xcb_screensaver_event_t* = enumXCB_SCREENSAVER_EVENT_NOTIFY_MASK = 1, XCB_SCREENSAVER_EVENT_CYCLE_MASK = 2xcb_screensaver_state_t* = enumXCB_SCREENSAVER_STATE_OFF = 0, XCB_SCREENSAVER_STATE_ON = 1,XCB_SCREENSAVER_STATE_CYCLE = 2, XCB_SCREENSAVER_STATE_DISABLED = 3xcb_screensaver_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_screensaver_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint8client_minor_version*: uint8pad0*: array[2, uint8]xcb_screensaver_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32server_major_version*: uint16server_minor_version*: uint16pad1*: array[20, uint8]xcb_screensaver_query_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_screensaver_query_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_txcb_screensaver_query_info_reply_t* {.bycopy.} = objectresponse_type*: uint8state*: uint8sequence*: uint16length*: uint32saver_window*: xcb_window_tms_until_server*: uint32ms_since_user_input*: uint32event_mask*: uint32kind*: uint8pad0*: array[7, uint8]xcb_screensaver_select_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tevent_mask*: uint32xcb_screensaver_set_attributes_value_list_t* {.bycopy.} = objectbackground_pixmap*: xcb_pixmap_tbackground_pixel*: uint32border_pixmap*: xcb_pixmap_tborder_pixel*: uint32bit_gravity*: uint32win_gravity*: uint32backing_store*: uint32backing_planes*: uint32backing_pixel*: uint32override_redirect*: xcb_bool32_tsave_under*: xcb_bool32_tevent_mask*: uint32do_not_propogate_mask*: uint32colormap*: xcb_colormap_tcursor*: xcb_cursor_txcb_screensaver_set_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tx*: int16y*: int16width*: uint16height*: uint16border_width*: uint16xx_class*: uint8depth*: uint8visual*: xcb_visualid_tvalue_mask*: uint32xcb_screensaver_unset_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_txcb_screensaver_suspend_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16suspend*: uint8pad0*: array[3, uint8]xcb_screensaver_notify_event_t* {.bycopy.} = objectresponse_type*: uint8state*: uint8sequence*: uint16time*: xcb_timestamp_troot*: xcb_window_twindow*: xcb_window_tkind*: uint8forced*: uint8pad0*: array[14, uint8]xcb_shape_op_t* = uint8xcb_shape_op_iterator_t* {.bycopy.} = objectdata*: ptr xcb_shape_op_trem*: cintindex*: cintxcb_shape_kind_t* = uint8xcb_shape_kind_iterator_t* {.bycopy.} = objectdata*: ptr xcb_shape_kind_trem*: cintindex*: cintxcb_shape_so_t* = enumXCB_SHAPE_SO_SET = 0, XCB_SHAPE_SO_UNION = 1, XCB_SHAPE_SO_INTERSECT = 2,XCB_SHAPE_SO_SUBTRACT = 3, XCB_SHAPE_SO_INVERT = 4xcb_shape_sk_t* = enumXCB_SHAPE_SK_BOUNDING = 0, XCB_SHAPE_SK_CLIP = 1, XCB_SHAPE_SK_INPUT = 2xcb_shape_notify_event_t* {.bycopy.} = objectresponse_type*: uint8shape_kind*: xcb_shape_kind_tsequence*: uint16affected_window*: xcb_window_textents_x*: int16extents_y*: int16extents_width*: uint16extents_height*: uint16server_time*: xcb_timestamp_tshaped*: uint8pad0*: array[11, uint8]xcb_shape_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shape_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_shape_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint16minor_version*: uint16xcb_shape_rectangles_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16operation*: xcb_shape_op_tdestination_kind*: xcb_shape_kind_tordering*: uint8pad0*: uint8destination_window*: xcb_window_tx_offset*: int16y_offset*: int16xcb_shape_mask_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16operation*: xcb_shape_op_tdestination_kind*: xcb_shape_kind_tpad0*: array[2, uint8]destination_window*: xcb_window_tx_offset*: int16y_offset*: int16source_bitmap*: xcb_pixmap_txcb_shape_combine_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16operation*: xcb_shape_op_tdestination_kind*: xcb_shape_kind_tsource_kind*: xcb_shape_kind_tpad0*: uint8destination_window*: xcb_window_tx_offset*: int16y_offset*: int16source_window*: xcb_window_txcb_shape_offset_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16destination_kind*: xcb_shape_kind_tpad0*: array[3, uint8]destination_window*: xcb_window_tx_offset*: int16y_offset*: int16xcb_shape_query_extents_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shape_query_extents_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16destination_window*: xcb_window_txcb_shape_query_extents_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32bounding_shaped*: uint8clip_shaped*: uint8pad1*: array[2, uint8]bounding_shape_extents_x*: int16bounding_shape_extents_y*: int16bounding_shape_extents_width*: uint16bounding_shape_extents_height*: uint16clip_shape_extents_x*: int16clip_shape_extents_y*: int16clip_shape_extents_width*: uint16clip_shape_extents_height*: uint16xcb_shape_select_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16destination_window*: xcb_window_tenable*: uint8pad0*: array[3, uint8]xcb_shape_input_selected_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shape_input_selected_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16destination_window*: xcb_window_txcb_shape_input_selected_reply_t* {.bycopy.} = objectresponse_type*: uint8enabled*: uint8sequence*: uint16length*: uint32xcb_shape_get_rectangles_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shape_get_rectangles_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tsource_kind*: xcb_shape_kind_tpad0*: array[3, uint8]xcb_shape_get_rectangles_reply_t* {.bycopy.} = objectresponse_type*: uint8ordering*: uint8sequence*: uint16length*: uint32rectangles_len*: uint32pad0*: array[20, uint8]xcb_shm_seg_t* = uint32xcb_shm_seg_iterator_t* {.bycopy.} = objectdata*: ptr xcb_shm_seg_trem*: cintindex*: cintxcb_shm_completion_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16drawable*: xcb_drawable_tminor_event*: uint16major_event*: uint8pad1*: uint8shmseg*: xcb_shm_seg_toffset*: uint32xcb_shm_bad_seg_error_t* = xcb_value_error_txcb_shm_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shm_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_shm_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8shared_pixmaps*: uint8sequence*: uint16length*: uint32major_version*: uint16minor_version*: uint16uid*: uint16gid*: uint16pixmap_format*: uint8pad0*: array[15, uint8]xcb_shm_attach_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16shmseg*: xcb_shm_seg_tshmid*: uint32read_only*: uint8pad0*: array[3, uint8]xcb_shm_detach_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16shmseg*: xcb_shm_seg_txcb_shm_put_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_ttotal_width*: uint16total_height*: uint16src_x*: uint16src_y*: uint16src_width*: uint16src_height*: uint16dst_x*: int16dst_y*: int16depth*: uint8format*: uint8send_event*: uint8pad0*: uint8shmseg*: xcb_shm_seg_toffset*: uint32xcb_shm_get_image_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shm_get_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tx*: int16y*: int16width*: uint16height*: uint16plane_mask*: uint32format*: uint8pad0*: array[3, uint8]shmseg*: xcb_shm_seg_toffset*: uint32xcb_shm_get_image_reply_t* {.bycopy.} = objectresponse_type*: uint8depth*: uint8sequence*: uint16length*: uint32visual*: xcb_visualid_tsize*: uint32xcb_shm_create_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16pid*: xcb_pixmap_tdrawable*: xcb_drawable_twidth*: uint16height*: uint16depth*: uint8pad0*: array[3, uint8]shmseg*: xcb_shm_seg_toffset*: uint32xcb_shm_attach_fd_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16shmseg*: xcb_shm_seg_tread_only*: uint8pad0*: array[3, uint8]xcb_shm_create_segment_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_shm_create_segment_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16shmseg*: xcb_shm_seg_tsize*: uint32read_only*: uint8pad0*: array[3, uint8]xcb_shm_create_segment_reply_t* {.bycopy.} = objectresponse_type*: uint8nfd*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_sync_alarm_t* = uint32xcb_sync_alarm_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_alarm_trem*: cintindex*: cintxcb_sync_alarmstate_t* = enumXCB_SYNC_ALARMSTATE_ACTIVE = 0, XCB_SYNC_ALARMSTATE_INACTIVE = 1,XCB_SYNC_ALARMSTATE_DESTROYED = 2xcb_sync_counter_t* = uint32xcb_sync_counter_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_counter_trem*: cintindex*: cintxcb_sync_fence_t* = uint32xcb_sync_fence_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_fence_trem*: cintindex*: cintxcb_sync_testtype_t* = enumXCB_SYNC_TESTTYPE_POSITIVE_TRANSITION = 0,XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION = 1,XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON = 2,XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON = 3xcb_sync_valuetype_t* = enumXCB_SYNC_VALUETYPE_ABSOLUTE = 0, XCB_SYNC_VALUETYPE_RELATIVE = 1xcb_sync_ca_t* = enumXCB_SYNC_CA_COUNTER = 1, XCB_SYNC_CA_VALUE_TYPE = 2, XCB_SYNC_CA_VALUE = 4,XCB_SYNC_CA_TEST_TYPE = 8, XCB_SYNC_CA_DELTA = 16, XCB_SYNC_CA_EVENTS = 32xcb_sync_int64_t* {.bycopy.} = objecthi*: int32lo*: uint32xcb_sync_int64_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_int64_trem*: cintindex*: cintxcb_sync_systemcounter_t* {.bycopy.} = objectcounter*: xcb_sync_counter_tresolution*: xcb_sync_int64_tname_len*: uint16xcb_sync_systemcounter_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_systemcounter_trem*: cintindex*: cintxcb_sync_trigger_t* {.bycopy.} = objectcounter*: xcb_sync_counter_twait_type*: uint32wait_value*: xcb_sync_int64_ttest_type*: uint32xcb_sync_trigger_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_trigger_trem*: cintindex*: cintxcb_sync_waitcondition_t* {.bycopy.} = objecttrigger*: xcb_sync_trigger_tevent_threshold*: xcb_sync_int64_txcb_sync_waitcondition_iterator_t* {.bycopy.} = objectdata*: ptr xcb_sync_waitcondition_trem*: cintindex*: cintxcb_sync_counter_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16bad_counter*: uint32minor_opcode*: uint16major_opcode*: uint8xcb_sync_alarm_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16bad_alarm*: uint32minor_opcode*: uint16major_opcode*: uint8xcb_sync_initialize_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_sync_initialize_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16desired_major_version*: uint8desired_minor_version*: uint8xcb_sync_initialize_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint8minor_version*: uint8pad1*: array[22, uint8]xcb_sync_list_system_counters_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_sync_list_system_counters_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_sync_list_system_counters_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32counters_len*: uint32pad1*: array[20, uint8]xcb_sync_create_counter_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16id*: xcb_sync_counter_tinitial_value*: xcb_sync_int64_txcb_sync_destroy_counter_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16counter*: xcb_sync_counter_txcb_sync_query_counter_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_sync_query_counter_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16counter*: xcb_sync_counter_txcb_sync_query_counter_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32counter_value*: xcb_sync_int64_txcb_sync_await_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_sync_change_counter_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16counter*: xcb_sync_counter_tamount*: xcb_sync_int64_txcb_sync_set_counter_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16counter*: xcb_sync_counter_tvalue*: xcb_sync_int64_txcb_sync_create_alarm_value_list_t* {.bycopy.} = objectcounter*: xcb_sync_counter_tvalueType*: uint32value*: xcb_sync_int64_ttestType*: uint32delta*: xcb_sync_int64_tevents*: uint32xcb_sync_create_alarm_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16id*: xcb_sync_alarm_tvalue_mask*: uint32xcb_sync_change_alarm_value_list_t* {.bycopy.} = objectcounter*: xcb_sync_counter_tvalueType*: uint32value*: xcb_sync_int64_ttestType*: uint32delta*: xcb_sync_int64_tevents*: uint32xcb_sync_change_alarm_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16id*: xcb_sync_alarm_tvalue_mask*: uint32xcb_sync_destroy_alarm_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16alarm*: xcb_sync_alarm_txcb_sync_query_alarm_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_sync_query_alarm_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16alarm*: xcb_sync_alarm_txcb_sync_query_alarm_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32trigger*: xcb_sync_trigger_tdelta*: xcb_sync_int64_tevents*: uint8state*: uint8pad1*: array[2, uint8]xcb_sync_set_priority_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16id*: uint32priority*: int32xcb_sync_get_priority_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_sync_get_priority_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16id*: uint32xcb_sync_get_priority_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32priority*: int32xcb_sync_create_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tfence*: xcb_sync_fence_tinitially_triggered*: uint8xcb_sync_trigger_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16fence*: xcb_sync_fence_txcb_sync_reset_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16fence*: xcb_sync_fence_txcb_sync_destroy_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16fence*: xcb_sync_fence_txcb_sync_query_fence_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_sync_query_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16fence*: xcb_sync_fence_txcb_sync_query_fence_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32triggered*: uint8pad1*: array[23, uint8]xcb_sync_await_fence_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_sync_counter_notify_event_t* {.bycopy.} = objectresponse_type*: uint8kind*: uint8sequence*: uint16counter*: xcb_sync_counter_twait_value*: xcb_sync_int64_tcounter_value*: xcb_sync_int64_ttimestamp*: xcb_timestamp_tcount*: uint16destroyed*: uint8pad0*: uint8xcb_sync_alarm_notify_event_t* {.bycopy.} = objectresponse_type*: uint8kind*: uint8sequence*: uint16alarm*: xcb_sync_alarm_tcounter_value*: xcb_sync_int64_talarm_value*: xcb_sync_int64_ttimestamp*: xcb_timestamp_tstate*: uint8pad0*: array[3, uint8]xcb_params_cw_t* {.bycopy.} = objectback_pixmap*: uint32back_pixel*: uint32border_pixmap*: uint32border_pixel*: uint32bit_gravity*: uint32win_gravity*: uint32backing_store*: uint32backing_planes*: uint32backing_pixel*: uint32override_redirect*: uint32save_under*: uint32event_mask*: uint32dont_propagate*: uint32colormap*: uint32cursor*: uint32# where dis from? window: xcb_window_t; mask: uint32; params: ptr xcb_params_cw_t): xcb_void_cookie_txcb_params_configure_window_t* {.bycopy.} = objectx*: int32y*: int32width*: uint32height*: uint32border_width*: uint32sibling*: uint32stack_mode*: uint32### where dis come from? params: ptr xcb_params_configure_window_t): xcb_void_cookie_txcb_params_gc_t* {.bycopy.} = objectfunction*: uint32plane_mask*: uint32foreground*: uint32background*: uint32line_width*: uint32line_style*: uint32cap_style*: uint32join_style*: uint32fill_style*: uint32fill_rule*: uint32tile*: uint32stipple*: uint32tile_stipple_origin_x*: uint32tile_stipple_origin_y*: uint32font*: uint32subwindow_mode*: uint32graphics_exposures*: uint32clip_originX*: uint32clip_originY*: uint32mask*: uint32dash_offset*: uint32dash_list*: uint32arc_mode*: uint32# where dis from? mask: uint32; params: ptr xcb_params_gc_t): xcb_void_cookie_txcb_params_keyboard_t* {.bycopy.} = objectkey_click_percent*: uint32bell_percent*: uint32bell_pitch*: uint32bell_duration*: uint32led*: uint32led_mode*: uint32key*: uint32auto_repeat_mode*: uint32xcb_ewmh_connection_t* {.bycopy.} = objectconnection*: ptr xcb_connection_t ## * The X connection## * The screens on this connectionscreens*: ptr ptr xcb_screen_tnb_screens*: cint ## * x_NET_WM_CM_Sn atoms depending on the number of screensx_NET_WM_CM_Sn*: ptr xcb_atom_t ## * The EWMH atoms of this connectionx_NET_SUPPORTED*: xcb_atom_tx_NET_CLIENT_LIST*: xcb_atom_tx_NET_CLIENT_LIST_STACKING*: xcb_atom_tx_NET_NUMBER_OF_DESKTOPS*: xcb_atom_tx_NET_DESKTOP_GEOMETRY*: xcb_atom_tx_NET_DESKTOP_VIEWPORT*: xcb_atom_tx_NET_CURRENT_DESKTOP*: xcb_atom_tx_NET_DESKTOP_NAMES*: xcb_atom_tx_NET_ACTIVE_WINDOW*: xcb_atom_tx_NET_WORKAREA*: xcb_atom_tx_NET_SUPPORTING_WM_CHECK*: xcb_atom_tx_NET_VIRTUAL_ROOTS*: xcb_atom_tx_NET_DESKTOP_LAYOUT*: xcb_atom_tx_NET_SHOWING_DESKTOP*: xcb_atom_tx_NET_CLOSE_WINDOW*: xcb_atom_tx_NET_MOVERESIZE_WINDOW*: xcb_atom_tx_NET_WM_MOVERESIZE*: xcb_atom_tx_NET_RESTACK_WINDOW*: xcb_atom_tx_NET_REQUEST_FRAME_EXTENTS*: xcb_atom_tx_NET_WM_NAME*: xcb_atom_tx_NET_WM_VISIBLE_NAME*: xcb_atom_tx_NET_WM_ICON_NAME*: xcb_atom_tx_NET_WM_VISIBLE_ICON_NAME*: xcb_atom_tx_NET_WM_DESKTOP*: xcb_atom_tx_NET_WM_WINDOW_TYPE*: xcb_atom_tx_NET_WM_STATE*: xcb_atom_tx_NET_WM_ALLOWED_ACTIONS*: xcb_atom_tx_NET_WM_STRUT*: xcb_atom_tx_NET_WM_STRUT_PARTIAL*: xcb_atom_tx_NET_WM_ICON_GEOMETRY*: xcb_atom_tx_NET_WM_ICON*: xcb_atom_tx_NET_WM_PID*: xcb_atom_tx_NET_WM_HANDLED_ICONS*: xcb_atom_tx_NET_WM_USER_TIME*: xcb_atom_tx_NET_WM_USER_TIME_WINDOW*: xcb_atom_tx_NET_FRAME_EXTENTS*: xcb_atom_tx_NET_WM_PING*: xcb_atom_tx_NET_WM_SYNC_REQUEST*: xcb_atom_tx_NET_WM_SYNC_REQUEST_COUNTER*: xcb_atom_tx_NET_WM_FULLSCREEN_MONITORS*: xcb_atom_tx_NET_WM_FULL_PLACEMENT*: xcb_atom_tx_UTF8_STRING*: xcb_atom_tx_WM_PROTOCOLS*: xcb_atom_tx_MANAGER*: xcb_atom_tx_NET_WM_WINDOW_TYPE_DESKTOP*: xcb_atom_tx_NET_WM_WINDOW_TYPE_DOCK*: xcb_atom_tx_NET_WM_WINDOW_TYPE_TOOLBAR*: xcb_atom_tx_NET_WM_WINDOW_TYPE_MENU*: xcb_atom_tx_NET_WM_WINDOW_TYPE_UTILITY*: xcb_atom_tx_NET_WM_WINDOW_TYPE_SPLASH*: xcb_atom_tx_NET_WM_WINDOW_TYPE_DIALOG*: xcb_atom_tx_NET_WM_WINDOW_TYPE_DROPDOWN_MENU*: xcb_atom_tx_NET_WM_WINDOW_TYPE_POPUP_MENU*: xcb_atom_tx_NET_WM_WINDOW_TYPE_TOOLTIP*: xcb_atom_tx_NET_WM_WINDOW_TYPE_NOTIFICATION*: xcb_atom_tx_NET_WM_WINDOW_TYPE_COMBO*: xcb_atom_tx_NET_WM_WINDOW_TYPE_DND*: xcb_atom_tx_NET_WM_WINDOW_TYPE_NORMAL*: xcb_atom_tx_NET_WM_STATE_MODAL*: xcb_atom_tx_NET_WM_STATE_STICKY*: xcb_atom_tx_NET_WM_STATE_MAXIMIZED_VERT*: xcb_atom_tx_NET_WM_STATE_MAXIMIZED_HORZ*: xcb_atom_tx_NET_WM_STATE_SHADED*: xcb_atom_tx_NET_WM_STATE_SKIP_TASKBAR*: xcb_atom_tx_NET_WM_STATE_SKIP_PAGER*: xcb_atom_tx_NET_WM_STATE_HIDDEN*: xcb_atom_tx_NET_WM_STATE_FULLSCREEN*: xcb_atom_tx_NET_WM_STATE_ABOVE*: xcb_atom_tx_NET_WM_STATE_BELOW*: xcb_atom_tx_NET_WM_STATE_DEMANDS_ATTENTION*: xcb_atom_tx_NET_WM_ACTION_MOVE*: xcb_atom_tx_NET_WM_ACTION_RESIZE*: xcb_atom_tx_NET_WM_ACTION_MINIMIZE*: xcb_atom_tx_NET_WM_ACTION_SHADE*: xcb_atom_tx_NET_WM_ACTION_STICK*: xcb_atom_tx_NET_WM_ACTION_MAXIMIZE_HORZ*: xcb_atom_tx_NET_WM_ACTION_MAXIMIZE_VERT*: xcb_atom_tx_NET_WM_ACTION_FULLSCREEN*: xcb_atom_tx_NET_WM_ACTION_CHANGE_DESKTOP*: xcb_atom_tx_NET_WM_ACTION_CLOSE*: xcb_atom_tx_NET_WM_ACTION_ABOVE*: xcb_atom_tx_NET_WM_ACTION_BELOW*: xcb_atom_txcb_ewmh_get_atoms_reply_t* {.bycopy.} = objectatoms_len*: uint32 ## * The number of Atoms## * The list of Atomsatoms*: ptr xcb_atom_t ## * The actual GetProperty replyx_reply*: ptr xcb_get_property_reply_txcb_ewmh_get_windows_reply_t* {.bycopy.} = objectwindows_len*: uint32 ## * The number of Windows## * The list of Windowswindows*: ptr xcb_window_t ## * The actual GetProperty replyx_reply*: ptr xcb_get_property_reply_txcb_ewmh_get_utf8_strings_reply_t* {.bycopy.} = objectstrings_len*: uint32 ## * The number of UTF-8 strings## * The list of UTF-8 stringsstrings*: cstring ## * The actual GetProperty replyx_reply*: ptr xcb_get_property_reply_txcb_ewmh_coordinates_t* {.bycopy.} = objectx*: uint32 ## * The x coordinate## * The y coordinatey*: uint32xcb_ewmh_get_desktop_viewport_reply_t* {.bycopy.} = objectdesktop_viewport_len*: uint32 ## * The number of desktop viewports## * The desktop viewportsdesktop_viewport*: ptr xcb_ewmh_coordinates_t ## * The actual GetProperty replyx_reply*: ptr xcb_get_property_reply_txcb_ewmh_geometry_t* {.bycopy.} = objectx*: uint32 ## * The x coordinate## * The y coordinatey*: uint32 ## * The widthwidth*: uint32 ## * The heightheight*: uint32xcb_ewmh_get_workarea_reply_t* {.bycopy.} = objectworkarea_len*: uint32 ## * The number of desktop workarea## * The list of desktop workareaworkarea*: ptr xcb_ewmh_geometry_t ## * The actual GetProperty replyx_reply*: ptr xcb_get_property_reply_txcb_ewmh_get_desktop_layout_reply_t* {.bycopy.} = objectorientation*: uint32 ## * The desktops orientation## * The number of columnscolumns*: uint32 ## * The number of rowsrows*: uint32 ## * The desktops starting cornerstarting_corner*: uint32xcb_ewmh_wm_strut_partial_t* {.bycopy.} = objectleft*: uint32 ## * Reserved space on the left border of the screen## * Reserved space on the right border of the screenright*: uint32 ## * Reserved space on the top border of the screentop*: uint32 ## * Reserved space on the bottom border of the screenbottom*: uint32 ## * Beginning y coordinate of the left strutleft_start_y*: uint32 ## * Ending y coordinate of the left strutleft_end_y*: uint32 ## * Beginning y coordinate of the right strutright_start_y*: uint32 ## * Ending y coordinate of the right strutright_end_y*: uint32 ## * Beginning x coordinate of the top struttop_start_x*: uint32 ## * Ending x coordinate of the top struttop_end_x*: uint32 ## * Beginning x coordinate of the bottom strutbottom_start_x*: uint32 ## * Ending x coordinate of the bottom strutbottom_end_x*: uint32xcb_ewmh_wm_icon_iterator_t* {.bycopy.} = objectwidth*: uint32 ## * Icon width## * Icon heightheight*: uint32 ## * Rows, left to right and top to bottom of the CARDINAL ARGBdata*: ptr uint32 ## * Number of icons remainingrem*: uint8 ## * Index of the current icon in the array of iconsindex*: uint8xcb_ewmh_get_wm_icon_reply_t* {.bycopy.} = objectnum_icons*: uint8 ## * Number of icons## * The actual GetProperty replyx_reply*: ptr xcb_get_property_reply_txcb_ewmh_get_extents_reply_t* {.bycopy.} = objectleft*: uint32 ## * Width of the left border## * Width of the right borderright*: uint32 ## * Width of the top bordertop*: uint32 ## * Width of the bottom borderbottom*: uint32xcb_ewmh_get_wm_fullscreen_monitors_reply_t* {.bycopy.} = objecttop*: uint32 ## * Monitor whose top edge defines the top edge of the fullscreen## window## * Monitor whose bottom edge defines the bottom edge of the## fullscreen windowbottom*: uint32 ## * Monitor whose left edge defines the left edge of the fullscreen## windowleft*: uint32 ## * Monitor whose right edge defines the right edge of the## fullscreen windowright*: uint32xcb_protocol_request_t* {.bycopy.} = objectcount*: csize_text*: ptr xcb_extension_topcode*: uint8isvoid*: uint8xcb_send_request_flags_t* = enumXCB_REQUEST_CHECKED = 1 shl 0, XCB_REQUEST_RAW = 1 shl 1,XCB_REQUEST_DISCARD_REPLY = 1 shl 2, XCB_REQUEST_REPLY_FDS = 1 shl 3xcb_generic_reply_t* {.bycopy.} = objectresponse_type*: uint8 ## *< Type of the responsepad0*: uint8 ## *< Paddingsequence*: uint16 ## *< Sequence numberlength*: uint32 ## *< Length of the responsexcb_raw_generic_event_t* {.bycopy.} = objectresponse_type*: uint8 ## *< Type of the responsepad0*: uint8 ## *< Paddingsequence*: uint16 ## *< Sequence numberpad*: array[7, uint32] ## *< Paddingxcb_ge_event_t* {.bycopy.} = objectresponse_type*: uint8 ## *< Type of the responsepad0*: uint8 ## *< Paddingsequence*: uint16 ## *< Sequence numberlength*: uint32event_type*: uint16pad1*: uint16pad*: array[5, uint32] ## *< Paddingfull_sequence*: uint32 ## *< full sequencexcb_void_cookie_t* {.bycopy.} = objectsequence*: uint8 ## *< Sequence numberxcb_auth_info_t* {.bycopy.} = objectnamelen*: cint ## *< Length of the string name (as returned by strlen).name*: cstring ## *< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1".datalen*: cint ## *< Length of the data member.data*: cstring ## *< Data interpreted in a protocol-specific manner.xcb_icccm_get_text_property_reply_t* {.bycopy.} = objectx_reply*: ptr xcb_get_property_reply_t ## * Store reply to avoid memory allocation, should normally not be## used directly## * Encoding usedencoding*: xcb_atom_t ## * Length of the name field abovename_len*: uint32 ## * Property valuename*: cstring ## * Format, may be 8, 16 or 32format*: uint8xcb_icccm_get_wm_colormap_windows_reply_t* {.bycopy.} = objectwindows_len*: uint32 ## * Length of the windows list## * Windows listwindows*: ptr xcb_window_t ## * Store reply to avoid memory allocation, should normally not be## used directlyx_reply*: ptr xcb_get_property_reply_t# class_len: uint32; class_name: cstring): xcb_void_cookie_txcb_icccm_get_wm_class_reply_t* {.bycopy.} = objectinstance_name*: cstring ## * Instance name## * Class of applicationclass_name*: cstring ## * Store reply to avoid memory allocation, should normally not be## used directlyx_reply*: ptr xcb_get_property_reply_txcb_icccm_size_hints_flags_t* = enumXCB_ICCCM_SIZE_HINT_US_POSITION = 1 shl 0, XCB_ICCCM_SIZE_HINT_US_SIZE = 1 shl 1,XCB_ICCCM_SIZE_HINT_P_POSITION = 1 shl 2, XCB_ICCCM_SIZE_HINT_P_SIZE = 1 shl 3,XCB_ICCCM_SIZE_HINT_P_MIN_SIZE = 1 shl 4,XCB_ICCCM_SIZE_HINT_P_MAX_SIZE = 1 shl 5,XCB_ICCCM_SIZE_HINT_P_RESIZE_INC = 1 shl 6,XCB_ICCCM_SIZE_HINT_P_ASPECT = 1 shl 7, XCB_ICCCM_SIZE_HINT_BASE_SIZE = 1 shl 8,XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY = 1 shl 9xcb_size_hints_t* {.bycopy.} = objectflags*: uint32 ## * User specified flags## * User-specified positionx*: int32y*: int32 ## * User-specified sizewidth*: int32height*: int32 ## * Program-specified minimum sizemin_width*: int32min_height*: int32 ## * Program-specified maximum sizemax_width*: int32max_height*: int32 ## * Program-specified resize incrementswidth_inc*: int32height_inc*: int32 ## * Program-specified minimum aspect ratiosmin_aspect_num*: int32min_aspect_den*: int32 ## * Program-specified maximum aspect ratiosmax_aspect_num*: int32max_aspect_den*: int32 ## * Program-specified base sizebase_width*: int32base_height*: int32 ## * Program-specified window gravitywin_gravity*: uint32xcb_icccm_wm_hints_t* {.bycopy.} = objectflags*: int32 ## * Marks which fields in this structure are defined## * Does this application rely on the window manager to get keyboard## input?input*: uint32 ## * See belowinitial_state*: int32 ## * Pixmap to be used as iconicon_pixmap*: xcb_pixmap_t ## * Window to be used as iconicon_window*: xcb_window_t ## * Initial position of iconicon_x*: int32icon_y*: int32 ## * Icon mask bitmapicon_mask*: xcb_pixmap_t ## Identifier of related window groupwindow_group*: xcb_window_txcb_icccm_wm_state_t* = enumXCB_ICCCM_WM_STATE_WITHDRAWN = 0, XCB_ICCCM_WM_STATE_NORMAL = 1,XCB_ICCCM_WM_STATE_ICONIC = 3xcb_icccm_wm_t* = enumXCB_ICCCM_WM_HINT_INPUT = (1 shl 0), XCB_ICCCM_WM_HINT_STATE = (1 shl 1),XCB_ICCCM_WM_HINT_ICON_PIXMAP = (1 shl 2),XCB_ICCCM_WM_HINT_ICON_WINDOW = (1 shl 3),XCB_ICCCM_WM_HINT_ICON_POSITION = (1 shl 4),XCB_ICCCM_WM_HINT_ICON_MASK = (1 shl 5),XCB_ICCCM_WM_HINT_WINDOW_GROUP = (1 shl 6),XCB_ICCCM_WM_HINT_X_URGENCY = (1 shl 8)# XCB_ICCCM_WM_HINT_ICON_PIXMAP or XCB_ICCCM_WM_HINT_ICON_WINDOW or# XCB_ICCCM_WM_HINT_ICON_POSITION or XCB_ICCCM_WM_HINT_ICON_MASK or# XCB_ICCCM_WM_HINT_WINDOW_GROUP)xcb_icccm_get_wm_protocols_reply_t* {.bycopy.} = objectatoms_len*: uint32 ## * Length of the atoms list## * Atoms listatoms*: ptr xcb_atom_t ## * Store reply to avoid memory allocation, should normally not be## used directlyx_reply*: ptr xcb_get_property_reply_txcb_image_t* {.bycopy.} = objectwidth*: uint16 ## *< Width in pixels, excluding pads etc.height*: uint16 ## *< Height in pixels.format*: xcb_image_format_t ## *< Format.scanline_pad*: uint8 ## *< Right pad in bits. Valid pads## are 8, 16, 32.##depth*: uint8 ## *< Depth in bits. Valid depths## are 1, 4, 8, 16, 24 for z format,## 1 for xy-bitmap-format, anything## for xy-pixmap-format.##bpp*: uint8 ## *< Storage per pixel in bits.## Must be >= depth. Valid bpp## are 1, 4, 8, 16, 24, 32 for z## format, 1 for xy-bitmap format,## anything for xy-pixmap-format.##unit*: uint8 ## *< Scanline unit in bits for## xy formats and for bpp == 1,## in which case valid scanline## units are 8, 16, 32. Otherwise,## will be max(8, bpp). Must be >= bpp.##plane_mask*: uint32 ## *< When format is## xy-pixmap and depth >## 1, this says which## planes are "valid" in## some vague sense.## Currently used only## by xcb_image_get/put_pixel(),## and set only by## xcb_image_get().##byte_order*: xcb_image_order_t ## *< Component byte order## for z-pixmap, byte## order of scanline unit## for xy-bitmap and## xy-pixmap. Nybble## order for z-pixmap## when bpp == 4.##bit_order*: xcb_image_order_t ## *< Bit order of## scanline unit for## xy-bitmap and## xy-pixmap.##stride*: uint32 ## *< Bytes per image row.## Computable from other## data, but cached for## convenience/performance.##size*: uint32 ## *< Size of image data in bytes.## Computable from other## data, but cached for## convenience/performance.##base*: pointer ## *< Malloced block of storage that## will be freed by## @ref xcb_image_destroy() if non-null.##data*: ptr uint8 ## *< The actual image.xcb_shm_segment_info_t* {.bycopy.} = objectshmseg*: xcb_shm_seg_tshmid*: uint32shmaddr*: ptr uint8# xcb_key_symbols_t* = x_XCBKeySymbolsxcb_pict_format_t* = enumXCB_PICT_FORMAT_ID = (1 shl 0), XCB_PICT_FORMAT_TYPE = (1 shl 1),XCB_PICT_FORMAT_DEPTH = (1 shl 2), XCB_PICT_FORMAT_RED = (1 shl 3),XCB_PICT_FORMAT_RED_MASK = (1 shl 4), XCB_PICT_FORMAT_GREEN = (1 shl 5),XCB_PICT_FORMAT_GREEN_MASK = (1 shl 6), XCB_PICT_FORMAT_BLUE = (1 shl 7),XCB_PICT_FORMAT_BLUE_MASK = (1 shl 8), XCB_PICT_FORMAT_ALPHA = (1 shl 9),XCB_PICT_FORMAT_ALPHA_MASK = (1 shl 10), XCB_PICT_FORMAT_COLORMAP = (1 shl 11)xcb_pict_standard_t* = enumXCB_PICT_STANDARD_ARGB_32, XCB_PICT_STANDARD_RGB_24, XCB_PICT_STANDARD_A_8,XCB_PICT_STANDARD_A_4, XCB_PICT_STANDARD_A_1xcb_xc_misc_get_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xc_misc_get_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint16client_minor_version*: uint16xcb_xc_misc_get_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32server_major_version*: uint16server_minor_version*: uint16xcb_xc_misc_get_xid_range_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xc_misc_get_xid_range_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xc_misc_get_xid_range_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32start_id*: uint32count*: uint32xcb_xc_misc_get_xid_list_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xc_misc_get_xid_list_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16count*: uint32xcb_xc_misc_get_xid_list_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32ids_len*: uint32pad1*: array[20, uint8]xcb_xevie_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xevie_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint16client_minor_version*: uint16xcb_xevie_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32server_major_version*: uint16server_minor_version*: uint16pad1*: array[20, uint8]xcb_xevie_start_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xevie_start_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32xcb_xevie_start_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pad1*: array[24, uint8]xcb_xevie_end_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xevie_end_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cmap*: uint32xcb_xevie_end_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pad1*: array[24, uint8]xcb_xevie_datatype_t* = enumXCB_XEVIE_DATATYPE_UNMODIFIED = 0, XCB_XEVIE_DATATYPE_MODIFIED = 1xcb_xevie_event_t* {.bycopy.} = objectpad0*: array[32, uint8]xcb_xevie_event_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xevie_event_trem*: cintindex*: cintxcb_xevie_send_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xevie_send_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16event*: xcb_xevie_event_tdata_type*: uint32pad0*: array[64, uint8]xcb_xevie_send_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pad1*: array[24, uint8]xcb_xevie_select_input_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xevie_select_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16event_mask*: uint32xcb_xevie_select_input_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pad1*: array[24, uint8]xcb_xf86dri_drm_clip_rect_t* {.bycopy.} = objectx1*: int16y1*: int16x2*: int16x3*: int16xcb_xf86dri_drm_clip_rect_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xf86dri_drm_clip_rect_trem*: cintindex*: cintxcb_xf86dri_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xf86dri_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32dri_major_version*: uint16dri_minor_version*: uint16dri_minor_patch*: uint32xcb_xf86dri_query_direct_rendering_capable_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_query_direct_rendering_capable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32xcb_xf86dri_query_direct_rendering_capable_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32is_capable*: uint8xcb_xf86dri_open_connection_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_open_connection_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32xcb_xf86dri_open_connection_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32sarea_handle_low*: uint32sarea_handle_high*: uint32bus_id_len*: uint32pad1*: array[12, uint8]xcb_xf86dri_close_connection_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32xcb_xf86dri_get_client_driver_name_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_get_client_driver_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32xcb_xf86dri_get_client_driver_name_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32client_driver_major_version*: uint32client_driver_minor_version*: uint32client_driver_patch_version*: uint32client_driver_name_len*: uint32pad1*: array[8, uint8]xcb_xf86dri_create_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32visual*: uint32context*: uint32xcb_xf86dri_create_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32hw_context*: uint32xcb_xf86dri_destroy_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32context*: uint32xcb_xf86dri_create_drawable_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_create_drawable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32drawable*: uint32xcb_xf86dri_create_drawable_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32hw_drawable_handle*: uint32xcb_xf86dri_destroy_drawable_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32drawable*: uint32xcb_xf86dri_get_drawable_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_get_drawable_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32drawable*: uint32xcb_xf86dri_get_drawable_info_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32drawable_table_index*: uint32drawable_table_stamp*: uint32drawable_origin_X*: int16drawable_origin_Y*: int16drawable_size_W*: int16drawable_size_H*: int16num_clip_rects*: uint32back_x*: int16back_y*: int16num_back_clip_rects*: uint32xcb_xf86dri_get_device_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_get_device_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32xcb_xf86dri_get_device_info_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32framebuffer_handle_low*: uint32framebuffer_handle_high*: uint32framebuffer_origin_offset*: uint32framebuffer_size*: uint32framebuffer_stride*: uint32device_private_size*: uint32xcb_xf86dri_auth_connection_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xf86dri_auth_connection_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16screen*: uint32magic*: uint32xcb_xf86dri_auth_connection_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32authenticated*: uint32xcb_xfixes_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xfixes_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major_version*: uint32client_minor_version*: uint32xcb_xfixes_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint32minor_version*: uint32pad1*: array[16, uint8]xcb_xfixes_save_set_mode_t* = enumXCB_XFIXES_SAVE_SET_MODE_INSERT = 0, XCB_XFIXES_SAVE_SET_MODE_DELETE = 1xcb_xfixes_save_set_target_t* = enumXCB_XFIXES_SAVE_SET_TARGET_NEAREST = 0, XCB_XFIXES_SAVE_SET_TARGET_ROOT = 1xcb_xfixes_save_set_mapping_t* = enumXCB_XFIXES_SAVE_SET_MAPPING_MAP = 0, XCB_XFIXES_SAVE_SET_MAPPING_UNMAP = 1xcb_xfixes_change_save_set_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16mode*: uint8target*: uint8map*: uint8pad0*: uint8window*: xcb_window_txcb_xfixes_selection_event_t* = enumXCB_XFIXES_SELECTION_EVENT_SET_SELECTION_OWNER = 0,XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY = 1,XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE = 2xcb_xfixes_selection_event_mask_t* = enumXCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER = 1,XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY = 2,XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE = 4xcb_xfixes_selection_notify_event_t* {.bycopy.} = objectresponse_type*: uint8subtype*: uint8sequence*: uint16window*: xcb_window_towner*: xcb_window_tselection*: xcb_atom_ttimestamp*: xcb_timestamp_tselection_timestamp*: xcb_timestamp_tpad0*: array[8, uint8]xcb_xfixes_select_selection_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tselection*: xcb_atom_tevent_mask*: uint32xcb_xfixes_cursor_notify_t* = enumXCB_XFIXES_CURSOR_NOTIFY_DISPLAY_CURSOR = 0xcb_xfixes_cursor_notify_mask_t* = enumXCB_XFIXES_CURSOR_NOTIFY_MASK_DISPLAY_CURSOR = 1xcb_xfixes_cursor_notify_event_t* {.bycopy.} = objectresponse_type*: uint8subtype*: uint8sequence*: uint16window*: xcb_window_tcursor_serial*: uint32timestamp*: xcb_timestamp_tname*: xcb_atom_tpad0*: array[12, uint8]xcb_xfixes_select_cursor_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tevent_mask*: uint32xcb_xfixes_get_cursor_image_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xfixes_get_cursor_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xfixes_get_cursor_image_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32x*: int16y*: int16width*: uint16height*: uint16xhot*: uint16yhot*: uint16cursor_serial*: uint32pad1*: array[8, uint8]xcb_xfixes_region_t* = uint32xcb_xfixes_region_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xfixes_region_trem*: cintindex*: cintxcb_xfixes_bad_region_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_xfixes_region_enum_t* = enumXCB_XFIXES_REGION_NONE = 0xcb_xfixes_create_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_txcb_xfixes_create_region_from_bitmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_tbitmap*: xcb_pixmap_txcb_xfixes_create_region_from_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_twindow*: xcb_window_tkind*: xcb_shape_kind_tpad0*: array[3, uint8]xcb_xfixes_create_region_from_gc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_tgc*: xcb_gcontext_txcb_xfixes_create_region_from_picture_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_tpicture*: xcb_render_picture_txcb_xfixes_destroy_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_txcb_xfixes_set_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_txcb_xfixes_copy_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source*: xcb_xfixes_region_tdestination*: xcb_xfixes_region_txcb_xfixes_union_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source1*: xcb_xfixes_region_tsource2*: xcb_xfixes_region_tdestination*: xcb_xfixes_region_txcb_xfixes_intersect_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source1*: xcb_xfixes_region_tsource2*: xcb_xfixes_region_tdestination*: xcb_xfixes_region_txcb_xfixes_subtract_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source1*: xcb_xfixes_region_tsource2*: xcb_xfixes_region_tdestination*: xcb_xfixes_region_txcb_xfixes_invert_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source*: xcb_xfixes_region_tbounds*: xcb_rectangle_tdestination*: xcb_xfixes_region_txcb_xfixes_translate_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_tdx*: int16dy*: int16xcb_xfixes_region_extents_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source*: xcb_xfixes_region_tdestination*: xcb_xfixes_region_txcb_xfixes_fetch_region_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xfixes_fetch_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16region*: xcb_xfixes_region_txcb_xfixes_fetch_region_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32extents*: xcb_rectangle_tpad1*: array[16, uint8]xcb_xfixes_set_gc_clip_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16gc*: xcb_gcontext_tregion*: xcb_xfixes_region_tx_origin*: int16y_origin*: int16xcb_xfixes_set_window_shape_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16dest*: xcb_window_tdest_kind*: xcb_shape_kind_tpad0*: array[3, uint8]x_offset*: int16y_offset*: int16region*: xcb_xfixes_region_txcb_xfixes_set_picture_clip_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16picture*: xcb_render_picture_tregion*: xcb_xfixes_region_tx_origin*: int16y_origin*: int16xcb_xfixes_set_cursor_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cursor*: xcb_cursor_tnbytes*: uint16pad0*: array[2, uint8]xcb_xfixes_get_cursor_name_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xfixes_get_cursor_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cursor*: xcb_cursor_txcb_xfixes_get_cursor_name_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32atom*: xcb_atom_tnbytes*: uint16pad1*: array[18, uint8]xcb_xfixes_get_cursor_image_and_name_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xfixes_get_cursor_image_and_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xfixes_get_cursor_image_and_name_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32x*: int16y*: int16width*: uint16height*: uint16xhot*: uint16yhot*: uint16cursor_serial*: uint32cursor_atom*: xcb_atom_tnbytes*: uint16pad1*: array[2, uint8]xcb_xfixes_change_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source*: xcb_cursor_tdestination*: xcb_cursor_txcb_xfixes_change_cursor_by_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16src*: xcb_cursor_tnbytes*: uint16pad0*: array[2, uint8]xcb_xfixes_expand_region_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16source*: xcb_xfixes_region_tdestination*: xcb_xfixes_region_tleft*: uint16right*: uint16top*: uint16bottom*: uint16xcb_xfixes_hide_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_xfixes_show_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_xfixes_barrier_t* = uint32xcb_xfixes_barrier_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xfixes_barrier_trem*: cintindex*: cintxcb_xfixes_barrier_directions_t* = enumXCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_X = 1,XCB_XFIXES_BARRIER_DIRECTIONS_POSITIVE_Y = 2,XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_X = 4,XCB_XFIXES_BARRIER_DIRECTIONS_NEGATIVE_Y = 8xcb_xfixes_create_pointer_barrier_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16barrier*: xcb_xfixes_barrier_twindow*: xcb_window_tx1*: uint16y1*: uint16x2*: uint16y2*: uint16directions*: uint32pad0*: array[2, uint8]num_devices*: uint16xcb_xfixes_delete_pointer_barrier_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16barrier*: xcb_xfixes_barrier_txcb_xinerama_screen_info_t* {.bycopy.} = objectx_org*: int16y_org*: int16width*: uint16height*: uint16xcb_xinerama_screen_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xinerama_screen_info_trem*: cintindex*: cintxcb_xinerama_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xinerama_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major*: uint8minor*: uint8xcb_xinerama_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major*: uint16minor*: uint16xcb_xinerama_get_state_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xinerama_get_state_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_xinerama_get_state_reply_t* {.bycopy.} = objectresponse_type*: uint8state*: uint8sequence*: uint16length*: uint32window*: xcb_window_txcb_xinerama_get_screen_count_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xinerama_get_screen_count_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_xinerama_get_screen_count_reply_t* {.bycopy.} = objectresponse_type*: uint8screen_count*: uint8sequence*: uint16length*: uint32window*: xcb_window_txcb_xinerama_get_screen_size_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xinerama_get_screen_size_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tscreen*: uint32xcb_xinerama_get_screen_size_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width*: uint32height*: uint32window*: xcb_window_tscreen*: uint32xcb_xinerama_is_active_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xinerama_is_active_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xinerama_is_active_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32state*: uint32xcb_xinerama_query_screens_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xinerama_query_screens_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xinerama_query_screens_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32number*: uint32pad1*: array[20, uint8]xcb_input_event_class_t* = uint32xcb_input_event_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_event_class_trem*: cintindex*: cintxcb_input_key_code_t* = uint8xcb_input_key_code_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_key_code_trem*: cintindex*: cintxcb_input_device_id_t* = uint16xcb_input_device_id_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_id_trem*: cintindex*: cintxcb_input_fp1616_t* = int32xcb_input_fp1616_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_fp1616_trem*: cintindex*: cintxcb_input_fp3232_t* {.bycopy.} = objectintegral*: int32frac*: uint32xcb_input_fp3232_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_fp3232_trem*: cintindex*: cintxcb_input_get_extension_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_extension_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16name_len*: uint16pad0*: array[2, uint8]xcb_input_get_extension_version_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32server_major*: uint16server_minor*: uint16present*: uint8pad0*: array[19, uint8]xcb_input_device_use_t* = enumXCB_INPUT_DEVICE_USE_IS_X_POINTER = 0, XCB_INPUT_DEVICE_USE_IS_X_KEYBOARD = 1,XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE = 2,XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD = 3,XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER = 4xcb_input_input_class_t* = enumXCB_INPUT_INPUT_CLASS_KEY = 0, XCB_INPUT_INPUT_CLASS_BUTTON = 1,XCB_INPUT_INPUT_CLASS_VALUATOR = 2, XCB_INPUT_INPUT_CLASS_FEEDBACK = 3,XCB_INPUT_INPUT_CLASS_PROXIMITY = 4, XCB_INPUT_INPUT_CLASS_FOCUS = 5,XCB_INPUT_INPUT_CLASS_OTHER = 6xcb_input_valuator_mode_t* = enumXCB_INPUT_VALUATOR_MODE_RELATIVE = 0, XCB_INPUT_VALUATOR_MODE_ABSOLUTE = 1xcb_input_device_info_t* {.bycopy.} = objectdevice_type*: xcb_atom_tdevice_id*: uint8num_class_info*: uint8device_use*: uint8pad0*: uint8xcb_input_device_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_info_trem*: cintindex*: cintxcb_input_key_info_t* {.bycopy.} = objectclass_id*: uint8len*: uint8min_keycode*: xcb_input_key_code_tmax_keycode*: xcb_input_key_code_tnum_keys*: uint16pad0*: array[2, uint8]xcb_input_key_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_key_info_trem*: cintindex*: cintxcb_input_button_info_t* {.bycopy.} = objectclass_id*: uint8len*: uint8num_buttons*: uint16xcb_input_button_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_button_info_trem*: cintindex*: cintxcb_input_axis_info_t* {.bycopy.} = objectresolution*: uint32minimum*: int32maximum*: int32xcb_input_axis_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_axis_info_trem*: cintindex*: cintxcb_input_valuator_info_t* {.bycopy.} = objectclass_id*: uint8len*: uint8axes_len*: uint8mode*: uint8motion_size*: uint32xcb_input_valuator_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_valuator_info_trem*: cintindex*: cintxcb_input_input_info_t* {.bycopy.} = objectclass_id*: uint8len*: uint8xcb_input_input_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_input_info_trem*: cintindex*: cintxcb_input_device_name_t* {.bycopy.} = objectlen*: uint8xcb_input_device_name_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_name_trem*: cintindex*: cintxcb_input_list_input_devices_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_list_input_devices_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_input_list_input_devices_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32devices_len*: uint8pad0*: array[23, uint8]xcb_input_event_type_base_t* = uint8xcb_input_event_type_base_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_event_type_base_trem*: cintindex*: cintxcb_input_input_class_info_t* {.bycopy.} = objectclass_id*: uint8event_type_base*: xcb_input_event_type_base_txcb_input_input_class_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_input_class_info_trem*: cintindex*: cintxcb_input_open_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_open_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_open_device_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_classes*: uint8pad0*: array[23, uint8]xcb_input_close_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_set_device_mode_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_set_device_mode_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8mode*: uint8pad0*: array[2, uint8]xcb_input_set_device_mode_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_select_extension_event_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tnum_classes*: uint16pad0*: array[2, uint8]xcb_input_get_selected_extension_events_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_selected_extension_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_input_get_selected_extension_events_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_this_classes*: uint16num_all_classes*: uint16pad0*: array[20, uint8]xcb_input_propagate_mode_t* = enumXCB_INPUT_PROPAGATE_MODE_ADD_TO_LIST = 0,XCB_INPUT_PROPAGATE_MODE_DELETE_FROM_LIST = 1xcb_input_change_device_dont_propagate_list_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tnum_classes*: uint16mode*: uint8pad0*: uint8xcb_input_get_device_dont_propagate_list_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_dont_propagate_list_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_input_get_device_dont_propagate_list_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_classes*: uint16pad0*: array[22, uint8]xcb_input_device_time_coord_t* {.bycopy.} = objecttime*: xcb_timestamp_txcb_input_device_time_coord_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_time_coord_trem*: cintindex*: cintnum_axes*: uint8 ## *<xcb_input_get_device_motion_events_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_motion_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16start*: xcb_timestamp_tstop*: xcb_timestamp_tdevice_id*: uint8pad0*: array[3, uint8]xcb_input_get_device_motion_events_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_events*: uint32num_axes*: uint8device_mode*: uint8pad0*: array[18, uint8]xcb_input_change_keyboard_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_change_keyboard_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_change_keyboard_device_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_change_pointer_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_change_pointer_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16x_axis*: uint8y_axis*: uint8device_id*: uint8pad0*: uint8xcb_input_change_pointer_device_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_grab_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_grab_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16grab_window*: xcb_window_ttime*: xcb_timestamp_tnum_classes*: uint16this_device_mode*: uint8other_device_mode*: uint8owner_events*: uint8device_id*: uint8pad0*: array[2, uint8]xcb_input_grab_device_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_ungrab_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16time*: xcb_timestamp_tdevice_id*: uint8pad0*: array[3, uint8]xcb_input_modifier_device_t* = enumXCB_INPUT_MODIFIER_DEVICE_USE_X_KEYBOARD = 255xcb_input_grab_device_key_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16grab_window*: xcb_window_tnum_classes*: uint16modifiers*: uint16modifier_device*: uint8grabbed_device*: uint8key*: uint8this_device_mode*: uint8other_device_mode*: uint8owner_events*: uint8pad0*: array[2, uint8]xcb_input_ungrab_device_key_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16grabWindow*: xcb_window_tmodifiers*: uint16modifier_device*: uint8key*: uint8grabbed_device*: uint8xcb_input_grab_device_button_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16grab_window*: xcb_window_tgrabbed_device*: uint8modifier_device*: uint8num_classes*: uint16modifiers*: uint16this_device_mode*: uint8other_device_mode*: uint8button*: uint8owner_events*: uint8pad0*: array[2, uint8]xcb_input_ungrab_device_button_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16grab_window*: xcb_window_tmodifiers*: uint16modifier_device*: uint8button*: uint8grabbed_device*: uint8pad0*: array[3, uint8]xcb_input_device_input_mode_t* = enumXCB_INPUT_DEVICE_INPUT_MODE_ASYNC_THIS_DEVICE = 0,XCB_INPUT_DEVICE_INPUT_MODE_SYNC_THIS_DEVICE = 1,XCB_INPUT_DEVICE_INPUT_MODE_REPLAY_THIS_DEVICE = 2,XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_OTHER_DEVICES = 3,XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_ALL = 4,XCB_INPUT_DEVICE_INPUT_MODE_SYNC_ALL = 5xcb_input_allow_device_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16time*: xcb_timestamp_tmode*: uint8device_id*: uint8pad0*: array[2, uint8]xcb_input_get_device_focus_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_focus_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_get_device_focus_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32focus*: xcb_window_ttime*: xcb_timestamp_trevert_to*: uint8pad0*: array[15, uint8]xcb_input_set_device_focus_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16focus*: xcb_window_ttime*: xcb_timestamp_trevert_to*: uint8device_id*: uint8pad0*: array[2, uint8]xcb_input_feedback_class_t* = enumXCB_INPUT_FEEDBACK_CLASS_KEYBOARD = 0, XCB_INPUT_FEEDBACK_CLASS_POINTER = 1,XCB_INPUT_FEEDBACK_CLASS_STRING = 2, XCB_INPUT_FEEDBACK_CLASS_INTEGER = 3,XCB_INPUT_FEEDBACK_CLASS_LED = 4, XCB_INPUT_FEEDBACK_CLASS_BELL = 5xcb_input_kbd_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16pitch*: uint16duration*: uint16led_mask*: uint32led_values*: uint32global_auto_repeat*: uint8click*: uint8percent*: uint8pad0*: uint8auto_repeats*: array[32, uint8]xcb_input_kbd_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_kbd_feedback_state_trem*: cintindex*: cintxcb_input_ptr_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16pad0*: array[2, uint8]accel_num*: uint16accel_denom*: uint16threshold*: uint16xcb_input_ptr_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_ptr_feedback_state_trem*: cintindex*: cintxcb_input_integer_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16resolution*: uint32min_value*: int32max_value*: int32xcb_input_integer_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_integer_feedback_state_trem*: cintindex*: cintxcb_input_string_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16max_symbols*: uint16num_keysyms*: uint16xcb_input_string_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_string_feedback_state_trem*: cintindex*: cintxcb_input_bell_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16percent*: uint8pad0*: array[3, uint8]pitch*: uint16duration*: uint16xcb_input_bell_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_bell_feedback_state_trem*: cintindex*: cintxcb_input_led_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16led_mask*: uint32led_values*: uint32xcb_input_led_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_led_feedback_state_trem*: cintindex*: cintxcb_input_feedback_state_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16xcb_input_feedback_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_feedback_state_trem*: cintindex*: cintxcb_input_get_feedback_control_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_feedback_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_get_feedback_control_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_feedbacks*: uint16pad0*: array[22, uint8]xcb_input_kbd_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16key*: xcb_input_key_code_tauto_repeat_mode*: uint8key_click_percent*: int8bell_percent*: int8bell_pitch*: int16bell_duration*: int16led_mask*: uint32led_values*: uint32xcb_input_kbd_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_kbd_feedback_ctl_trem*: cintindex*: cintxcb_input_ptr_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16pad0*: array[2, uint8]num*: int16denom*: int16threshold*: int16xcb_input_ptr_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_ptr_feedback_ctl_trem*: cintindex*: cintxcb_input_integer_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16int_to_display*: int32xcb_input_integer_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_integer_feedback_ctl_trem*: cintindex*: cintxcb_input_string_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16pad0*: array[2, uint8]num_keysyms*: uint16xcb_input_string_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_string_feedback_ctl_trem*: cintindex*: cintxcb_input_bell_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16percent*: int8pad0*: array[3, uint8]pitch*: int16duration*: int16xcb_input_bell_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_bell_feedback_ctl_trem*: cintindex*: cintxcb_input_led_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16led_mask*: uint32led_values*: uint32xcb_input_led_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_led_feedback_ctl_trem*: cintindex*: cintxcb_input_feedback_ctl_t* {.bycopy.} = objectclass_id*: uint8feedback_id*: uint8len*: uint16xcb_input_feedback_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_feedback_ctl_trem*: cintindex*: cintxcb_input_change_feedback_control_mask_t* = enumXCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT = 1,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT = 2,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH = 4,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_DURATION = 8,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED = 16,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED_MODE = 32,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY = 64,XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_AUTO_REPEAT_MODE = 128xcb_input_change_feedback_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16mask*: uint32device_id*: uint8feedback_id*: uint8pad0*: array[2, uint8]xcb_input_get_device_key_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_key_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8first_keycode*: xcb_input_key_code_tcount*: uint8pad0*: uint8xcb_input_get_device_key_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32keysyms_per_keycode*: uint8pad0*: array[23, uint8]xcb_input_change_device_key_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8first_keycode*: xcb_input_key_code_tkeysyms_per_keycode*: uint8keycode_count*: uint8xcb_input_get_device_modifier_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_modifier_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_get_device_modifier_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32keycodes_per_modifier*: uint8pad0*: array[23, uint8]xcb_input_set_device_modifier_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_set_device_modifier_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8keycodes_per_modifier*: uint8pad0*: array[2, uint8]xcb_input_set_device_modifier_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_get_device_button_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_button_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_get_device_button_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32map_size*: uint8pad0*: array[23, uint8]xcb_input_set_device_button_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_set_device_button_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8map_size*: uint8pad0*: array[2, uint8]xcb_input_set_device_button_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_key_state_t* {.bycopy.} = objectclass_id*: uint8len*: uint8num_keys*: uint8pad0*: uint8keys*: array[32, uint8]xcb_input_key_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_key_state_trem*: cintindex*: cintxcb_input_button_state_t* {.bycopy.} = objectclass_id*: uint8len*: uint8num_buttons*: uint8pad0*: uint8buttons*: array[32, uint8]xcb_input_button_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_button_state_trem*: cintindex*: cintxcb_input_valuator_state_mode_mask_t* = enumXCB_INPUT_VALUATOR_STATE_MODE_MASK_DEVICE_MODE_ABSOLUTE = 1,XCB_INPUT_VALUATOR_STATE_MODE_MASK_OUT_OF_PROXIMITY = 2xcb_input_valuator_state_t* {.bycopy.} = objectclass_id*: uint8len*: uint8num_valuators*: uint8mode*: uint8xcb_input_valuator_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_valuator_state_trem*: cintindex*: cintxcb_input_input_state_t* {.bycopy.} = objectclass_id*: uint8len*: uint8xcb_input_input_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_input_state_trem*: cintindex*: cintxcb_input_query_device_state_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_query_device_state_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_query_device_state_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_classes*: uint8pad0*: array[23, uint8]xcb_input_device_bell_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8feedback_id*: uint8xfeedback_class*: uint8percent*: int8xcb_input_set_device_valuators_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_set_device_valuators_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8first_valuator*: uint8num_valuators*: uint8pad0*: uint8xcb_input_set_device_valuators_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_device_control_t* = enumXCB_INPUT_DEVICE_CONTROL_RESOLUTION = 1,XCB_INPUT_DEVICE_CONTROL_ABS_CALIB = 2, XCB_INPUT_DEVICE_CONTROL_CORE = 3,XCB_INPUT_DEVICE_CONTROL_ENABLE = 4, XCB_INPUT_DEVICE_CONTROL_ABS_AREA = 5xcb_input_device_resolution_state_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16num_valuators*: uint32xcb_input_device_resolution_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_resolution_state_trem*: cintindex*: cintxcb_input_device_abs_calib_state_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16min_x*: int32max_x*: int32min_y*: int32max_y*: int32flip_x*: uint32flip_y*: uint32rotation*: uint32button_threshold*: uint32xcb_input_device_abs_calib_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_abs_calib_state_trem*: cintindex*: cintxcb_input_device_abs_area_state_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16offset_x*: uint32offset_y*: uint32width*: uint32height*: uint32screen*: uint32following*: uint32xcb_input_device_abs_area_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_abs_area_state_trem*: cintindex*: cintxcb_input_device_core_state_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16status*: uint8iscore*: uint8pad0*: array[2, uint8]xcb_input_device_core_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_core_state_trem*: cintindex*: cintxcb_input_device_enable_state_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16enable*: uint8pad0*: array[3, uint8]xcb_input_device_enable_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_enable_state_trem*: cintindex*: cintxcb_input_device_state_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16xcb_input_device_state_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_state_trem*: cintindex*: cintxcb_input_get_device_control_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16control_id*: uint16device_id*: uint8pad0*: uint8xcb_input_get_device_control_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_device_resolution_ctl_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16first_valuator*: uint8num_valuators*: uint8pad0*: array[2, uint8]xcb_input_device_resolution_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_resolution_ctl_trem*: cintindex*: cintxcb_input_device_abs_calib_ctl_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16min_x*: int32max_x*: int32min_y*: int32max_y*: int32flip_x*: uint32flip_y*: uint32rotation*: uint32button_threshold*: uint32xcb_input_device_abs_calib_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_abs_calib_ctl_trem*: cintindex*: cintxcb_input_device_abs_area_ctrl_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16offset_x*: uint32offset_y*: uint32width*: int32height*: int32screen*: int32following*: uint32xcb_input_device_abs_area_ctrl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_abs_area_ctrl_trem*: cintindex*: cintxcb_input_device_core_ctrl_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16status*: uint8pad0*: array[3, uint8]xcb_input_device_core_ctrl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_core_ctrl_trem*: cintindex*: cintxcb_input_device_enable_ctrl_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16enable*: uint8pad0*: array[3, uint8]xcb_input_device_enable_ctrl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_enable_ctrl_trem*: cintindex*: cintxcb_input_device_ctl_t* {.bycopy.} = objectcontrol_id*: uint16len*: uint16xcb_input_device_ctl_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_ctl_trem*: cintindex*: cintxcb_input_change_device_control_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_change_device_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16control_id*: uint16device_id*: uint8pad0*: uint8xcb_input_change_device_control_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32status*: uint8pad0*: array[23, uint8]xcb_input_list_device_properties_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_list_device_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device_id*: uint8pad0*: array[3, uint8]xcb_input_list_device_properties_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32num_atoms*: uint16pad0*: array[22, uint8]xcb_input_property_format_t* = enumXCB_INPUT_PROPERTY_FORMAT_8_BITS = 8, XCB_INPUT_PROPERTY_FORMAT_16_BITS = 16,XCB_INPUT_PROPERTY_FORMAT_32_BITS = 32xcb_input_change_device_property_items_t* {.bycopy.} = objectdata8*: ptr uint8data16*: ptr uint16data32*: ptr uint32xcb_input_change_device_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16property*: xcb_atom_t`type`*: xcb_atom_tdevice_id*: uint8format*: uint8mode*: uint8pad0*: uint8num_items*: uint32xcb_input_delete_device_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16property*: xcb_atom_tdevice_id*: uint8pad0*: array[3, uint8]xcb_input_get_device_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_get_device_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16property*: xcb_atom_t`type`*: xcb_atom_toffset*: uint32len*: uint32device_id*: uint8x_delete*: uint8pad0*: array[2, uint8]xcb_input_get_device_property_items_t* {.bycopy.} = objectdata8*: ptr uint8data16*: ptr uint16data32*: ptr uint32xcb_input_get_device_property_reply_t* {.bycopy.} = objectresponse_type*: uint8xi_reply_type*: uint8sequence*: uint16length*: uint32`type`*: xcb_atom_tbytes_after*: uint32num_items*: uint32format*: uint8device_id*: uint8pad0*: array[10, uint8]xcb_input_device_t* = enumXCB_INPUT_DEVICE_ALL = 0, XCB_INPUT_DEVICE_ALL_MASTER = 1xcb_input_group_info_t* {.bycopy.} = objectbase*: uint8latched*: uint8locked*: uint8effective*: uint8xcb_input_group_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_group_info_trem*: cintindex*: cintxcb_input_modifier_info_t* {.bycopy.} = objectbase*: uint32latched*: uint32locked*: uint32effective*: uint32xcb_input_modifier_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_modifier_info_trem*: cintindex*: cintxcb_input_xi_query_pointer_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_query_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_query_pointer_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32root*: xcb_window_tchild*: xcb_window_troot_x*: xcb_input_fp1616_troot_y*: xcb_input_fp1616_twin_x*: xcb_input_fp1616_twin_y*: xcb_input_fp1616_tsame_screen*: uint8pad1*: uint8buttons_len*: uint16mods*: xcb_input_modifier_info_tgroup*: xcb_input_group_info_txcb_input_xi_warp_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16src_win*: xcb_window_tdst_win*: xcb_window_tsrc_x*: xcb_input_fp1616_tsrc_y*: xcb_input_fp1616_tsrc_width*: uint16src_height*: uint16dst_x*: xcb_input_fp1616_tdst_y*: xcb_input_fp1616_tdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_change_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tcursor*: xcb_cursor_tdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_hierarchy_change_type_t* = enumXCB_INPUT_HIERARCHY_CHANGE_TYPE_ADD_MASTER = 1,XCB_INPUT_HIERARCHY_CHANGE_TYPE_REMOVE_MASTER = 2,XCB_INPUT_HIERARCHY_CHANGE_TYPE_ATTACH_SLAVE = 3,XCB_INPUT_HIERARCHY_CHANGE_TYPE_DETACH_SLAVE = 4xcb_input_change_mode_t* = enumXCB_INPUT_CHANGE_MODE_ATTACH = 1, XCB_INPUT_CHANGE_MODE_FLOAT = 2xcb_input_add_master_t* {.bycopy.} = object`type`*: uint16len*: uint16name_len*: uint16send_core*: uint8enable*: uint8xcb_input_add_master_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_add_master_trem*: cintindex*: cintxcb_input_remove_master_t* {.bycopy.} = object`type`*: uint16len*: uint16deviceid*: xcb_input_device_id_treturn_mode*: uint8pad0*: uint8return_pointer*: xcb_input_device_id_treturn_keyboard*: xcb_input_device_id_txcb_input_remove_master_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_remove_master_trem*: cintindex*: cintxcb_input_attach_slave_t* {.bycopy.} = object`type`*: uint16len*: uint16deviceid*: xcb_input_device_id_tmaster*: xcb_input_device_id_txcb_input_attach_slave_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_attach_slave_trem*: cintindex*: cintxcb_input_detach_slave_t* {.bycopy.} = object`type`*: uint16len*: uint16deviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_detach_slave_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_detach_slave_trem*: cintindex*: cintxcb_input_hierarchy_change_t* {.bycopy.} = object`type`*: uint16len*: uint16xcb_input_hierarchy_change_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_hierarchy_change_trem*: cintindex*: cintxcb_input_xi_change_hierarchy_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16num_changes*: uint8pad0*: array[3, uint8]xcb_input_xi_set_client_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_get_client_pointer_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_get_client_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_input_xi_get_client_pointer_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32set*: uint8pad1*: uint8deviceid*: xcb_input_device_id_tpad2*: array[20, uint8]xcb_input_xi_event_mask_t* = enumXCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED = 2,XCB_INPUT_XI_EVENT_MASK_KEY_PRESS = 4, XCB_INPUT_XI_EVENT_MASK_KEY_RELEASE = 8,XCB_INPUT_XI_EVENT_MASK_BUTTON_PRESS = 16,XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE = 32,XCB_INPUT_XI_EVENT_MASK_MOTION = 64, XCB_INPUT_XI_EVENT_MASK_ENTER = 128,XCB_INPUT_XI_EVENT_MASK_LEAVE = 256, XCB_INPUT_XI_EVENT_MASK_FOCUS_IN = 512,XCB_INPUT_XI_EVENT_MASK_FOCUS_OUT = 1024,XCB_INPUT_XI_EVENT_MASK_HIERARCHY = 2048,XCB_INPUT_XI_EVENT_MASK_PROPERTY = 4096,XCB_INPUT_XI_EVENT_MASK_RAW_KEY_PRESS = 8192,XCB_INPUT_XI_EVENT_MASK_RAW_KEY_RELEASE = 16384,XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_PRESS = 32768,XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_RELEASE = 65536,XCB_INPUT_XI_EVENT_MASK_RAW_MOTION = 131072,XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN = 262144,XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE = 524288,XCB_INPUT_XI_EVENT_MASK_TOUCH_END = 1048576,XCB_INPUT_XI_EVENT_MASK_TOUCH_OWNERSHIP = 2097152,XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_BEGIN = 4194304,XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_UPDATE = 8388608,XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_END = 16777216,XCB_INPUT_XI_EVENT_MASK_BARRIER_HIT = 33554432,XCB_INPUT_XI_EVENT_MASK_BARRIER_LEAVE = 67108864xcb_input_event_mask_t* {.bycopy.} = objectdeviceid*: xcb_input_device_id_tmask_len*: uint16xcb_input_event_mask_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_event_mask_trem*: cintindex*: cintxcb_input_xi_select_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tnum_mask*: uint16pad0*: array[2, uint8]xcb_input_xi_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint16minor_version*: uint16xcb_input_xi_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint16minor_version*: uint16pad1*: array[20, uint8]xcb_input_device_class_type_t* = enumXCB_INPUT_DEVICE_CLASS_TYPE_KEY = 0, XCB_INPUT_DEVICE_CLASS_TYPE_BUTTON = 1,XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR = 2,XCB_INPUT_DEVICE_CLASS_TYPE_SCROLL = 3, XCB_INPUT_DEVICE_CLASS_TYPE_TOUCH = 8xcb_input_device_type_t* = enumXCB_INPUT_DEVICE_TYPE_MASTER_POINTER = 1,XCB_INPUT_DEVICE_TYPE_MASTER_KEYBOARD = 2,XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER = 3,XCB_INPUT_DEVICE_TYPE_SLAVE_KEYBOARD = 4,XCB_INPUT_DEVICE_TYPE_FLOATING_SLAVE = 5xcb_input_scroll_flags_t* = enumXCB_INPUT_SCROLL_FLAGS_NO_EMULATION = 1, XCB_INPUT_SCROLL_FLAGS_PREFERRED = 2xcb_input_scroll_type_t* = enumXCB_INPUT_SCROLL_TYPE_VERTICAL = 1, XCB_INPUT_SCROLL_TYPE_HORIZONTAL = 2xcb_input_touch_mode_t* = enumXCB_INPUT_TOUCH_MODE_DIRECT = 1, XCB_INPUT_TOUCH_MODE_DEPENDENT = 2xcb_input_button_class_t* {.bycopy.} = object`type`*: uint16len*: uint16sourceid*: xcb_input_device_id_tnum_buttons*: uint16xcb_input_button_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_button_class_trem*: cintindex*: cintxcb_input_key_class_t* {.bycopy.} = object`type`*: uint16len*: uint16sourceid*: xcb_input_device_id_tnum_keys*: uint16xcb_input_key_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_key_class_trem*: cintindex*: cintxcb_input_scroll_class_t* {.bycopy.} = object`type`*: uint16len*: uint16sourceid*: xcb_input_device_id_tnumber*: uint16scroll_type*: uint16pad0*: array[2, uint8]flags*: uint32increment*: xcb_input_fp3232_txcb_input_scroll_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_scroll_class_trem*: cintindex*: cintxcb_input_touch_class_t* {.bycopy.} = object`type`*: uint16len*: uint16sourceid*: xcb_input_device_id_tmode*: uint8num_touches*: uint8xcb_input_touch_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_touch_class_trem*: cintindex*: cintxcb_input_valuator_class_t* {.bycopy.} = object`type`*: uint16len*: uint16sourceid*: xcb_input_device_id_tnumber*: uint16label*: xcb_atom_tmin*: xcb_input_fp3232_tmax*: xcb_input_fp3232_tvalue*: xcb_input_fp3232_tresolution*: uint32mode*: uint8pad0*: array[3, uint8]xcb_input_valuator_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_valuator_class_trem*: cintindex*: cintxcb_input_device_class_t* {.bycopy.} = object`type`*: uint16len*: uint16sourceid*: xcb_input_device_id_txcb_input_device_class_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_device_class_trem*: cintindex*: cintxcb_input_xi_device_info_t* {.bycopy.} = objectdeviceid*: xcb_input_device_id_t`type`*: uint16attachment*: xcb_input_device_id_tnum_classes*: uint16name_len*: uint16enabled*: uint8pad0*: uint8xcb_input_xi_device_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_xi_device_info_trem*: cintindex*: cintxcb_input_xi_query_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_query_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_query_device_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_infos*: uint16pad1*: array[22, uint8]xcb_input_xi_set_focus_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_ttime*: xcb_timestamp_tdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_get_focus_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_get_focus_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_get_focus_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32focus*: xcb_window_tpad1*: array[20, uint8]xcb_input_grab_owner_t* = enumXCB_INPUT_GRAB_OWNER_NO_OWNER = 0, XCB_INPUT_GRAB_OWNER_OWNER = 1xcb_input_xi_grab_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_grab_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_ttime*: xcb_timestamp_tcursor*: xcb_cursor_tdeviceid*: xcb_input_device_id_tmode*: uint8paired_device_mode*: uint8owner_events*: uint8pad0*: uint8mask_len*: uint16xcb_input_xi_grab_device_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32status*: uint8pad1*: array[23, uint8]xcb_input_xi_ungrab_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16time*: xcb_timestamp_tdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_event_mode_t* = enumXCB_INPUT_EVENT_MODE_ASYNC_DEVICE = 0, XCB_INPUT_EVENT_MODE_SYNC_DEVICE = 1,XCB_INPUT_EVENT_MODE_REPLAY_DEVICE = 2,XCB_INPUT_EVENT_MODE_ASYNC_PAIRED_DEVICE = 3,XCB_INPUT_EVENT_MODE_ASYNC_PAIR = 4, XCB_INPUT_EVENT_MODE_SYNC_PAIR = 5,XCB_INPUT_EVENT_MODE_ACCEPT_TOUCH = 6, XCB_INPUT_EVENT_MODE_REJECT_TOUCH = 7xcb_input_xi_allow_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16time*: xcb_timestamp_tdeviceid*: xcb_input_device_id_tevent_mode*: uint8pad0*: uint8touchid*: uint32grab_window*: xcb_window_txcb_input_grab_mode_22_t* = enumXCB_INPUT_GRAB_MODE_22_SYNC = 0, XCB_INPUT_GRAB_MODE_22_ASYNC = 1,XCB_INPUT_GRAB_MODE_22_TOUCH = 2xcb_input_grab_type_t* = enumXCB_INPUT_GRAB_TYPE_BUTTON = 0, XCB_INPUT_GRAB_TYPE_KEYCODE = 1,XCB_INPUT_GRAB_TYPE_ENTER = 2, XCB_INPUT_GRAB_TYPE_FOCUS_IN = 3,XCB_INPUT_GRAB_TYPE_TOUCH_BEGIN = 4xcb_input_modifier_mask_t* = enumXCB_INPUT_MODIFIER_MASK_ANY = 2147483648'i64xcb_input_grab_modifier_info_t* {.bycopy.} = objectmodifiers*: uint32status*: uint8pad0*: array[3, uint8]xcb_input_grab_modifier_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_grab_modifier_info_trem*: cintindex*: cintxcb_input_xi_passive_grab_device_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_passive_grab_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16time*: xcb_timestamp_tgrab_window*: xcb_window_tcursor*: xcb_cursor_tdetail*: uint32deviceid*: xcb_input_device_id_tnum_modifiers*: uint16mask_len*: uint16grab_type*: uint8grab_mode*: uint8paired_device_mode*: uint8owner_events*: uint8pad0*: array[2, uint8]xcb_input_xi_passive_grab_device_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_modifiers*: uint16pad1*: array[22, uint8]xcb_input_xi_passive_ungrab_device_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16grab_window*: xcb_window_tdetail*: uint32deviceid*: xcb_input_device_id_tnum_modifiers*: uint16grab_type*: uint8pad0*: array[3, uint8]xcb_input_xi_list_properties_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_list_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceid*: xcb_input_device_id_tpad0*: array[2, uint8]xcb_input_xi_list_properties_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_properties*: uint16pad1*: array[22, uint8]xcb_input_xi_change_property_items_t* {.bycopy.} = objectdata8*: ptr uint8data16*: ptr uint16data32*: ptr uint32xcb_input_xi_change_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceid*: xcb_input_device_id_tmode*: uint8format*: uint8property*: xcb_atom_t`type`*: xcb_atom_tnum_items*: uint32xcb_input_xi_delete_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceid*: xcb_input_device_id_tpad0*: array[2, uint8]property*: xcb_atom_txcb_input_xi_get_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_get_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceid*: xcb_input_device_id_tx_delete*: uint8pad0*: uint8property*: xcb_atom_t`type`*: xcb_atom_toffset*: uint32len*: uint32xcb_input_xi_get_property_items_t* {.bycopy.} = objectdata8*: ptr uint8data16*: ptr uint16data32*: ptr uint32xcb_input_xi_get_property_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32`type`*: xcb_atom_tbytes_after*: uint32num_items*: uint32format*: uint8pad1*: array[11, uint8]xcb_input_xi_get_selected_events_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_input_xi_get_selected_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_input_xi_get_selected_events_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_masks*: uint16pad1*: array[22, uint8]xcb_input_barrier_release_pointer_info_t* {.bycopy.} = objectdeviceid*: xcb_input_device_id_tpad0*: array[2, uint8]barrier*: xcb_xfixes_barrier_teventid*: uint32xcb_input_barrier_release_pointer_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_barrier_release_pointer_info_trem*: cintindex*: cintxcb_input_xi_barrier_release_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16num_barriers*: uint32xcb_input_device_valuator_event_t* {.bycopy.} = objectresponse_type*: uint8device_id*: uint8sequence*: uint16device_state*: uint16num_valuators*: uint8first_valuator*: uint8valuators*: array[6, int32]xcb_input_more_events_mask_t* = enumXCB_INPUT_MORE_EVENTS_MASK_MORE_EVENTS = 128xcb_input_device_key_press_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16time*: xcb_timestamp_troot*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16event_x*: int16event_y*: int16state*: uint16same_screen*: uint8device_id*: uint8xcb_input_device_key_release_event_t* = xcb_input_device_key_press_event_txcb_input_device_button_press_event_t* = xcb_input_device_key_press_event_txcb_input_device_button_release_event_t* = xcb_input_device_key_press_event_txcb_input_device_motion_notify_event_t* = xcb_input_device_key_press_event_txcb_input_device_focus_in_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16time*: xcb_timestamp_twindow*: xcb_window_tmode*: uint8device_id*: uint8pad0*: array[18, uint8]xcb_input_device_focus_out_event_t* = xcb_input_device_focus_in_event_txcb_input_proximity_in_event_t* = xcb_input_device_key_press_event_txcb_input_proximity_out_event_t* = xcb_input_device_key_press_event_txcb_input_classes_reported_mask_t* = enumXCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_KEYS = 1,XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_BUTTONS = 2,XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_VALUATORS = 4,XCB_INPUT_CLASSES_REPORTED_MASK_DEVICE_MODE_ABSOLUTE = 64,XCB_INPUT_CLASSES_REPORTED_MASK_OUT_OF_PROXIMITY = 128xcb_input_device_state_notify_event_t* {.bycopy.} = objectresponse_type*: uint8device_id*: uint8sequence*: uint16time*: xcb_timestamp_tnum_keys*: uint8num_buttons*: uint8num_valuators*: uint8classes_reported*: uint8buttons*: array[4, uint8]keys*: array[4, uint8]valuators*: array[3, uint32]xcb_input_device_mapping_notify_event_t* {.bycopy.} = objectresponse_type*: uint8device_id*: uint8sequence*: uint16request*: uint8first_keycode*: xcb_input_key_code_tcount*: uint8pad0*: uint8time*: xcb_timestamp_tpad1*: array[20, uint8]xcb_input_change_device_t* = enumXCB_INPUT_CHANGE_DEVICE_NEW_POINTER = 0,XCB_INPUT_CHANGE_DEVICE_NEW_KEYBOARD = 1xcb_input_change_device_notify_event_t* {.bycopy.} = objectresponse_type*: uint8device_id*: uint8sequence*: uint16time*: xcb_timestamp_trequest*: uint8pad0*: array[23, uint8]xcb_input_device_key_state_notify_event_t* {.bycopy.} = objectresponse_type*: uint8device_id*: uint8sequence*: uint16keys*: array[28, uint8]xcb_input_device_button_state_notify_event_t* {.bycopy.} = objectresponse_type*: uint8device_id*: uint8sequence*: uint16buttons*: array[28, uint8]xcb_input_device_change_t* = enumXCB_INPUT_DEVICE_CHANGE_ADDED = 0, XCB_INPUT_DEVICE_CHANGE_REMOVED = 1,XCB_INPUT_DEVICE_CHANGE_ENABLED = 2, XCB_INPUT_DEVICE_CHANGE_DISABLED = 3,XCB_INPUT_DEVICE_CHANGE_UNRECOVERABLE = 4,XCB_INPUT_DEVICE_CHANGE_CONTROL_CHANGED = 5xcb_input_device_presence_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16time*: xcb_timestamp_tdevchange*: uint8device_id*: uint8control*: uint16pad1*: array[20, uint8]xcb_input_device_property_notify_event_t* {.bycopy.} = objectresponse_type*: uint8state*: uint8sequence*: uint16time*: xcb_timestamp_tproperty*: xcb_atom_tpad0*: array[19, uint8]device_id*: uint8xcb_input_change_reason_t* = enumXCB_INPUT_CHANGE_REASON_SLAVE_SWITCH = 1,XCB_INPUT_CHANGE_REASON_DEVICE_CHANGE = 2xcb_input_device_changed_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tnum_classes*: uint16sourceid*: xcb_input_device_id_treason*: uint8pad0*: array[11, uint8]full_sequence*: uint32xcb_input_key_event_flags_t* = enumXCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT = 65536xcb_input_key_press_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tdetail*: uint32root*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_tfull_sequence*: uint32root_x*: xcb_input_fp1616_troot_y*: xcb_input_fp1616_tevent_x*: xcb_input_fp1616_tevent_y*: xcb_input_fp1616_tbuttons_len*: uint16valuators_len*: uint16sourceid*: xcb_input_device_id_tpad0*: array[2, uint8]flags*: uint32mods*: xcb_input_modifier_info_tgroup*: xcb_input_group_info_txcb_input_key_release_event_t* = xcb_input_key_press_event_txcb_input_pointer_event_flags_t* = enumXCB_INPUT_POINTER_EVENT_FLAGS_POINTER_EMULATED = 65536xcb_input_button_press_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tdetail*: uint32root*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_tfull_sequence*: uint32root_x*: xcb_input_fp1616_troot_y*: xcb_input_fp1616_tevent_x*: xcb_input_fp1616_tevent_y*: xcb_input_fp1616_tbuttons_len*: uint16valuators_len*: uint16sourceid*: xcb_input_device_id_tpad0*: array[2, uint8]flags*: uint32mods*: xcb_input_modifier_info_tgroup*: xcb_input_group_info_txcb_input_button_release_event_t* = xcb_input_button_press_event_txcb_input_motion_event_t* = xcb_input_button_press_event_txcb_input_notify_mode_t* = enumXCB_INPUT_NOTIFY_MODE_NORMAL = 0, XCB_INPUT_NOTIFY_MODE_GRAB = 1,XCB_INPUT_NOTIFY_MODE_UNGRAB = 2, XCB_INPUT_NOTIFY_MODE_WHILE_GRABBED = 3,XCB_INPUT_NOTIFY_MODE_PASSIVE_GRAB = 4,XCB_INPUT_NOTIFY_MODE_PASSIVE_UNGRAB = 5xcb_input_notify_detail_t* = enumXCB_INPUT_NOTIFY_DETAIL_ANCESTOR = 0, XCB_INPUT_NOTIFY_DETAIL_VIRTUAL = 1,XCB_INPUT_NOTIFY_DETAIL_INFERIOR = 2, XCB_INPUT_NOTIFY_DETAIL_NONLINEAR = 3,XCB_INPUT_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,XCB_INPUT_NOTIFY_DETAIL_POINTER = 5, XCB_INPUT_NOTIFY_DETAIL_POINTER_ROOT = 6,XCB_INPUT_NOTIFY_DETAIL_NONE = 7xcb_input_enter_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tsourceid*: xcb_input_device_id_tmode*: uint8detail*: uint8root*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_tfull_sequence*: uint32root_x*: xcb_input_fp1616_troot_y*: xcb_input_fp1616_tevent_x*: xcb_input_fp1616_tevent_y*: xcb_input_fp1616_tsame_screen*: uint8focus*: uint8buttons_len*: uint16mods*: xcb_input_modifier_info_tgroup*: xcb_input_group_info_txcb_input_leave_event_t* = xcb_input_enter_event_txcb_input_focus_in_event_t* = xcb_input_enter_event_txcb_input_focus_out_event_t* = xcb_input_enter_event_txcb_input_hierarchy_mask_t* = enumXCB_INPUT_HIERARCHY_MASK_MASTER_ADDED = 1,XCB_INPUT_HIERARCHY_MASK_MASTER_REMOVED = 2,XCB_INPUT_HIERARCHY_MASK_SLAVE_ADDED = 4,XCB_INPUT_HIERARCHY_MASK_SLAVE_REMOVED = 8,XCB_INPUT_HIERARCHY_MASK_SLAVE_ATTACHED = 16,XCB_INPUT_HIERARCHY_MASK_SLAVE_DETACHED = 32,XCB_INPUT_HIERARCHY_MASK_DEVICE_ENABLED = 64,XCB_INPUT_HIERARCHY_MASK_DEVICE_DISABLED = 128xcb_input_hierarchy_info_t* {.bycopy.} = objectdeviceid*: xcb_input_device_id_tattachment*: xcb_input_device_id_t`type`*: uint8enabled*: uint8pad0*: array[2, uint8]flags*: uint32xcb_input_hierarchy_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_hierarchy_info_trem*: cintindex*: cintxcb_input_hierarchy_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tflags*: uint32num_infos*: uint16pad0*: array[10, uint8]full_sequence*: uint32xcb_input_property_flag_t* = enumXCB_INPUT_PROPERTY_FLAG_DELETED = 0, XCB_INPUT_PROPERTY_FLAG_CREATED = 1,XCB_INPUT_PROPERTY_FLAG_MODIFIED = 2xcb_input_property_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tproperty*: xcb_atom_twhat*: uint8pad0*: array[11, uint8]full_sequence*: uint32xcb_input_raw_key_press_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tdetail*: uint32sourceid*: xcb_input_device_id_tvaluators_len*: uint16flags*: uint32pad0*: array[4, uint8]full_sequence*: uint32xcb_input_raw_key_release_event_t* = xcb_input_raw_key_press_event_txcb_input_raw_button_press_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tdetail*: uint32sourceid*: xcb_input_device_id_tvaluators_len*: uint16flags*: uint32pad0*: array[4, uint8]full_sequence*: uint32xcb_input_raw_button_release_event_t* = xcb_input_raw_button_press_event_txcb_input_raw_motion_event_t* = xcb_input_raw_button_press_event_txcb_input_touch_event_flags_t* = enumXCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_PENDING_END = 65536,XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_EMULATING_POINTER = 131072xcb_input_touch_begin_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tdetail*: uint32root*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_tfull_sequence*: uint32root_x*: xcb_input_fp1616_troot_y*: xcb_input_fp1616_tevent_x*: xcb_input_fp1616_tevent_y*: xcb_input_fp1616_tbuttons_len*: uint16valuators_len*: uint16sourceid*: xcb_input_device_id_tpad0*: array[2, uint8]flags*: uint32mods*: xcb_input_modifier_info_tgroup*: xcb_input_group_info_txcb_input_touch_update_event_t* = xcb_input_touch_begin_event_txcb_input_touch_end_event_t* = xcb_input_touch_begin_event_txcb_input_touch_ownership_flags_t* = enumXCB_INPUT_TOUCH_OWNERSHIP_FLAGS_NONE = 0xcb_input_touch_ownership_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_ttouchid*: uint32root*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_tfull_sequence*: uint32sourceid*: xcb_input_device_id_tpad0*: array[2, uint8]flags*: uint32pad1*: array[8, uint8]xcb_input_raw_touch_begin_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_tdetail*: uint32sourceid*: xcb_input_device_id_tvaluators_len*: uint16flags*: uint32pad0*: array[4, uint8]full_sequence*: uint32xcb_input_raw_touch_update_event_t* = xcb_input_raw_touch_begin_event_txcb_input_raw_touch_end_event_t* = xcb_input_raw_touch_begin_event_txcb_input_barrier_flags_t* = enumXCB_INPUT_BARRIER_FLAGS_POINTER_RELEASED = 1,XCB_INPUT_BARRIER_FLAGS_DEVICE_IS_GRABBED = 2xcb_input_barrier_hit_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16deviceid*: xcb_input_device_id_ttime*: xcb_timestamp_teventid*: uint32root*: xcb_window_tevent*: xcb_window_tbarrier*: xcb_xfixes_barrier_tfull_sequence*: uint32dtime*: uint32flags*: uint32sourceid*: xcb_input_device_id_tpad0*: array[2, uint8]root_x*: xcb_input_fp1616_troot_y*: xcb_input_fp1616_tdx*: xcb_input_fp3232_tdy*: xcb_input_fp3232_txcb_input_barrier_leave_event_t* = xcb_input_barrier_hit_event_txcb_input_event_for_send_t* {.bycopy, union.} = objectdevice_valuator*: xcb_input_device_valuator_event_tdevice_key_press*: xcb_input_device_key_press_event_tdevice_key_release*: xcb_input_device_key_release_event_tdevice_button_press*: xcb_input_device_button_press_event_tdevice_button_release*: xcb_input_device_button_release_event_tdevice_motion_notify*: xcb_input_device_motion_notify_event_tdevice_focus_in*: xcb_input_device_focus_in_event_tdevice_focus_out*: xcb_input_device_focus_out_event_tproximity_in*: xcb_input_proximity_in_event_tproximity_out*: xcb_input_proximity_out_event_tdevice_state_notify*: xcb_input_device_state_notify_event_tdevice_mapping_notify*: xcb_input_device_mapping_notify_event_tchange_device_notify*: xcb_input_change_device_notify_event_tdevice_key_state_notify*: xcb_input_device_key_state_notify_event_tdevice_button_state_notify*: xcb_input_device_button_state_notify_event_tdevice_presence_notify*: xcb_input_device_presence_notify_event_tevent_header*: xcb_raw_generic_event_txcb_input_event_for_send_iterator_t* {.bycopy.} = objectdata*: ptr xcb_input_event_for_send_trem*: cintindex*: cintxcb_input_send_extension_event_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16destination*: xcb_window_tdevice_id*: uint8propagate*: uint8num_classes*: uint16num_events*: uint8pad0*: array[3, uint8]xcb_input_device_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_input_event_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_input_mode_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_input_device_busy_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_input_class_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_xkb_const_t* = enumXCB_XKB_CONST_KEY_NAME_LENGTH = 4, XCB_XKB_CONST_PER_KEY_BIT_ARRAY_SIZE = 32,XCB_XKB_CONST_MAX_LEGAL_KEY_CODE = 255xcb_xkb_event_type_t* = enumXCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY = 1,XCB_XKB_EVENT_TYPE_MAP_NOTIFY = 2,XCB_XKB_EVENT_TYPE_STATE_NOTIFY = 4,XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY = 8,XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY = 16,XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY = 32,XCB_XKB_EVENT_TYPE_NAMES_NOTIFY = 64,XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY = 128,XCB_XKB_EVENT_TYPE_BELL_NOTIFY = 256,XCB_XKB_EVENT_TYPE_ACTION_MESSAGE = 512,XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY = 1024,XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY = 2048xcb_xkb_nkn_detail_t* = enumXCB_XKB_NKN_DETAIL_KEYCODES = 1, XCB_XKB_NKN_DETAIL_GEOMETRY = 2,XCB_XKB_NKN_DETAIL_DEVICE_ID = 4xcb_xkb_axn_detail_t* = enumXCB_XKB_AXN_DETAIL_SK_PRESS = 1, XCB_XKB_AXN_DETAIL_SK_ACCEPT = 2,XCB_XKB_AXN_DETAIL_SK_REJECT = 4, XCB_XKB_AXN_DETAIL_SK_RELEASE = 8,XCB_XKB_AXN_DETAIL_BK_ACCEPT = 16, XCB_XKB_AXN_DETAIL_BK_REJECT = 32,XCB_XKB_AXN_DETAIL_AXK_WARNING = 64xcb_xkb_map_part_t* = enumXCB_XKB_MAP_PART_KEY_TYPES = 1,XCB_XKB_MAP_PART_KEY_SYMS = 2,XCB_XKB_MAP_PART_MODIFIER_MAP = 4,XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS = 8,XCB_XKB_MAP_PART_KEY_ACTIONS = 16,XCB_XKB_MAP_PART_KEY_BEHAVIORS = 32,XCB_XKB_MAP_PART_VIRTUAL_MODS = 64,XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP = 128xcb_xkb_set_map_flags_t* = enumXCB_XKB_SET_MAP_FLAGS_RESIZE_TYPES = 1,XCB_XKB_SET_MAP_FLAGS_RECOMPUTE_ACTIONS = 2xcb_xkb_state_part_t* = enumXCB_XKB_STATE_PART_MODIFIER_STATE = 1, XCB_XKB_STATE_PART_MODIFIER_BASE = 2,XCB_XKB_STATE_PART_MODIFIER_LATCH = 4, XCB_XKB_STATE_PART_MODIFIER_LOCK = 8,XCB_XKB_STATE_PART_GROUP_STATE = 16, XCB_XKB_STATE_PART_GROUP_BASE = 32,XCB_XKB_STATE_PART_GROUP_LATCH = 64, XCB_XKB_STATE_PART_GROUP_LOCK = 128,XCB_XKB_STATE_PART_COMPAT_STATE = 256, XCB_XKB_STATE_PART_GRAB_MODS = 512,XCB_XKB_STATE_PART_COMPAT_GRAB_MODS = 1024,XCB_XKB_STATE_PART_LOOKUP_MODS = 2048,XCB_XKB_STATE_PART_COMPAT_LOOKUP_MODS = 4096,XCB_XKB_STATE_PART_POINTER_BUTTONS = 8192xcb_xkb_bool_ctrl_t* = enumXCB_XKB_BOOL_CTRL_REPEAT_KEYS = 1, XCB_XKB_BOOL_CTRL_SLOW_KEYS = 2,XCB_XKB_BOOL_CTRL_BOUNCE_KEYS = 4, XCB_XKB_BOOL_CTRL_STICKY_KEYS = 8,XCB_XKB_BOOL_CTRL_MOUSE_KEYS = 16, XCB_XKB_BOOL_CTRL_MOUSE_KEYS_ACCEL = 32,XCB_XKB_BOOL_CTRL_ACCESS_X_KEYS = 64,XCB_XKB_BOOL_CTRL_ACCESS_X_TIMEOUT_MASK = 128,XCB_XKB_BOOL_CTRL_ACCESS_X_FEEDBACK_MASK = 256,XCB_XKB_BOOL_CTRL_AUDIBLE_BELL_MASK = 512,XCB_XKB_BOOL_CTRL_OVERLAY_1_MASK = 1024,XCB_XKB_BOOL_CTRL_OVERLAY_2_MASK = 2048,XCB_XKB_BOOL_CTRL_IGNORE_GROUP_LOCK_MASK = 4096xcb_xkb_control_t* = enumXCB_XKB_CONTROL_GROUPS_WRAP = 134217728,XCB_XKB_CONTROL_INTERNAL_MODS = 268435456,XCB_XKB_CONTROL_IGNORE_LOCK_MODS = 536870912,XCB_XKB_CONTROL_PER_KEY_REPEAT = 1073741824,XCB_XKB_CONTROL_CONTROLS_ENABLED = 2147483648'i64xcb_xkb_ax_option_t* = enumXCB_XKB_AX_OPTION_SK_PRESS_FB = 1, XCB_XKB_AX_OPTION_SK_ACCEPT_FB = 2,XCB_XKB_AX_OPTION_FEATURE_FB = 4, XCB_XKB_AX_OPTION_SLOW_WARN_FB = 8,XCB_XKB_AX_OPTION_INDICATOR_FB = 16, XCB_XKB_AX_OPTION_STICKY_KEYS_FB = 32,XCB_XKB_AX_OPTION_TWO_KEYS = 64, XCB_XKB_AX_OPTION_LATCH_TO_LOCK = 128,XCB_XKB_AX_OPTION_SK_RELEASE_FB = 256, XCB_XKB_AX_OPTION_SK_REJECT_FB = 512,XCB_XKB_AX_OPTION_BK_REJECT_FB = 1024, XCB_XKB_AX_OPTION_DUMB_BELL = 2048xcb_xkb_device_spec_t* = uint16xcb_xkb_device_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_device_spec_trem*: cintindex*: cintxcb_xkb_led_class_result_t* = enumXCB_XKB_LED_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0,XCB_XKB_LED_CLASS_RESULT_LED_FEEDBACK_CLASS = 4xcb_xkb_led_class_t* = enumXCB_XKB_LED_CLASS_KBD_FEEDBACK_CLASS = 0,XCB_XKB_LED_CLASS_LED_FEEDBACK_CLASS = 4,XCB_XKB_LED_CLASS_DFLT_XI_CLASS = 768, XCB_XKB_LED_CLASS_ALL_XI_CLASSES = 1280xcb_xkb_led_class_spec_t* = uint16xcb_xkb_led_class_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_led_class_spec_trem*: cintindex*: cintxcb_xkb_bell_class_result_t* = enumXCB_XKB_BELL_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0,XCB_XKB_BELL_CLASS_RESULT_BELL_FEEDBACK_CLASS = 5xcb_xkb_bell_class_t* = enumXCB_XKB_BELL_CLASS_KBD_FEEDBACK_CLASS = 0,XCB_XKB_BELL_CLASS_BELL_FEEDBACK_CLASS = 5,XCB_XKB_BELL_CLASS_DFLT_XI_CLASS = 768xcb_xkb_bell_class_spec_t* = uint16xcb_xkb_bell_class_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_bell_class_spec_trem*: cintindex*: cintxcb_xkb_id_t* = enumXCB_XKB_ID_USE_CORE_KBD = 256,XCB_XKB_ID_USE_CORE_PTR = 512,XCB_XKB_ID_DFLT_XI_CLASS = 768,XCB_XKB_ID_DFLT_XI_ID = 1024,XCB_XKB_ID_ALL_XI_CLASS = 1280,XCB_XKB_ID_ALL_XI_ID = 1536,XCB_XKB_ID_XI_NONE = 65280xcb_xkb_id_spec_t* = uint16xcb_xkb_id_spec_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_id_spec_trem*: cintindex*: cintxcb_xkb_group_t* = enumXCB_XKB_GROUP_1 = 0, XCB_XKB_GROUP_2 = 1, XCB_XKB_GROUP_3 = 2, XCB_XKB_GROUP_4 = 3xcb_xkb_groups_t* = enumXCB_XKB_GROUPS_ANY = 254, XCB_XKB_GROUPS_ALL = 255xcb_xkb_set_of_group_t* = enumXCB_XKB_SET_OF_GROUP_GROUP_1 = 1, XCB_XKB_SET_OF_GROUP_GROUP_2 = 2,XCB_XKB_SET_OF_GROUP_GROUP_3 = 4, XCB_XKB_SET_OF_GROUP_GROUP_4 = 8xcb_xkb_set_of_groups_t* = enumXCB_XKB_SET_OF_GROUPS_ANY = 128xcb_xkb_groups_wrap_t* = enumXCB_XKB_GROUPS_WRAP_WRAP_INTO_RANGE = 0,XCB_XKB_GROUPS_WRAP_CLAMP_INTO_RANGE = 64,XCB_XKB_GROUPS_WRAP_REDIRECT_INTO_RANGE = 128xcb_xkb_v_mods_high_t* = enumXCB_XKB_V_MODS_HIGH_8 = 1, XCB_XKB_V_MODS_HIGH_9 = 2, XCB_XKB_V_MODS_HIGH_10 = 4,XCB_XKB_V_MODS_HIGH_11 = 8, XCB_XKB_V_MODS_HIGH_12 = 16,XCB_XKB_V_MODS_HIGH_13 = 32, XCB_XKB_V_MODS_HIGH_14 = 64,XCB_XKB_V_MODS_HIGH_15 = 128xcb_xkb_v_mods_low_t* = enumXCB_XKB_V_MODS_LOW_0 = 1, XCB_XKB_V_MODS_LOW_1 = 2, XCB_XKB_V_MODS_LOW_2 = 4,XCB_XKB_V_MODS_LOW_3 = 8, XCB_XKB_V_MODS_LOW_4 = 16, XCB_XKB_V_MODS_LOW_5 = 32,XCB_XKB_V_MODS_LOW_6 = 64, XCB_XKB_V_MODS_LOW_7 = 128xcb_xkb_v_mod_t* = enumXCB_XKB_V_MOD_0 = 1, XCB_XKB_V_MOD_1 = 2, XCB_XKB_V_MOD_2 = 4, XCB_XKB_V_MOD_3 = 8,XCB_XKB_V_MOD_4 = 16, XCB_XKB_V_MOD_5 = 32, XCB_XKB_V_MOD_6 = 64,XCB_XKB_V_MOD_7 = 128, XCB_XKB_V_MOD_8 = 256, XCB_XKB_V_MOD_9 = 512,XCB_XKB_V_MOD_10 = 1024, XCB_XKB_V_MOD_11 = 2048, XCB_XKB_V_MOD_12 = 4096,XCB_XKB_V_MOD_13 = 8192, XCB_XKB_V_MOD_14 = 16384, XCB_XKB_V_MOD_15 = 32768xcb_xkb_explicit_t* = enumXCB_XKB_EXPLICIT_KEY_TYPE_1 = 1, XCB_XKB_EXPLICIT_KEY_TYPE_2 = 2,XCB_XKB_EXPLICIT_KEY_TYPE_3 = 4, XCB_XKB_EXPLICIT_KEY_TYPE_4 = 8,XCB_XKB_EXPLICIT_INTERPRET = 16, XCB_XKB_EXPLICIT_AUTO_REPEAT = 32,XCB_XKB_EXPLICIT_BEHAVIOR = 64, XCB_XKB_EXPLICIT_V_MOD_MAP = 128xcb_xkb_sym_interpret_match_t* = enumXCB_XKB_SYM_INTERPRET_MATCH_NONE_OF = 0,XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF_OR_NONE = 1,XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF = 2, XCB_XKB_SYM_INTERPRET_MATCH_ALL_OF = 3,XCB_XKB_SYM_INTERPRET_MATCH_EXACTLY = 4xcb_xkb_sym_interp_match_t* = enumXCB_XKB_SYM_INTERP_MATCH_OP_MASK = 127,XCB_XKB_SYM_INTERP_MATCH_LEVEL_ONE_ONLY = 128xcb_xkb_im_flag_t* = enumXCB_XKB_IM_FLAG_LED_DRIVES_KB = 32, XCB_XKB_IM_FLAG_NO_AUTOMATIC = 64,XCB_XKB_IM_FLAG_NO_EXPLICIT = 128xcb_xkb_im_mods_which_t* = enumXCB_XKB_IM_MODS_WHICH_USE_BASE = 1, XCB_XKB_IM_MODS_WHICH_USE_LATCHED = 2,XCB_XKB_IM_MODS_WHICH_USE_LOCKED = 4, XCB_XKB_IM_MODS_WHICH_USE_EFFECTIVE = 8,XCB_XKB_IM_MODS_WHICH_USE_COMPAT = 16xcb_xkb_im_groups_which_t* = enumXCB_XKB_IM_GROUPS_WHICH_USE_BASE = 1, XCB_XKB_IM_GROUPS_WHICH_USE_LATCHED = 2,XCB_XKB_IM_GROUPS_WHICH_USE_LOCKED = 4,XCB_XKB_IM_GROUPS_WHICH_USE_EFFECTIVE = 8,XCB_XKB_IM_GROUPS_WHICH_USE_COMPAT = 16xcb_xkb_indicator_map_t* {.bycopy.} = objectflags*: uint8whichGroups*: uint8groups*: uint8whichMods*: uint8mods*: uint8realMods*: uint8vmods*: uint16ctrls*: uint32xcb_xkb_indicator_map_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_indicator_map_trem*: cintindex*: cintxcb_xkb_cm_detail_t* = enumXCB_XKB_CM_DETAIL_SYM_INTERP = 1, XCB_XKB_CM_DETAIL_GROUP_COMPAT = 2xcb_xkb_name_detail_t* = enumXCB_XKB_NAME_DETAIL_KEYCODES = 1, XCB_XKB_NAME_DETAIL_GEOMETRY = 2,XCB_XKB_NAME_DETAIL_SYMBOLS = 4, XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS = 8,XCB_XKB_NAME_DETAIL_TYPES = 16, XCB_XKB_NAME_DETAIL_COMPAT = 32,XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES = 64,XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES = 128,XCB_XKB_NAME_DETAIL_INDICATOR_NAMES = 256, XCB_XKB_NAME_DETAIL_KEY_NAMES = 512,XCB_XKB_NAME_DETAIL_KEY_ALIASES = 1024,XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES = 2048,XCB_XKB_NAME_DETAIL_GROUP_NAMES = 4096, XCB_XKB_NAME_DETAIL_RG_NAMES = 8192xcb_xkb_gbn_detail_t* = enumXCB_XKB_GBN_DETAIL_TYPES = 1, XCB_XKB_GBN_DETAIL_COMPAT_MAP = 2,XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS = 4, XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS = 8,XCB_XKB_GBN_DETAIL_INDICATOR_MAPS = 16, XCB_XKB_GBN_DETAIL_KEY_NAMES = 32,XCB_XKB_GBN_DETAIL_GEOMETRY = 64, XCB_XKB_GBN_DETAIL_OTHER_NAMES = 128xcb_xkb_xi_feature_t* = enumXCB_XKB_XI_FEATURE_KEYBOARDS = 1, XCB_XKB_XI_FEATURE_BUTTON_ACTIONS = 2,XCB_XKB_XI_FEATURE_INDICATOR_NAMES = 4, XCB_XKB_XI_FEATURE_INDICATOR_MAPS = 8,XCB_XKB_XI_FEATURE_INDICATOR_STATE = 16xcb_xkb_per_client_flag_t* = enumXCB_XKB_PER_CLIENT_FLAG_DETECTABLE_AUTO_REPEAT = 1,XCB_XKB_PER_CLIENT_FLAG_GRABS_USE_XKB_STATE = 2,XCB_XKB_PER_CLIENT_FLAG_AUTO_RESET_CONTROLS = 4,XCB_XKB_PER_CLIENT_FLAG_LOOKUP_STATE_WHEN_GRABBED = 8,XCB_XKB_PER_CLIENT_FLAG_SEND_EVENT_USES_XKB_STATE = 16xcb_xkb_mod_def_t* {.bycopy.} = objectmask*: uint8realMods*: uint8vmods*: uint16xcb_xkb_mod_def_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_mod_def_trem*: cintindex*: cintxcb_xkb_key_name_t* {.bycopy.} = objectname*: array[4, char]xcb_xkb_key_name_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_name_trem*: cintindex*: cintxcb_xkb_key_alias_t* {.bycopy.} = objectreal*: array[4, char]alias*: array[4, char]xcb_xkb_key_alias_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_alias_trem*: cintindex*: cintxcb_xkb_counted_string_16_t* {.bycopy.} = objectlength*: uint16xcb_xkb_counted_string_16_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_counted_string_16_trem*: cintindex*: cintxcb_xkb_kt_map_entry_t* {.bycopy.} = objectactive*: uint8mods_mask*: uint8level*: uint8mods_mods*: uint8mods_vmods*: uint16pad0*: array[2, uint8]xcb_xkb_kt_map_entry_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_kt_map_entry_trem*: cintindex*: cintxcb_xkb_key_type_t* {.bycopy.} = objectmods_mask*: uint8mods_mods*: uint8mods_vmods*: uint16numLevels*: uint8nMapEntries*: uint8hasPreserve*: uint8pad0*: uint8xcb_xkb_key_type_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_type_trem*: cintindex*: cintxcb_xkb_key_sym_map_t* {.bycopy.} = objectkt_index*: array[4, uint8]groupInfo*: uint8width*: uint8nSyms*: uint16xcb_xkb_key_sym_map_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_sym_map_trem*: cintindex*: cintxcb_xkb_common_behavior_t* {.bycopy.} = object`type`*: uint8data*: uint8xcb_xkb_common_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_common_behavior_trem*: cintindex*: cintxcb_xkb_default_behavior_t* {.bycopy.} = object`type`*: uint8pad0*: uint8xcb_xkb_default_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_default_behavior_trem*: cintindex*: cintxcb_xkb_lock_behavior_t* {.bycopy.} = object`type`*: uint8pad0*: uint8xcb_xkb_lock_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_lock_behavior_trem*: cintindex*: cintxcb_xkb_radio_group_behavior_t* {.bycopy.} = object`type`*: uint8group*: uint8xcb_xkb_radio_group_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_radio_group_behavior_trem*: cintindex*: cintxcb_xkb_overlay_behavior_t* {.bycopy.} = object`type`*: uint8key*: xcb_keycode_txcb_xkb_overlay_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_overlay_behavior_trem*: cintindex*: cintxcb_xkb_permament_lock_behavior_t* {.bycopy.} = object`type`*: uint8pad0*: uint8xcb_xkb_permament_lock_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_permament_lock_behavior_trem*: cintindex*: cintxcb_xkb_permament_radio_group_behavior_t* {.bycopy.} = object`type`*: uint8group*: uint8xcb_xkb_permament_radio_group_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_permament_radio_group_behavior_trem*: cintindex*: cintxcb_xkb_permament_overlay_behavior_t* {.bycopy.} = object`type`*: uint8key*: xcb_keycode_txcb_xkb_permament_overlay_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_permament_overlay_behavior_trem*: cintindex*: cintxcb_xkb_behavior_t* {.bycopy, union.} = objectcommon*: xcb_xkb_common_behavior_tx_default*: xcb_xkb_default_behavior_tlock*: xcb_xkb_lock_behavior_tradioGroup*: xcb_xkb_radio_group_behavior_toverlay1*: xcb_xkb_overlay_behavior_toverlay2*: xcb_xkb_overlay_behavior_tpermamentLock*: xcb_xkb_permament_lock_behavior_tpermamentRadioGroup*: xcb_xkb_permament_radio_group_behavior_tpermamentOverlay1*: xcb_xkb_permament_overlay_behavior_tpermamentOverlay2*: xcb_xkb_permament_overlay_behavior_t`type`*: uint8xcb_xkb_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_behavior_trem*: cintindex*: cintxcb_xkb_behavior_type_t* = enumXCB_XKB_BEHAVIOR_TYPE_DEFAULT = 0, XCB_XKB_BEHAVIOR_TYPE_LOCK = 1,XCB_XKB_BEHAVIOR_TYPE_RADIO_GROUP = 2, XCB_XKB_BEHAVIOR_TYPE_OVERLAY_1 = 3,XCB_XKB_BEHAVIOR_TYPE_OVERLAY_2 = 4,XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_LOCK = 129,XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_RADIO_GROUP = 130,XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_1 = 131,XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_2 = 132xcb_xkb_set_behavior_t* {.bycopy.} = objectkeycode*: xcb_keycode_tbehavior*: xcb_xkb_behavior_tpad0*: uint8xcb_xkb_set_behavior_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_set_behavior_trem*: cintindex*: cintxcb_xkb_set_explicit_t* {.bycopy.} = objectkeycode*: xcb_keycode_texplicit*: uint8xcb_xkb_set_explicit_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_set_explicit_trem*: cintindex*: cintxcb_xkb_key_mod_map_t* {.bycopy.} = objectkeycode*: xcb_keycode_tmods*: uint8xcb_xkb_key_mod_map_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_mod_map_trem*: cintindex*: cintxcb_xkb_key_v_mod_map_t* {.bycopy.} = objectkeycode*: xcb_keycode_tpad0*: uint8vmods*: uint16xcb_xkb_key_v_mod_map_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_v_mod_map_trem*: cintindex*: cintxcb_xkb_kt_set_map_entry_t* {.bycopy.} = objectlevel*: uint8realMods*: uint8virtualMods*: uint16xcb_xkb_kt_set_map_entry_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_kt_set_map_entry_trem*: cintindex*: cintxcb_xkb_set_key_type_t* {.bycopy.} = objectmask*: uint8realMods*: uint8virtualMods*: uint16numLevels*: uint8nMapEntries*: uint8preserve*: uint8pad0*: uint8xcb_xkb_set_key_type_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_set_key_type_trem*: cintindex*: cintxcb_xkb_string8_t* = charxcb_xkb_string8_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_string8_trem*: cintindex*: cintxcb_xkb_outline_t* {.bycopy.} = objectnPoints*: uint8cornerRadius*: uint8pad0*: array[2, uint8]xcb_xkb_outline_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_outline_trem*: cintindex*: cintxcb_xkb_shape_t* {.bycopy.} = objectname*: xcb_atom_tnOutlines*: uint8primaryNdx*: uint8approxNdx*: uint8pad0*: uint8xcb_xkb_shape_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_shape_trem*: cintindex*: cintxcb_xkb_key_t* {.bycopy.} = objectname*: array[4, xcb_xkb_string8_t]gap*: int16shapeNdx*: uint8colorNdx*: uint8xcb_xkb_key_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_key_trem*: cintindex*: cintxcb_xkb_overlay_key_t* {.bycopy.} = objectover*: array[4, xcb_xkb_string8_t]under*: array[4, xcb_xkb_string8_t]xcb_xkb_overlay_key_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_overlay_key_trem*: cintindex*: cintxcb_xkb_overlay_row_t* {.bycopy.} = objectrowUnder*: uint8nKeys*: uint8pad0*: array[2, uint8]xcb_xkb_overlay_row_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_overlay_row_trem*: cintindex*: cintxcb_xkb_overlay_t* {.bycopy.} = objectname*: xcb_atom_tnRows*: uint8pad0*: array[3, uint8]xcb_xkb_overlay_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_overlay_trem*: cintindex*: cintxcb_xkb_row_t* {.bycopy.} = objecttop*: int16left*: int16nKeys*: uint8vertical*: uint8pad0*: array[2, uint8]xcb_xkb_row_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_row_trem*: cintindex*: cintxcb_xkb_doodad_type_t* = enumXCB_XKB_DOODAD_TYPE_OUTLINE = 1, XCB_XKB_DOODAD_TYPE_SOLID = 2,XCB_XKB_DOODAD_TYPE_TEXT = 3, XCB_XKB_DOODAD_TYPE_INDICATOR = 4,XCB_XKB_DOODAD_TYPE_LOGO = 5xcb_xkb_listing_t* {.bycopy.} = objectflags*: uint16length*: uint16xcb_xkb_listing_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_listing_trem*: cintindex*: cintxcb_xkb_device_led_info_t* {.bycopy.} = objectledClass*: xcb_xkb_led_class_spec_tledID*: xcb_xkb_id_spec_tnamesPresent*: uint32mapsPresent*: uint32physIndicators*: uint32state*: uint32xcb_xkb_device_led_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_device_led_info_trem*: cintindex*: cintxcb_xkb_error_t* = enumXCB_XKB_ERROR_BAD_ID = 253, XCB_XKB_ERROR_BAD_CLASS = 254,XCB_XKB_ERROR_BAD_DEVICE = 255xcb_xkb_keyboard_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16value*: uint32minorOpcode*: uint16majorOpcode*: uint8pad0*: array[21, uint8]xcb_xkb_sa_t* = enumXCB_XKB_SA_CLEAR_LOCKS = 1, XCB_XKB_SA_LATCH_TO_LOCK = 2,XCB_XKB_SA_USE_MOD_MAP_MODS = 4xcb_xkb_sa_type_t* = enumXCB_XKB_SA_TYPE_NO_ACTION = 0, XCB_XKB_SA_TYPE_SET_MODS = 1,XCB_XKB_SA_TYPE_LATCH_MODS = 2, XCB_XKB_SA_TYPE_LOCK_MODS = 3,XCB_XKB_SA_TYPE_SET_GROUP = 4, XCB_XKB_SA_TYPE_LATCH_GROUP = 5,XCB_XKB_SA_TYPE_LOCK_GROUP = 6, XCB_XKB_SA_TYPE_MOVE_PTR = 7,XCB_XKB_SA_TYPE_PTR_BTN = 8, XCB_XKB_SA_TYPE_LOCK_PTR_BTN = 9,XCB_XKB_SA_TYPE_SET_PTR_DFLT = 10, XCB_XKB_SA_TYPE_ISO_LOCK = 11,XCB_XKB_SA_TYPE_TERMINATE = 12, XCB_XKB_SA_TYPE_SWITCH_SCREEN = 13,XCB_XKB_SA_TYPE_SET_CONTROLS = 14, XCB_XKB_SA_TYPE_LOCK_CONTROLS = 15,XCB_XKB_SA_TYPE_ACTION_MESSAGE = 16, XCB_XKB_SA_TYPE_REDIRECT_KEY = 17,XCB_XKB_SA_TYPE_DEVICE_BTN = 18, XCB_XKB_SA_TYPE_LOCK_DEVICE_BTN = 19,XCB_XKB_SA_TYPE_DEVICE_VALUATOR = 20xcb_xkb_sa_no_action_t* {.bycopy.} = object`type`*: uint8pad0*: array[7, uint8]xcb_xkb_sa_no_action_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_no_action_trem*: cintindex*: cintxcb_xkb_sa_set_mods_t* {.bycopy.} = object`type`*: uint8flags*: uint8mask*: uint8realMods*: uint8vmodsHigh*: uint8vmodsLow*: uint8pad0*: array[2, uint8]xcb_xkb_sa_set_mods_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_set_mods_trem*: cintindex*: cintxcb_xkb_sa_latch_mods_t* {.bycopy.} = object`type`*: uint8flags*: uint8mask*: uint8realMods*: uint8vmodsHigh*: uint8vmodsLow*: uint8pad0*: array[2, uint8]xcb_xkb_sa_latch_mods_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_latch_mods_trem*: cintindex*: cintxcb_xkb_sa_lock_mods_t* {.bycopy.} = object`type`*: uint8flags*: uint8mask*: uint8realMods*: uint8vmodsHigh*: uint8vmodsLow*: uint8pad0*: array[2, uint8]xcb_xkb_sa_lock_mods_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_lock_mods_trem*: cintindex*: cintxcb_xkb_sa_set_group_t* {.bycopy.} = object`type`*: uint8flags*: uint8group*: int8pad0*: array[5, uint8]xcb_xkb_sa_set_group_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_set_group_trem*: cintindex*: cintxcb_xkb_sa_latch_group_t* {.bycopy.} = object`type`*: uint8flags*: uint8group*: int8pad0*: array[5, uint8]xcb_xkb_sa_latch_group_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_latch_group_trem*: cintindex*: cintxcb_xkb_sa_lock_group_t* {.bycopy.} = object`type`*: uint8flags*: uint8group*: int8pad0*: array[5, uint8]xcb_xkb_sa_lock_group_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_lock_group_trem*: cintindex*: cintxcb_xkb_sa_move_ptr_flag_t* = enumXCB_XKB_SA_MOVE_PTR_FLAG_NO_ACCELERATION = 1,XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_X = 2,XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_Y = 4xcb_xkb_sa_move_ptr_t* {.bycopy.} = object`type`*: uint8flags*: uint8xHigh*: int8xLow*: uint8yHigh*: int8yLow*: uint8pad0*: array[2, uint8]xcb_xkb_sa_move_ptr_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_move_ptr_trem*: cintindex*: cintxcb_xkb_sa_ptr_btn_t* {.bycopy.} = object`type`*: uint8flags*: uint8count*: uint8button*: uint8pad0*: array[4, uint8]xcb_xkb_sa_ptr_btn_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_ptr_btn_trem*: cintindex*: cintxcb_xkb_sa_lock_ptr_btn_t* {.bycopy.} = object`type`*: uint8flags*: uint8pad0*: uint8button*: uint8pad1*: array[4, uint8]xcb_xkb_sa_lock_ptr_btn_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_lock_ptr_btn_trem*: cintindex*: cintxcb_xkb_sa_set_ptr_dflt_flag_t* = enumXCB_XKB_SA_SET_PTR_DFLT_FLAG_AFFECT_DFLT_BUTTON = 1,XCB_XKB_SA_SET_PTR_DFLT_FLAG_DFLT_BTN_ABSOLUTE = 4xcb_xkb_sa_set_ptr_dflt_t* {.bycopy.} = object`type`*: uint8flags*: uint8affect*: uint8value*: int8pad0*: array[4, uint8]xcb_xkb_sa_set_ptr_dflt_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_set_ptr_dflt_trem*: cintindex*: cintxcb_xkb_sa_iso_lock_flag_t* = enumXCB_XKB_SA_ISO_LOCK_FLAG_NO_LOCK = 1, XCB_XKB_SA_ISO_LOCK_FLAG_NO_UNLOCK = 2,XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODS = 4,XCB_XKB_SA_ISO_LOCK_FLAG_ISO_DFLT_IS_GROUP = 8xcb_xkb_sa_iso_lock_no_affect_t* = enumXCB_XKB_SA_ISO_LOCK_NO_AFFECT_CTRLS = 8,XCB_XKB_SA_ISO_LOCK_NO_AFFECT_PTR = 16,XCB_XKB_SA_ISO_LOCK_NO_AFFECT_GROUP = 32,XCB_XKB_SA_ISO_LOCK_NO_AFFECT_MODS = 64xcb_xkb_sa_iso_lock_t* {.bycopy.} = object`type`*: uint8flags*: uint8mask*: uint8realMods*: uint8group*: int8affect*: uint8vmodsHigh*: uint8vmodsLow*: uint8xcb_xkb_sa_iso_lock_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_iso_lock_trem*: cintindex*: cintxcb_xkb_sa_terminate_t* {.bycopy.} = object`type`*: uint8pad0*: array[7, uint8]xcb_xkb_sa_terminate_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_terminate_trem*: cintindex*: cintxcb_xkb_switch_screen_flag_t* = enumXCB_XKB_SWITCH_SCREEN_FLAG_APPLICATION = 1,XCB_XKB_SWITCH_SCREEN_FLAG_ABSOLUTE = 4xcb_xkb_sa_switch_screen_t* {.bycopy.} = object`type`*: uint8flags*: uint8newScreen*: int8pad0*: array[5, uint8]xcb_xkb_sa_switch_screen_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_switch_screen_trem*: cintindex*: cintxcb_xkb_bool_ctrls_high_t* = enumXCB_XKB_BOOL_CTRLS_HIGH_ACCESS_X_FEEDBACK = 1,XCB_XKB_BOOL_CTRLS_HIGH_AUDIBLE_BELL = 2,XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_1 = 4, XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_2 = 8,XCB_XKB_BOOL_CTRLS_HIGH_IGNORE_GROUP_LOCK = 16xcb_xkb_bool_ctrls_low_t* = enumXCB_XKB_BOOL_CTRLS_LOW_REPEAT_KEYS = 1, XCB_XKB_BOOL_CTRLS_LOW_SLOW_KEYS = 2,XCB_XKB_BOOL_CTRLS_LOW_BOUNCE_KEYS = 4, XCB_XKB_BOOL_CTRLS_LOW_STICKY_KEYS = 8,XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS = 16,XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS_ACCEL = 32,XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_KEYS = 64,XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_TIMEOUT = 128xcb_xkb_sa_set_controls_t* {.bycopy.} = object`type`*: uint8pad0*: array[3, uint8]boolCtrlsHigh*: uint8boolCtrlsLow*: uint8pad1*: array[2, uint8]xcb_xkb_sa_set_controls_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_set_controls_trem*: cintindex*: cintxcb_xkb_sa_lock_controls_t* {.bycopy.} = object`type`*: uint8pad0*: array[3, uint8]boolCtrlsHigh*: uint8boolCtrlsLow*: uint8pad1*: array[2, uint8]xcb_xkb_sa_lock_controls_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_lock_controls_trem*: cintindex*: cintxcb_xkb_action_message_flag_t* = enumXCB_XKB_ACTION_MESSAGE_FLAG_ON_PRESS = 1,XCB_XKB_ACTION_MESSAGE_FLAG_ON_RELEASE = 2,XCB_XKB_ACTION_MESSAGE_FLAG_GEN_KEY_EVENT = 4xcb_xkb_sa_action_message_t* {.bycopy.} = object`type`*: uint8flags*: uint8message*: array[6, uint8]xcb_xkb_sa_action_message_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_action_message_trem*: cintindex*: cintxcb_xkb_sa_redirect_key_t* {.bycopy.} = object`type`*: uint8newkey*: xcb_keycode_tmask*: uint8realModifiers*: uint8vmodsMaskHigh*: uint8vmodsMaskLow*: uint8vmodsHigh*: uint8vmodsLow*: uint8xcb_xkb_sa_redirect_key_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_redirect_key_trem*: cintindex*: cintxcb_xkb_sa_device_btn_t* {.bycopy.} = object`type`*: uint8flags*: uint8count*: uint8button*: uint8device*: uint8pad0*: array[3, uint8]xcb_xkb_sa_device_btn_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_device_btn_trem*: cintindex*: cintxcb_xkb_lock_device_flags_t* = enumXCB_XKB_LOCK_DEVICE_FLAGS_NO_LOCK = 1, XCB_XKB_LOCK_DEVICE_FLAGS_NO_UNLOCK = 2xcb_xkb_sa_lock_device_btn_t* {.bycopy.} = object`type`*: uint8flags*: uint8pad0*: uint8button*: uint8device*: uint8pad1*: array[3, uint8]xcb_xkb_sa_lock_device_btn_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_lock_device_btn_trem*: cintindex*: cintxcb_xkb_sa_val_what_t* = enumXCB_XKB_SA_VAL_WHAT_IGNORE_VAL = 0, XCB_XKB_SA_VAL_WHAT_SET_VAL_MIN = 1,XCB_XKB_SA_VAL_WHAT_SET_VAL_CENTER = 2, XCB_XKB_SA_VAL_WHAT_SET_VAL_MAX = 3,XCB_XKB_SA_VAL_WHAT_SET_VAL_RELATIVE = 4,XCB_XKB_SA_VAL_WHAT_SET_VAL_ABSOLUTE = 5xcb_xkb_sa_device_valuator_t* {.bycopy.} = object`type`*: uint8device*: uint8val1what*: uint8val1index*: uint8val1value*: uint8val2what*: uint8val2index*: uint8val2value*: uint8xcb_xkb_sa_device_valuator_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sa_device_valuator_trem*: cintindex*: cintxcb_xkb_si_action_t* {.bycopy.} = object`type`*: uint8data*: array[7, uint8]xcb_xkb_si_action_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_si_action_trem*: cintindex*: cintxcb_xkb_sym_interpret_t* {.bycopy.} = objectsym*: xcb_keysym_tmods*: uint8match*: uint8virtualMod*: uint8flags*: uint8action*: xcb_xkb_si_action_txcb_xkb_sym_interpret_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_sym_interpret_trem*: cintindex*: cintxcb_xkb_action_t* {.bycopy, union.} = objectnoaction*: xcb_xkb_sa_no_action_tsetmods*: xcb_xkb_sa_set_mods_tlatchmods*: xcb_xkb_sa_latch_mods_tlockmods*: xcb_xkb_sa_lock_mods_tsetgroup*: xcb_xkb_sa_set_group_tlatchgroup*: xcb_xkb_sa_latch_group_tlockgroup*: xcb_xkb_sa_lock_group_tmoveptr*: xcb_xkb_sa_move_ptr_tptrbtn*: xcb_xkb_sa_ptr_btn_tlockptrbtn*: xcb_xkb_sa_lock_ptr_btn_tsetptrdflt*: xcb_xkb_sa_set_ptr_dflt_tisolock*: xcb_xkb_sa_iso_lock_tterminate*: xcb_xkb_sa_terminate_tswitchscreen*: xcb_xkb_sa_switch_screen_tsetcontrols*: xcb_xkb_sa_set_controls_tlockcontrols*: xcb_xkb_sa_lock_controls_tmessage*: xcb_xkb_sa_action_message_tredirect*: xcb_xkb_sa_redirect_key_tdevbtn*: xcb_xkb_sa_device_btn_tlockdevbtn*: xcb_xkb_sa_lock_device_btn_tdevval*: xcb_xkb_sa_device_valuator_t`type`*: uint8xcb_xkb_action_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xkb_action_trem*: cintindex*: cintxcb_xkb_use_extension_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_use_extension_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16wantedMajor*: uint16wantedMinor*: uint16xcb_xkb_use_extension_reply_t* {.bycopy.} = objectresponse_type*: uint8supported*: uint8sequence*: uint16length*: uint32serverMajor*: uint16serverMinor*: uint16pad0*: array[20, uint8]xcb_xkb_select_events_details_t* {.bycopy.} = objectaffectNewKeyboard*: uint16newKeyboardDetails*: uint16affectState*: uint16stateDetails*: uint16affectCtrls*: uint32ctrlDetails*: uint32affectIndicatorState*: uint32indicatorStateDetails*: uint32affectIndicatorMap*: uint32indicatorMapDetails*: uint32affectNames*: uint16namesDetails*: uint16affectCompat*: uint8compatDetails*: uint8affectBell*: uint8bellDetails*: uint8affectMsgDetails*: uint8msgDetails*: uint8affectAccessX*: uint16accessXDetails*: uint16affectExtDev*: uint16extdevDetails*: uint16xcb_xkb_select_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_taffectWhich*: uint16clear*: uint16selectAll*: uint16affectMap*: uint16map*: uint16xcb_xkb_bell_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tbellClass*: xcb_xkb_bell_class_spec_tbellID*: xcb_xkb_id_spec_tpercent*: int8forceSound*: uint8eventOnly*: uint8pad0*: uint8pitch*: int16duration*: int16pad1*: array[2, uint8]name*: xcb_atom_twindow*: xcb_window_txcb_xkb_get_state_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_state_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]xcb_xkb_get_state_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32mods*: uint8baseMods*: uint8latchedMods*: uint8lockedMods*: uint8group*: uint8lockedGroup*: uint8baseGroup*: int16latchedGroup*: int16compatState*: uint8grabMods*: uint8compatGrabMods*: uint8lookupMods*: uint8compatLookupMods*: uint8pad0*: uint8ptrBtnState*: uint16pad1*: array[6, uint8]xcb_xkb_latch_lock_state_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_taffectModLocks*: uint8modLocks*: uint8lockGroup*: uint8groupLock*: uint8affectModLatches*: uint8pad0*: uint8pad1*: uint8latchGroup*: uint8groupLatch*: uint16xcb_xkb_get_controls_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_controls_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]xcb_xkb_get_controls_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32mouseKeysDfltBtn*: uint8numGroups*: uint8groupsWrap*: uint8internalModsMask*: uint8ignoreLockModsMask*: uint8internalModsRealMods*: uint8ignoreLockModsRealMods*: uint8pad0*: uint8internalModsVmods*: uint16ignoreLockModsVmods*: uint16repeatDelay*: uint16repeatInterval*: uint16slowKeysDelay*: uint16debounceDelay*: uint16mouseKeysDelay*: uint16mouseKeysInterval*: uint16mouseKeysTimeToMax*: uint16mouseKeysMaxSpeed*: uint16mouseKeysCurve*: int16accessXOption*: uint16accessXTimeout*: uint16accessXTimeoutOptionsMask*: uint16accessXTimeoutOptionsValues*: uint16pad1*: array[2, uint8]accessXTimeoutMask*: uint32accessXTimeoutValues*: uint32enabledControls*: uint32perKeyRepeat*: array[32, uint8]xcb_xkb_set_controls_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_taffectInternalRealMods*: uint8internalRealMods*: uint8affectIgnoreLockRealMods*: uint8ignoreLockRealMods*: uint8affectInternalVirtualMods*: uint16internalVirtualMods*: uint16affectIgnoreLockVirtualMods*: uint16ignoreLockVirtualMods*: uint16mouseKeysDfltBtn*: uint8groupsWrap*: uint8accessXOptions*: uint16pad0*: array[2, uint8]affectEnabledControls*: uint32enabledControls*: uint32changeControls*: uint32repeatDelay*: uint16repeatInterval*: uint16slowKeysDelay*: uint16debounceDelay*: uint16mouseKeysDelay*: uint16mouseKeysInterval*: uint16mouseKeysTimeToMax*: uint16mouseKeysMaxSpeed*: uint16mouseKeysCurve*: int16accessXTimeout*: uint16accessXTimeoutMask*: uint32accessXTimeoutValues*: uint32accessXTimeoutOptionsMask*: uint16accessXTimeoutOptionsValues*: uint16perKeyRepeat*: array[32, uint8]xcb_xkb_get_map_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_map_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tfull*: uint16partial*: uint16firstType*: uint8nTypes*: uint8firstKeySym*: xcb_keycode_tnKeySyms*: uint8firstKeyAction*: xcb_keycode_tnKeyActions*: uint8firstKeyBehavior*: xcb_keycode_tnKeyBehaviors*: uint8virtualMods*: uint16firstKeyExplicit*: xcb_keycode_tnKeyExplicit*: uint8firstModMapKey*: xcb_keycode_tnModMapKeys*: uint8firstVModMapKey*: xcb_keycode_tnVModMapKeys*: uint8pad0*: array[2, uint8]xcb_xkb_get_map_map_t* {.bycopy.} = objecttypes_rtrn*: ptr xcb_xkb_key_type_tsyms_rtrn*: ptr xcb_xkb_key_sym_map_tacts_rtrn_count*: ptr uint8pad2*: ptr uint8acts_rtrn_acts*: ptr xcb_xkb_action_tbehaviors_rtrn*: ptr xcb_xkb_set_behavior_tvmods_rtrn*: ptr uint8pad3*: ptr uint8explicit_rtrn*: ptr xcb_xkb_set_explicit_tpad4*: ptr uint8modmap_rtrn*: ptr xcb_xkb_key_mod_map_tpad5*: ptr uint8vmodmap_rtrn*: ptr xcb_xkb_key_v_mod_map_txcb_xkb_get_map_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32pad0*: array[2, uint8]minKeyCode*: xcb_keycode_tmaxKeyCode*: xcb_keycode_tpresent*: uint16firstType*: uint8nTypes*: uint8totalTypes*: uint8firstKeySym*: xcb_keycode_ttotalSyms*: uint16nKeySyms*: uint8firstKeyAction*: xcb_keycode_ttotalActions*: uint16nKeyActions*: uint8firstKeyBehavior*: xcb_keycode_tnKeyBehaviors*: uint8totalKeyBehaviors*: uint8firstKeyExplicit*: xcb_keycode_tnKeyExplicit*: uint8totalKeyExplicit*: uint8firstModMapKey*: xcb_keycode_tnModMapKeys*: uint8totalModMapKeys*: uint8firstVModMapKey*: xcb_keycode_tnVModMapKeys*: uint8totalVModMapKeys*: uint8pad1*: uint8virtualMods*: uint16xcb_xkb_set_map_values_t* {.bycopy.} = objecttypes*: ptr xcb_xkb_set_key_type_tsyms*: ptr xcb_xkb_key_sym_map_tactionsCount*: ptr uint8actions*: ptr xcb_xkb_action_tbehaviors*: ptr xcb_xkb_set_behavior_tvmods*: ptr uint8explicit*: ptr xcb_xkb_set_explicit_tmodmap*: ptr xcb_xkb_key_mod_map_tvmodmap*: ptr xcb_xkb_key_v_mod_map_txcb_xkb_set_map_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpresent*: uint16flags*: uint16minKeyCode*: xcb_keycode_tmaxKeyCode*: xcb_keycode_tfirstType*: uint8nTypes*: uint8firstKeySym*: xcb_keycode_tnKeySyms*: uint8totalSyms*: uint16firstKeyAction*: xcb_keycode_tnKeyActions*: uint8totalActions*: uint16firstKeyBehavior*: xcb_keycode_tnKeyBehaviors*: uint8totalKeyBehaviors*: uint8firstKeyExplicit*: xcb_keycode_tnKeyExplicit*: uint8totalKeyExplicit*: uint8firstModMapKey*: xcb_keycode_tnModMapKeys*: uint8totalModMapKeys*: uint8firstVModMapKey*: xcb_keycode_tnVModMapKeys*: uint8totalVModMapKeys*: uint8virtualMods*: uint16xcb_xkb_get_compat_map_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_compat_map_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tgroups*: uint8getAllSI*: uint8firstSI*: uint16nSI*: uint16xcb_xkb_get_compat_map_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32groupsRtrn*: uint8pad0*: uint8firstSIRtrn*: uint16nSIRtrn*: uint16nTotalSI*: uint16pad1*: array[16, uint8]xcb_xkb_set_compat_map_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: uint8recomputeActions*: uint8truncateSI*: uint8groups*: uint8firstSI*: uint16nSI*: uint16pad1*: array[2, uint8]xcb_xkb_get_indicator_state_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_indicator_state_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]xcb_xkb_get_indicator_state_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32state*: uint32pad0*: array[20, uint8]xcb_xkb_get_indicator_map_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_indicator_map_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]which*: uint32xcb_xkb_get_indicator_map_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32which*: uint32realIndicators*: uint32nIndicators*: uint8pad0*: array[15, uint8]xcb_xkb_set_indicator_map_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]which*: uint32xcb_xkb_get_named_indicator_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_named_indicator_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tledClass*: xcb_xkb_led_class_spec_tledID*: xcb_xkb_id_spec_tpad0*: array[2, uint8]indicator*: xcb_atom_txcb_xkb_get_named_indicator_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32indicator*: xcb_atom_tfound*: uint8on*: uint8realIndicator*: uint8ndx*: uint8map_flags*: uint8map_whichGroups*: uint8map_groups*: uint8map_whichMods*: uint8map_mods*: uint8map_realMods*: uint8map_vmod*: uint16map_ctrls*: uint32supported*: uint8pad0*: array[3, uint8]xcb_xkb_set_named_indicator_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tledClass*: xcb_xkb_led_class_spec_tledID*: xcb_xkb_id_spec_tpad0*: array[2, uint8]indicator*: xcb_atom_tsetState*: uint8on*: uint8setMap*: uint8createMap*: uint8pad1*: uint8map_flags*: uint8map_whichGroups*: uint8map_groups*: uint8map_whichMods*: uint8map_realMods*: uint8map_vmods*: uint16map_ctrls*: uint32xcb_xkb_get_names_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_names_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]which*: uint32xcb_xkb_get_names_value_list_t* {.bycopy.} = objectkeycodesName*: xcb_atom_tgeometryName*: xcb_atom_tsymbolsName*: xcb_atom_tphysSymbolsName*: xcb_atom_ttypesName*: xcb_atom_tcompatName*: xcb_atom_ttypeNames*: ptr xcb_atom_tnLevelsPerType*: ptr uint8pad1*: ptr uint8ktLevelNames*: ptr xcb_atom_tindicatorNames*: ptr xcb_atom_tvirtualModNames*: ptr xcb_atom_tgroups*: ptr xcb_atom_tkeyNames*: ptr xcb_xkb_key_name_tkeyAliases*: ptr xcb_xkb_key_alias_tradioGroupNames*: ptr xcb_atom_txcb_xkb_get_names_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32which*: uint32minKeyCode*: xcb_keycode_tmaxKeyCode*: xcb_keycode_tnTypes*: uint8groupNames*: uint8virtualMods*: uint16firstKey*: xcb_keycode_tnKeys*: uint8indicators*: uint32nRadioGroups*: uint8nKeyAliases*: uint8nKTLevels*: uint16pad0*: array[4, uint8]xcb_xkb_set_names_values_t* {.bycopy.} = objectkeycodesName*: xcb_atom_tgeometryName*: xcb_atom_tsymbolsName*: xcb_atom_tphysSymbolsName*: xcb_atom_ttypesName*: xcb_atom_tcompatName*: xcb_atom_ttypeNames*: ptr xcb_atom_tnLevelsPerType*: ptr uint8ktLevelNames*: ptr xcb_atom_tindicatorNames*: ptr xcb_atom_tvirtualModNames*: ptr xcb_atom_tgroups*: ptr xcb_atom_tkeyNames*: ptr xcb_xkb_key_name_tkeyAliases*: ptr xcb_xkb_key_alias_tradioGroupNames*: ptr xcb_atom_txcb_xkb_set_names_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tvirtualMods*: uint16which*: uint32firstType*: uint8nTypes*: uint8firstKTLevelt*: uint8nKTLevels*: uint8indicators*: uint32groupNames*: uint8nRadioGroups*: uint8firstKey*: xcb_keycode_tnKeys*: uint8nKeyAliases*: uint8pad0*: uint8totalKTLevelNames*: uint16xcb_xkb_per_client_flags_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_per_client_flags_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tpad0*: array[2, uint8]change*: uint32value*: uint32ctrlsToChange*: uint32autoCtrls*: uint32autoCtrlsValues*: uint32xcb_xkb_per_client_flags_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32supported*: uint32value*: uint32autoCtrls*: uint32autoCtrlsValues*: uint32pad0*: array[8, uint8]xcb_xkb_list_components_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_list_components_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tmaxNames*: uint16xcb_xkb_list_components_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32nKeymaps*: uint16nKeycodes*: uint16nTypes*: uint16nCompatMaps*: uint16nSymbols*: uint16nGeometries*: uint16extra*: uint16pad0*: array[10, uint8]xcb_xkb_get_kbd_by_name_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_kbd_by_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tneed*: uint16want*: uint16load*: uint8pad0*: uint8xcb_xkb_get_kbd_by_name_replies_types_map_t* {.bycopy.} = objecttypes_rtrn*: ptr xcb_xkb_key_type_tsyms_rtrn*: ptr xcb_xkb_key_sym_map_tacts_rtrn_count*: ptr uint8acts_rtrn_acts*: ptr xcb_xkb_action_tbehaviors_rtrn*: ptr xcb_xkb_set_behavior_tvmods_rtrn*: ptr uint8explicit_rtrn*: ptr xcb_xkb_set_explicit_tmodmap_rtrn*: ptr xcb_xkb_key_mod_map_tvmodmap_rtrn*: ptr xcb_xkb_key_v_mod_map_txcb_xkb_get_kbd_by_name_replies_key_names_value_list_t* {.bycopy.} = objectkeycodesName*: xcb_atom_tgeometryName*: xcb_atom_tsymbolsName*: xcb_atom_tphysSymbolsName*: xcb_atom_ttypesName*: xcb_atom_tcompatName*: xcb_atom_ttypeNames*: ptr xcb_atom_tnLevelsPerType*: ptr uint8ktLevelNames*: ptr xcb_atom_tindicatorNames*: ptr xcb_atom_tvirtualModNames*: ptr xcb_atom_tgroups*: ptr xcb_atom_tkeyNames*: ptr xcb_xkb_key_name_tkeyAliases*: ptr xcb_xkb_key_alias_tradioGroupNames*: ptr xcb_atom_txcb_xkb_get_kbd_by_name_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32minKeyCode*: xcb_keycode_tmaxKeyCode*: xcb_keycode_tloaded*: uint8newKeyboard*: uint8found*: uint16reported*: uint16pad0*: array[16, uint8]xcb_xkb_get_device_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_get_device_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_twanted*: uint16allButtons*: uint8firstButton*: uint8nButtons*: uint8pad0*: uint8ledClass*: xcb_xkb_led_class_spec_tledID*: xcb_xkb_id_spec_txcb_xkb_get_device_info_reply_t* {.bycopy.} = objectresponse_type*: uint8deviceID*: uint8sequence*: uint16length*: uint32present*: uint16supported*: uint16unsupported*: uint16nDeviceLedFBs*: uint16firstBtnWanted*: uint8nBtnsWanted*: uint8firstBtnRtrn*: uint8nBtnsRtrn*: uint8totalBtns*: uint8hasOwnState*: uint8dfltKbdFB*: uint16dfltLedFB*: uint16pad0*: array[2, uint8]devType*: xcb_atom_tnameLen*: uint16xcb_xkb_set_device_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16deviceSpec*: xcb_xkb_device_spec_tfirstBtn*: uint8nBtns*: uint8change*: uint16nDeviceLedFBs*: uint16xcb_xkb_set_debugging_flags_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xkb_set_debugging_flags_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16msgLength*: uint16pad0*: array[2, uint8]affectFlags*: uint32flags*: uint32affectCtrls*: uint32ctrls*: uint32xcb_xkb_set_debugging_flags_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32currentFlags*: uint32currentCtrls*: uint32supportedFlags*: uint32supportedCtrls*: uint32pad1*: array[8, uint8]xcb_xkb_new_keyboard_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8oldDeviceID*: uint8minKeyCode*: xcb_keycode_tmaxKeyCode*: xcb_keycode_toldMinKeyCode*: xcb_keycode_toldMaxKeyCode*: xcb_keycode_trequestMajor*: uint8requestMinor*: uint8changed*: uint16pad0*: array[14, uint8]xcb_xkb_map_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8ptrBtnActions*: uint8changed*: uint16minKeyCode*: xcb_keycode_tmaxKeyCode*: xcb_keycode_tfirstType*: uint8nTypes*: uint8firstKeySym*: xcb_keycode_tnKeySyms*: uint8firstKeyAct*: xcb_keycode_tnKeyActs*: uint8firstKeyBehavior*: xcb_keycode_tnKeyBehavior*: uint8firstKeyExplicit*: xcb_keycode_tnKeyExplicit*: uint8firstModMapKey*: xcb_keycode_tnModMapKeys*: uint8firstVModMapKey*: xcb_keycode_tnVModMapKeys*: uint8virtualMods*: uint16pad0*: array[2, uint8]xcb_xkb_state_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8mods*: uint8baseMods*: uint8latchedMods*: uint8lockedMods*: uint8group*: uint8baseGroup*: int16latchedGroup*: int16lockedGroup*: uint8compatState*: uint8grabMods*: uint8compatGrabMods*: uint8lookupMods*: uint8compatLoockupMods*: uint8ptrBtnState*: uint16changed*: uint16keycode*: xcb_keycode_teventType*: uint8requestMajor*: uint8requestMinor*: uint8xcb_xkb_controls_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8numGroups*: uint8pad0*: array[2, uint8]changedControls*: uint32enabledControls*: uint32enabledControlChanges*: uint32keycode*: xcb_keycode_teventType*: uint8requestMajor*: uint8requestMinor*: uint8pad1*: array[4, uint8]xcb_xkb_indicator_state_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8pad0*: array[3, uint8]state*: uint32stateChanged*: uint32pad1*: array[12, uint8]xcb_xkb_indicator_map_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8pad0*: array[3, uint8]state*: uint32mapChanged*: uint32pad1*: array[12, uint8]xcb_xkb_names_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8pad0*: uint8changed*: uint16firstType*: uint8nTypes*: uint8firstLevelName*: uint8nLevelNames*: uint8pad1*: uint8nRadioGroups*: uint8nKeyAliases*: uint8changedGroupNames*: uint8changedVirtualMods*: uint16firstKey*: xcb_keycode_tnKeys*: uint8changedIndicators*: uint32pad2*: array[4, uint8]xcb_xkb_compat_map_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8changedGroups*: uint8firstSI*: uint16nSI*: uint16nTotalSI*: uint16pad0*: array[16, uint8]xcb_xkb_bell_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8bellClass*: uint8bellID*: uint8percent*: uint8pitch*: uint16duration*: uint16name*: xcb_atom_twindow*: xcb_window_teventOnly*: uint8pad0*: array[7, uint8]xcb_xkb_action_message_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8keycode*: xcb_keycode_tpress*: uint8keyEventFollows*: uint8mods*: uint8group*: uint8message*: array[8, xcb_xkb_string8_t]pad0*: array[10, uint8]xcb_xkb_access_x_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8keycode*: xcb_keycode_tdetailt*: uint16slowKeysDelay*: uint16debounceDelay*: uint16pad0*: array[16, uint8]xcb_xkb_extension_device_notify_event_t* {.bycopy.} = objectresponse_type*: uint8xkbType*: uint8sequence*: uint16time*: xcb_timestamp_tdeviceID*: uint8pad0*: uint8reason*: uint16ledClass*: uint16ledID*: uint16ledsDefined*: uint32ledState*: uint32firstButton*: uint8nButtons*: uint8supported*: uint16unsupported*: uint16pad1*: array[2, uint8]xcb_x_print_string8_t* = charxcb_x_print_string8_iterator_t* {.bycopy.} = objectdata*: ptr xcb_x_print_string8_trem*: cintindex*: cintxcb_x_print_printer_t* {.bycopy.} = objectnameLen*: uint32descLen*: uint32xcb_x_print_printer_iterator_t* {.bycopy.} = objectdata*: ptr xcb_x_print_printer_trem*: cintindex*: cintxcb_x_print_pcontext_t* = uint32xcb_x_print_pcontext_iterator_t* {.bycopy.} = objectdata*: ptr xcb_x_print_pcontext_trem*: cintindex*: cintxcb_x_print_get_doc_t* = enumXCB_X_PRINT_GET_DOC_FINISHED = 0, XCB_X_PRINT_GET_DOC_SECOND_CONSUMER = 1xcb_x_print_ev_mask_t* = enumXCB_X_PRINT_EV_MASK_NO_EVENT_MASK = 0, XCB_X_PRINT_EV_MASK_PRINT_MASK = 1,XCB_X_PRINT_EV_MASK_ATTRIBUTE_MASK = 2xcb_x_print_detail_t* = enumXCB_X_PRINT_DETAIL_START_JOB_NOTIFY = 1, XCB_X_PRINT_DETAIL_END_JOB_NOTIFY = 2,XCB_X_PRINT_DETAIL_START_DOC_NOTIFY = 3, XCB_X_PRINT_DETAIL_END_DOC_NOTIFY = 4,XCB_X_PRINT_DETAIL_START_PAGE_NOTIFY = 5,XCB_X_PRINT_DETAIL_END_PAGE_NOTIFY = 6xcb_x_print_attr_t* = enumXCB_X_PRINT_ATTR_JOB_ATTR = 1, XCB_X_PRINT_ATTR_DOC_ATTR = 2,XCB_X_PRINT_ATTR_PAGE_ATTR = 3, XCB_X_PRINT_ATTR_PRINTER_ATTR = 4,XCB_X_PRINT_ATTR_SERVER_ATTR = 5, XCB_X_PRINT_ATTR_MEDIUM_ATTR = 6,XCB_X_PRINT_ATTR_SPOOLER_ATTR = 7xcb_x_print_print_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_x_print_print_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major_version*: uint16minor_version*: uint16xcb_x_print_print_get_printer_list_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_printer_list_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16printerNameLen*: uint32localeLen*: uint32xcb_x_print_print_get_printer_list_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32listCount*: uint32pad1*: array[20, uint8]xcb_x_print_print_rehash_printer_list_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_x_print_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_id*: uint32printerNameLen*: uint32localeLen*: uint32xcb_x_print_print_set_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: uint32xcb_x_print_print_get_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_x_print_print_get_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context*: uint32xcb_x_print_print_destroy_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: uint32xcb_x_print_print_get_screen_of_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_screen_of_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_x_print_print_get_screen_of_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32root*: xcb_window_txcb_x_print_print_start_job_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16output_mode*: uint8xcb_x_print_print_end_job_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cancel*: uint8xcb_x_print_print_start_doc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16driver_mode*: uint8xcb_x_print_print_end_doc_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cancel*: uint8xcb_x_print_print_put_document_data_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tlen_data*: uint32len_fmt*: uint16len_options*: uint16xcb_x_print_print_get_document_data_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_document_data_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_tmax_bytes*: uint32xcb_x_print_print_get_document_data_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32status_code*: uint32finished_flag*: uint32dataLen*: uint32pad1*: array[12, uint8]xcb_x_print_print_start_page_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_x_print_print_end_page_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16cancel*: uint8pad0*: array[3, uint8]xcb_x_print_print_select_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_tevent_mask*: uint32xcb_x_print_print_input_selected_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_input_selected_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_txcb_x_print_print_input_selected_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32event_mask*: uint32all_events_mask*: uint32xcb_x_print_print_get_attributes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_tpool*: uint8pad0*: array[3, uint8]xcb_x_print_print_get_attributes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32stringLen*: uint32pad1*: array[20, uint8]xcb_x_print_print_get_one_attributes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_one_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_tnameLen*: uint32pool*: uint8pad0*: array[3, uint8]xcb_x_print_print_get_one_attributes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32valueLen*: uint32pad1*: array[20, uint8]xcb_x_print_print_set_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_tstringLen*: uint32pool*: uint8rule*: uint8pad0*: array[2, uint8]xcb_x_print_print_get_page_dimensions_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_page_dimensions_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_txcb_x_print_print_get_page_dimensions_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width*: uint16height*: uint16offset_x*: uint16offset_y*: uint16reproducible_width*: uint16reproducible_height*: uint16xcb_x_print_print_query_screens_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_query_screens_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_x_print_print_query_screens_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32listCount*: uint32pad1*: array[20, uint8]xcb_x_print_print_set_image_resolution_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_set_image_resolution_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_timage_resolution*: uint16xcb_x_print_print_set_image_resolution_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32previous_resolutions*: uint16xcb_x_print_print_get_image_resolution_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_x_print_print_get_image_resolution_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context*: xcb_x_print_pcontext_txcb_x_print_print_get_image_resolution_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32image_resolution*: uint16xcb_x_print_notify_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16context*: xcb_x_print_pcontext_tcancel*: uint8xcb_x_print_attribut_notify_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16context*: xcb_x_print_pcontext_txcb_x_print_bad_context_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_x_print_bad_sequence_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_char2b_t* {.bycopy.} = objectbyte1*: uint8byte2*: uint8xcb_char2b_iterator_t* {.bycopy.} = objectdata*: ptr xcb_char2b_trem*: cintindex*: cintxcb_window_iterator_t* {.bycopy.} = objectdata*: ptr xcb_window_trem*: cintindex*: cintxcb_pixmap_t* = uint32xcb_pixmap_iterator_t* {.bycopy.} = objectdata*: ptr xcb_pixmap_trem*: cintindex*: cintxcb_cursor_t* = uint32xcb_cursor_iterator_t* {.bycopy.} = objectdata*: ptr xcb_cursor_trem*: cintindex*: cintxcb_font_t* = uint32xcb_font_iterator_t* {.bycopy.} = objectdata*: ptr xcb_font_trem*: cintindex*: cintxcb_gcontext_t* = uint32xcb_gcontext_iterator_t* {.bycopy.} = objectdata*: ptr xcb_gcontext_trem*: cintindex*: cintxcb_colormap_iterator_t* {.bycopy.} = objectdata*: ptr xcb_colormap_trem*: cintindex*: cintxcb_atom_iterator_t* {.bycopy.} = objectdata*: ptr xcb_atom_trem*: cintindex*: cintxcb_drawable_t* = uint32xcb_drawable_iterator_t* {.bycopy.} = objectdata*: ptr xcb_drawable_trem*: cintindex*: cintxcb_fontable_t* = uint32xcb_fontable_iterator_t* {.bycopy.} = objectdata*: ptr xcb_fontable_trem*: cintindex*: cintxcb_bool32_t* = uint32xcb_bool32_iterator_t* {.bycopy.} = objectdata*: ptr xcb_bool32_trem*: cintindex*: cintxcb_visualid_iterator_t* {.bycopy.} = objectdata*: ptr xcb_visualid_trem*: cintindex*: cintxcb_timestamp_iterator_t* {.bycopy.} = objectdata*: ptr xcb_timestamp_trem*: cintindex*: cintxcb_keysym_t* = uint32xcb_keysym_iterator_t* {.bycopy.} = objectdata*: ptr xcb_keysym_trem*: cintindex*: cintxcb_keycode_iterator_t* {.bycopy.} = objectdata*: ptr xcb_keycode_trem*: cintindex*: cintxcb_keycode32_t* = uint32xcb_keycode32_iterator_t* {.bycopy.} = objectdata*: ptr xcb_keycode32_trem*: cintindex*: cintxcb_button_iterator_t* {.bycopy.} = objectdata*: ptr xcb_button_trem*: cintindex*: cintxcb_point_t* {.bycopy.} = objectx*: int16y*: int16xcb_point_iterator_t* {.bycopy.} = objectdata*: ptr xcb_point_trem*: cintindex*: cintxcb_rectangle_t* {.bycopy.} = objectx*: int16y*: int16width*: uint16height*: uint16xcb_rectangle_iterator_t* {.bycopy.} = objectdata*: ptr xcb_rectangle_trem*: cintindex*: cintxcb_arc_t* {.bycopy.} = objectx*: int16y*: int16width*: uint16height*: uint16angle1*: int16angle2*: int16xcb_arc_iterator_t* {.bycopy.} = objectdata*: ptr xcb_arc_trem*: cintindex*: cintxcb_format_t* {.bycopy.} = objectdepth*: uint8bits_per_pixel*: uint8scanline_pad*: uint8pad0*: array[5, uint8]xcb_format_iterator_t* {.bycopy.} = objectdata*: ptr xcb_format_trem*: cintindex*: cintxcb_visual_class_t* = enumXCB_VISUAL_CLASS_STATIC_GRAY = 0, XCB_VISUAL_CLASS_GRAY_SCALE = 1,XCB_VISUAL_CLASS_STATIC_COLOR = 2, XCB_VISUAL_CLASS_PSEUDO_COLOR = 3,XCB_VISUAL_CLASS_TRUE_COLOR = 4, XCB_VISUAL_CLASS_DIRECT_COLOR = 5xcb_visualtype_t* {.bycopy.} = objectvisual_id*: xcb_visualid_tx_class*: uint8bits_per_rgb_value*: uint8colormap_entries*: uint16red_mask*: uint32green_mask*: uint32blue_mask*: uint32pad0*: array[4, uint8]xcb_visualtype_iterator_t* {.bycopy.} = objectdata*: ptr xcb_visualtype_trem*: cintindex*: cintxcb_depth_t* {.bycopy.} = objectdepth*: uint8pad0*: uint8visuals_len*: uint16pad1*: array[4, uint8]xcb_depth_iterator_t* {.bycopy.} = objectdata*: ptr xcb_depth_trem*: cintindex*: cintxcb_setup_request_t* {.bycopy.} = objectbyte_order*: uint8pad0*: uint8protocol_major_version*: uint16protocol_minor_version*: uint16authorization_protocol_name_len*: uint16authorization_protocol_data_len*: uint16pad1*: array[2, uint8]xcb_setup_request_iterator_t* {.bycopy.} = objectdata*: ptr xcb_setup_request_trem*: cintindex*: cintxcb_setup_failed_t* {.bycopy.} = objectstatus*: uint8reason_len*: uint8protocol_major_version*: uint16protocol_minor_version*: uint16length*: uint16xcb_setup_failed_iterator_t* {.bycopy.} = objectdata*: ptr xcb_setup_failed_trem*: cintindex*: cintxcb_setup_authenticate_t* {.bycopy.} = objectstatus*: uint8pad0*: array[5, uint8]length*: uint16xcb_setup_authenticate_iterator_t* {.bycopy.} = objectdata*: ptr xcb_setup_authenticate_trem*: cintindex*: cintxcb_image_order_t* = enumXCB_IMAGE_ORDER_LSB_FIRST = 0, XCB_IMAGE_ORDER_MSB_FIRST = 1xcb_setup_iterator_t* {.bycopy.} = objectdata*: ptr xcb_setup_trem*: cintindex*: cintxcb_mod_mask_t* = enumXCB_MOD_MASK_SHIFT = 1, XCB_MOD_MASK_LOCK = 2, XCB_MOD_MASK_CONTROL = 4,XCB_MOD_MASK_1 = 8, XCB_MOD_MASK_2 = 16, XCB_MOD_MASK_3 = 32, XCB_MOD_MASK_4 = 64,XCB_MOD_MASK_5 = 128, XCB_MOD_MASK_ANY = 32768xcb_key_but_mask_t* = enumXCB_KEY_BUT_MASK_SHIFT = 1, XCB_KEY_BUT_MASK_LOCK = 2,XCB_KEY_BUT_MASK_CONTROL = 4, XCB_KEY_BUT_MASK_MOD_1 = 8,XCB_KEY_BUT_MASK_MOD_2 = 16, XCB_KEY_BUT_MASK_MOD_3 = 32,XCB_KEY_BUT_MASK_MOD_4 = 64, XCB_KEY_BUT_MASK_MOD_5 = 128,XCB_KEY_BUT_MASK_BUTTON_1 = 256, XCB_KEY_BUT_MASK_BUTTON_2 = 512,XCB_KEY_BUT_MASK_BUTTON_3 = 1024, XCB_KEY_BUT_MASK_BUTTON_4 = 2048,XCB_KEY_BUT_MASK_BUTTON_5 = 4096xcb_window_enum_t* = enumXCB_WINDOW_NONE = 0# xcb_button_press_event_t* {.bycopy.} = object# response_type*: uint8# detail*: xcb_button_t# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# same_screen*: uint8# pad0*: uint8# xcb_button_release_event_t* = xcb_button_press_event_t# xcb_motion_t* = enum# XCB_MOTION_NORMAL = 0, XCB_MOTION_HINT = 1# xcb_motion_notify_event_t* {.bycopy.} = object# response_type*: uint8# detail*: uint8# sequence*: uint16# time*: xcb_timestamp_t# root*: xcb_window_t# event*: xcb_window_t# child*: xcb_window_t# root_x*: int16# root_y*: int16# event_x*: int16# event_y*: int16# state*: uint16# same_screen*: uint8# pad0*: uint8# xcb_notify_detail_t* = enum# XCB_NOTIFY_DETAIL_ANCESTOR = 0, XCB_NOTIFY_DETAIL_VIRTUAL = 1,# XCB_NOTIFY_DETAIL_INFERIOR = 2, XCB_NOTIFY_DETAIL_NONLINEAR = 3,# XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4, XCB_NOTIFY_DETAIL_POINTER = 5,# XCB_NOTIFY_DETAIL_POINTER_ROOT = 6, XCB_NOTIFY_DETAIL_NONE = 7# xcb_notify_mode_t* = enum# XCB_NOTIFY_MODE_NORMAL = 0, XCB_NOTIFY_MODE_GRAB = 1, XCB_NOTIFY_MODE_UNGRAB = 2,# XCB_NOTIFY_MODE_WHILE_GRABBED = 3xcb_enter_notify_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16time*: xcb_timestamp_troot*: xcb_window_tevent*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16event_x*: int16event_y*: int16state*: uint16mode*: uint8same_screen_focus*: uint8xcb_leave_notify_event_t* = xcb_enter_notify_event_txcb_focus_in_event_t* {.bycopy.} = objectresponse_type*: uint8detail*: uint8sequence*: uint16event*: xcb_window_tmode*: uint8pad0*: array[3, uint8]xcb_focus_out_event_t* = xcb_focus_in_event_txcb_keymap_notify_event_t* {.bycopy.} = objectresponse_type*: uint8keys*: array[31, uint8]xcb_expose_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16window*: xcb_window_tx*: uint16y*: uint16width*: uint16height*: uint16count*: uint16pad1*: array[2, uint8]xcb_graphics_exposure_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16drawable*: xcb_drawable_tx*: uint16y*: uint16width*: uint16height*: uint16minor_opcode*: uint16count*: uint16major_opcode*: uint8pad1*: array[3, uint8]xcb_no_exposure_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16drawable*: xcb_drawable_tminor_opcode*: uint16major_opcode*: uint8pad1*: uint8xcb_visibility_t* = enumXCB_VISIBILITY_UNOBSCURED = 0, XCB_VISIBILITY_PARTIALLY_OBSCURED = 1,XCB_VISIBILITY_FULLY_OBSCURED = 2xcb_visibility_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16window*: xcb_window_tstate*: uint8pad1*: array[3, uint8]xcb_create_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16parent*: xcb_window_twindow*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16border_width*: uint16override_redirect*: uint8pad1*: uint8xcb_destroy_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_txcb_unmap_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_tfrom_configure*: uint8pad1*: array[3, uint8]xcb_map_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_toverride_redirect*: uint8pad1*: array[3, uint8]xcb_map_request_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16parent*: xcb_window_twindow*: xcb_window_txcb_reparent_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_tparent*: xcb_window_tx*: int16y*: int16override_redirect*: uint8pad1*: array[3, uint8]xcb_configure_request_event_t* {.bycopy.} = objectresponse_type*: uint8stack_mode*: uint8sequence*: uint16parent*: xcb_window_twindow*: xcb_window_tsibling*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16border_width*: uint16value_mask*: uint16xcb_gravity_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_tx*: int16y*: int16xcb_resize_request_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16window*: xcb_window_twidth*: uint16height*: uint16xcb_place_t* = enumXCB_PLACE_ON_TOP = 0, ## *< The window is now on top of all siblings.XCB_PLACE_ON_BOTTOM = 1xcb_circulate_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16event*: xcb_window_twindow*: xcb_window_tpad1*: array[4, uint8]place*: uint8pad2*: array[3, uint8]xcb_circulate_request_event_t* = xcb_circulate_notify_event_txcb_property_t* = enumXCB_PROPERTY_NEW_VALUE = 0, XCB_PROPERTY_DELETE = 1xcb_property_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16window*: xcb_window_tatom*: xcb_atom_ttime*: xcb_timestamp_tstate*: uint8pad1*: array[3, uint8]xcb_selection_clear_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16time*: xcb_timestamp_towner*: xcb_window_tselection*: xcb_atom_txcb_time_t* = enumXCB_TIME_CURRENT_TIME = 0xcb_selection_request_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16time*: xcb_timestamp_towner*: xcb_window_trequestor*: xcb_window_tselection*: xcb_atom_ttarget*: xcb_atom_tproperty*: xcb_atom_txcb_selection_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16time*: xcb_timestamp_trequestor*: xcb_window_tselection*: xcb_atom_ttarget*: xcb_atom_tproperty*: xcb_atom_txcb_colormap_state_t* = enumXCB_COLORMAP_STATE_UNINSTALLED = 0, ## *< The colormap was uninstalled.XCB_COLORMAP_STATE_INSTALLED = 1xcb_colormap_enum_t* = enumXCB_COLORMAP_NONE = 0xcb_colormap_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16window*: xcb_window_tcolormap*: xcb_colormap_tx_new*: uint8state*: uint8pad1*: array[2, uint8]xcb_client_message_data_iterator_t* {.bycopy.} = objectdata*: ptr xcb_client_message_data_trem*: cintindex*: cintxcb_mapping_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16request*: uint8first_keycode*: xcb_keycode_tcount*: uint8pad1*: uint8xcb_ge_generic_event_t* {.bycopy.} = objectresponse_type*: uint8extension*: uint8sequence*: uint16length*: uint32event_type*: uint16pad0*: array[22, uint8]full_sequence*: uint32xcb_request_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16bad_value*: uint32minor_opcode*: uint16major_opcode*: uint8pad0*: uint8xcb_value_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16bad_value*: uint32minor_opcode*: uint16major_opcode*: uint8pad0*: uint8xcb_window_error_t* = xcb_value_error_txcb_pixmap_error_t* = xcb_value_error_txcb_atom_error_t* = xcb_value_error_txcb_cursor_error_t* = xcb_value_error_txcb_font_error_t* = xcb_value_error_txcb_match_error_t* = xcb_request_error_txcb_drawable_error_t* = xcb_value_error_txcb_access_error_t* = xcb_request_error_txcb_alloc_error_t* = xcb_request_error_txcb_colormap_error_t* = xcb_value_error_txcb_g_context_error_t* = xcb_value_error_txcb_id_choice_error_t* = xcb_value_error_txcb_name_error_t* = xcb_request_error_txcb_length_error_t* = xcb_request_error_txcb_implementation_error_t* = xcb_request_error_txcb_create_window_value_list_t* {.bycopy.} = objectbackground_pixmap*: xcb_pixmap_tbackground_pixel*: uint32border_pixmap*: xcb_pixmap_tborder_pixel*: uint32bit_gravity*: uint32win_gravity*: uint32backing_store*: uint32backing_planes*: uint32backing_pixel*: uint32override_redirect*: xcb_bool32_tsave_under*: xcb_bool32_tevent_mask*: uint32do_not_propogate_mask*: uint32colormap*: xcb_colormap_tcursor*: xcb_cursor_txcb_create_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8depth*: uint8length*: uint16wid*: xcb_window_tparent*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16border_width*: uint16x_class*: uint16visual*: xcb_visualid_tvalue_mask*: uint32xcb_change_window_attributes_value_list_t* {.bycopy.} = objectbackground_pixmap*: xcb_pixmap_tbackground_pixel*: uint32border_pixmap*: xcb_pixmap_tborder_pixel*: uint32bit_gravity*: uint32win_gravity*: uint32backing_store*: uint32backing_planes*: uint32backing_pixel*: uint32override_redirect*: xcb_bool32_tsave_under*: xcb_bool32_tevent_mask*: uint32do_not_propogate_mask*: uint32colormap*: xcb_colormap_tcursor*: xcb_cursor_txcb_change_window_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_tvalue_mask*: uint32xcb_map_state_t* = enumXCB_MAP_STATE_UNMAPPED = 0, XCB_MAP_STATE_UNVIEWABLE = 1,XCB_MAP_STATE_VIEWABLE = 2xcb_get_window_attributes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_window_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_get_window_attributes_reply_t* {.bycopy.} = objectresponse_type*: uint8backing_store*: uint8sequence*: uint16length*: uint32visual*: xcb_visualid_tx_class*: uint16bit_gravity*: uint8win_gravity*: uint8backing_planes*: uint32backing_pixel*: uint32save_under*: uint8map_is_installed*: uint8map_state*: uint8override_redirect*: uint8colormap*: xcb_colormap_tall_event_masks*: uint32your_event_mask*: uint32do_not_propagate_mask*: uint16pad0*: array[2, uint8]xcb_destroy_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_destroy_subwindows_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_set_mode_t* = enumXCB_SET_MODE_INSERT = 0, XCB_SET_MODE_DELETE = 1xcb_change_save_set_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16window*: xcb_window_txcb_reparent_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_tparent*: xcb_window_tx*: int16y*: int16xcb_map_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_map_subwindows_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_unmap_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_unmap_subwindows_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_config_window_t* = enumXCB_CONFIG_WINDOW_X = 1, XCB_CONFIG_WINDOW_Y = 2, XCB_CONFIG_WINDOW_WIDTH = 4,XCB_CONFIG_WINDOW_HEIGHT = 8, XCB_CONFIG_WINDOW_BORDER_WIDTH = 16,XCB_CONFIG_WINDOW_SIBLING = 32, XCB_CONFIG_WINDOW_STACK_MODE = 64xcb_stack_mode_t* = enumXCB_STACK_MODE_ABOVE = 0, XCB_STACK_MODE_BELOW = 1, XCB_STACK_MODE_TOP_IF = 2,XCB_STACK_MODE_BOTTOM_IF = 3, XCB_STACK_MODE_OPPOSITE = 4xcb_configure_window_value_list_t* {.bycopy.} = objectx*: int32y*: int32width*: uint32height*: uint32border_width*: uint32sibling*: xcb_window_tstack_mode*: uint32xcb_configure_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_tvalue_mask*: uint16pad1*: array[2, uint8]xcb_circulate_t* = enumXCB_CIRCULATE_RAISE_LOWEST = 0, XCB_CIRCULATE_LOWER_HIGHEST = 1xcb_circulate_window_request_t* {.bycopy.} = objectmajor_opcode*: uint8direction*: uint8length*: uint16window*: xcb_window_txcb_get_geometry_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_geometry_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_txcb_get_geometry_reply_t* {.bycopy.} = objectresponse_type*: uint8depth*: uint8sequence*: uint16length*: uint32root*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16border_width*: uint16pad0*: array[2, uint8]xcb_query_tree_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_tree_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_query_tree_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32root*: xcb_window_tparent*: xcb_window_tchildren_len*: uint16pad1*: array[14, uint8]xcb_intern_atom_request_t* {.bycopy.} = objectmajor_opcode*: uint8only_if_exists*: uint8length*: uint16name_len*: uint16pad0*: array[2, uint8]xcb_get_atom_name_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_atom_name_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16atom*: xcb_atom_txcb_get_atom_name_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32name_len*: uint16pad1*: array[22, uint8]xcb_change_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16window*: xcb_window_tproperty*: xcb_atom_t`type`*: xcb_atom_tformat*: uint8pad0*: array[3, uint8]data_len*: uint32xcb_delete_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_tproperty*: xcb_atom_txcb_get_property_type_t* = enumXCB_GET_PROPERTY_TYPE_ANY = 0xcb_get_property_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_property_request_t* {.bycopy.} = objectmajor_opcode*: uint8x_delete*: uint8length*: uint16window*: xcb_window_tproperty*: xcb_atom_t`type`*: xcb_atom_tlong_offset*: uint32long_length*: uint32xcb_get_property_reply_t* {.bycopy.} = objectresponse_type*: uint8format*: uint8sequence*: uint16length*: uint32ty*: xcb_atom_tbytes_after*: uint32value_len*: uint32pad0*: array[12, uint8]xcb_list_properties_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_list_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_list_properties_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32atoms_len*: uint16pad1*: array[22, uint8]xcb_set_selection_owner_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16owner*: xcb_window_tselection*: xcb_atom_ttime*: xcb_timestamp_txcb_get_selection_owner_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_selection_owner_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16selection*: xcb_atom_txcb_get_selection_owner_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32owner*: xcb_window_txcb_convert_selection_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16requestor*: xcb_window_tselection*: xcb_atom_ttarget*: xcb_atom_tproperty*: xcb_atom_ttime*: xcb_timestamp_txcb_send_event_dest_t* = enumXCB_SEND_EVENT_DEST_POINTER_WINDOW = 0, XCB_SEND_EVENT_DEST_ITEM_FOCUS = 1xcb_send_event_request_t* {.bycopy.} = objectmajor_opcode*: uint8propagate*: uint8length*: uint16destination*: xcb_window_tevent_mask*: uint32event*: array[32, char]xcb_grab_mode_t* = enumXCB_GRAB_MODE_SYNC = 0, ## *< The state of the keyboard appears to freeze: No further keyboard events are## generated by the server until the grabbing client issues a releasing## `AllowEvents` request or until the keyboard grab is released.XCB_GRAB_MODE_ASYNC = 1xcb_grab_status_t* = enumXCB_GRAB_STATUS_SUCCESS = 0, XCB_GRAB_STATUS_ALREADY_GRABBED = 1,XCB_GRAB_STATUS_INVALID_TIME = 2, XCB_GRAB_STATUS_NOT_VIEWABLE = 3,XCB_GRAB_STATUS_FROZEN = 4xcb_cursor_enum_t* = enumXCB_CURSOR_NONE = 0xcb_grab_pointer_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_grab_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8owner_events*: uint8length*: uint16grab_window*: xcb_window_tevent_mask*: uint16pointer_mode*: uint8keyboard_mode*: uint8confine_to*: xcb_window_tcursor*: xcb_cursor_ttime*: xcb_timestamp_txcb_grab_pointer_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32xcb_ungrab_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16time*: xcb_timestamp_txcb_grab_button_request_t* {.bycopy.} = objectmajor_opcode*: uint8owner_events*: uint8length*: uint16grab_window*: xcb_window_tevent_mask*: uint16pointer_mode*: uint8keyboard_mode*: uint8confine_to*: xcb_window_tcursor*: xcb_cursor_tbutton*: uint8pad0*: uint8modifiers*: uint16xcb_ungrab_button_request_t* {.bycopy.} = objectmajor_opcode*: uint8button*: uint8length*: uint16grab_window*: xcb_window_tmodifiers*: uint16pad0*: array[2, uint8]xcb_change_active_pointer_grab_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cursor*: xcb_cursor_ttime*: xcb_timestamp_tevent_mask*: uint16pad1*: array[2, uint8]xcb_grab_keyboard_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_grab_keyboard_request_t* {.bycopy.} = objectmajor_opcode*: uint8owner_events*: uint8length*: uint16grab_window*: xcb_window_ttime*: xcb_timestamp_tpointer_mode*: uint8keyboard_mode*: uint8pad0*: array[2, uint8]xcb_grab_keyboard_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32xcb_ungrab_keyboard_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16time*: xcb_timestamp_txcb_grab_t* = enumXCB_GRAB_ANY = 0xcb_grab_key_request_t* {.bycopy.} = objectmajor_opcode*: uint8owner_events*: uint8length*: uint16grab_window*: xcb_window_tmodifiers*: uint16key*: xcb_keycode_tpointer_mode*: uint8keyboard_mode*: uint8pad0*: array[3, uint8]xcb_ungrab_key_request_t* {.bycopy.} = objectmajor_opcode*: uint8key*: xcb_keycode_tlength*: uint16grab_window*: xcb_window_tmodifiers*: uint16pad0*: array[2, uint8]xcb_allow_t* = enumXCB_ALLOW_ASYNC_POINTER = 0, ## *< For AsyncPointer, if the pointer is frozen by the client, pointer event## processing continues normally. If the pointer is frozen twice by the client on## behalf of two separate grabs, AsyncPointer thaws for both. AsyncPointer has no## effect if the pointer is not frozen by the client, but the pointer need not be## grabbed by the client.#### TODO: rewrite this in more understandable terms.XCB_ALLOW_SYNC_POINTER = 1, ## *< For SyncPointer, if the pointer is frozen and actively grabbed by the client,## pointer event processing continues normally until the next ButtonPress or## ButtonRelease event is reported to the client, at which time the pointer again## appears to freeze. However, if the reported event causes the pointer grab to be## released, then the pointer does not freeze. SyncPointer has no effect if the## pointer is not frozen by the client or if the pointer is not grabbed by the## client.XCB_ALLOW_REPLAY_POINTER = 2, ## *< For ReplayPointer, if the pointer is actively grabbed by the client and is## frozen as the result of an event having been sent to the client (either from## the activation of a GrabButton or from a previous AllowEvents with mode## SyncPointer but not from a GrabPointer), then the pointer grab is released and## that event is completely reprocessed, this time ignoring any passive grabs at## or above (towards the root) the grab-window of the grab just released. The## request has no effect if the pointer is not grabbed by the client or if the## pointer is not frozen as the result of an event.XCB_ALLOW_ASYNC_KEYBOARD = 3, ## *< For AsyncKeyboard, if the keyboard is frozen by the client, keyboard event## processing continues normally. If the keyboard is frozen twice by the client on## behalf of two separate grabs, AsyncKeyboard thaws for both. AsyncKeyboard has## no effect if the keyboard is not frozen by the client, but the keyboard need## not be grabbed by the client.XCB_ALLOW_SYNC_KEYBOARD = 4, ## *< For SyncKeyboard, if the keyboard is frozen and actively grabbed by the client,## keyboard event processing continues normally until the next KeyPress or## KeyRelease event is reported to the client, at which time the keyboard again## appears to freeze. However, if the reported event causes the keyboard grab to## be released, then the keyboard does not freeze. SyncKeyboard has no effect if## the keyboard is not frozen by the client or if the keyboard is not grabbed by## the client.XCB_ALLOW_REPLAY_KEYBOARD = 5, ## *< For ReplayKeyboard, if the keyboard is actively grabbed by the client and is## frozen as the result of an event having been sent to the client (either from## the activation of a GrabKey or from a previous AllowEvents with mode## SyncKeyboard but not from a GrabKeyboard), then the keyboard grab is released## and that event is completely reprocessed, this time ignoring any passive grabs## at or above (towards the root) the grab-window of the grab just released. The## request has no effect if the keyboard is not grabbed by the client or if the## keyboard is not frozen as the result of an event.XCB_ALLOW_ASYNC_BOTH = 6, ## *< For AsyncBoth, if the pointer and the keyboard are frozen by the client, event## processing for both devices continues normally. If a device is frozen twice by## the client on behalf of two separate grabs, AsyncBoth thaws for both. AsyncBoth## has no effect unless both pointer and keyboard are frozen by the client.XCB_ALLOW_SYNC_BOTH = 7xcb_allow_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16time*: xcb_timestamp_txcb_grab_server_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_ungrab_server_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_query_pointer_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_query_pointer_reply_t* {.bycopy.} = objectresponse_type*: uint8same_screen*: uint8sequence*: uint16length*: uint32root*: xcb_window_tchild*: xcb_window_troot_x*: int16root_y*: int16win_x*: int16win_y*: int16mask*: uint16pad0*: array[2, uint8]xcb_timecoord_t* {.bycopy.} = objecttime*: xcb_timestamp_tx*: int16y*: int16xcb_timecoord_iterator_t* {.bycopy.} = objectdata*: ptr xcb_timecoord_trem*: cintindex*: cintxcb_get_motion_events_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_motion_events_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_tstart*: xcb_timestamp_tstop*: xcb_timestamp_txcb_get_motion_events_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32events_len*: uint32pad1*: array[20, uint8]xcb_translate_coordinates_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_translate_coordinates_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16src_window*: xcb_window_tdst_window*: xcb_window_tsrc_x*: int16src_y*: int16xcb_translate_coordinates_reply_t* {.bycopy.} = objectresponse_type*: uint8same_screen*: uint8sequence*: uint16length*: uint32child*: xcb_window_tdst_x*: int16dst_y*: int16xcb_warp_pointer_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16src_window*: xcb_window_tdst_window*: xcb_window_tsrc_x*: int16src_y*: int16src_width*: uint16src_height*: uint16dst_x*: int16dst_y*: int16xcb_input_focus_t* = enumXCB_INPUT_FOCUS_NONE = 0, ## *< The focus reverts to `XCB_NONE`, so no window will have the input focus.XCB_INPUT_FOCUS_POINTER_ROOT = 1, ## *< The focus reverts to `XCB_POINTER_ROOT` respectively. When the focus reverts,## FocusIn and FocusOut events are generated, but the last-focus-change time is## not changed.XCB_INPUT_FOCUS_PARENT = 2, ## *< The focus reverts to the parent (or closest viewable ancestor) and the new## revert_to value is `XCB_INPUT_FOCUS_NONE`.XCB_INPUT_FOCUS_FOLLOW_KEYBOARD = 3xcb_set_input_focus_request_t* {.bycopy.} = objectmajor_opcode*: uint8revert_to*: uint8length*: uint16focus*: xcb_window_ttime*: xcb_timestamp_txcb_get_input_focus_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_input_focus_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_input_focus_reply_t* {.bycopy.} = objectresponse_type*: uint8revert_to*: uint8sequence*: uint16length*: uint32focus*: xcb_window_txcb_query_keymap_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_keymap_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_query_keymap_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32keys*: array[32, uint8]xcb_open_font_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16fid*: xcb_font_tname_len*: uint16pad1*: array[2, uint8]xcb_close_font_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16font*: xcb_font_txcb_font_draw_t* = enumXCB_FONT_DRAW_LEFT_TO_RIGHT = 0, XCB_FONT_DRAW_RIGHT_TO_LEFT = 1xcb_fontprop_t* {.bycopy.} = objectname*: xcb_atom_tvalue*: uint32xcb_fontprop_iterator_t* {.bycopy.} = objectdata*: ptr xcb_fontprop_trem*: cintindex*: cintxcb_charinfo_t* {.bycopy.} = objectleft_side_bearing*: int16right_side_bearing*: int16character_width*: int16ascent*: int16descent*: int16attributes*: uint16xcb_charinfo_iterator_t* {.bycopy.} = objectdata*: ptr xcb_charinfo_trem*: cintindex*: cintxcb_query_font_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_font_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16font*: xcb_fontable_txcb_query_font_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32min_bounds*: xcb_charinfo_tpad1*: array[4, uint8]max_bounds*: xcb_charinfo_tpad2*: array[4, uint8]min_char_or_byte2*: uint16max_char_or_byte2*: uint16default_char*: uint16properties_len*: uint16draw_direction*: uint8min_byte1*: uint8max_byte1*: uint8all_chars_exist*: uint8font_ascent*: int16font_descent*: int16char_infos_len*: uint32xcb_query_text_extents_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_text_extents_request_t* {.bycopy.} = objectmajor_opcode*: uint8odd_length*: uint8length*: uint16font*: xcb_fontable_txcb_query_text_extents_reply_t* {.bycopy.} = objectresponse_type*: uint8draw_direction*: uint8sequence*: uint16length*: uint32font_ascent*: int16font_descent*: int16overall_ascent*: int16overall_descent*: int16overall_width*: int32overall_left*: int32overall_right*: int32xcb_str_t* {.bycopy.} = objectname_len*: uint8xcb_str_iterator_t* {.bycopy.} = objectdata*: ptr xcb_str_trem*: cintindex*: cintxcb_list_fonts_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_list_fonts_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16max_names*: uint16pattern_len*: uint16xcb_list_fonts_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32names_len*: uint16pad1*: array[22, uint8]xcb_list_fonts_with_info_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_list_fonts_with_info_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16max_names*: uint16pattern_len*: uint16xcb_list_fonts_with_info_reply_t* {.bycopy.} = objectresponse_type*: uint8name_len*: uint8sequence*: uint16length*: uint32min_bounds*: xcb_charinfo_tpad0*: array[4, uint8]max_bounds*: xcb_charinfo_tpad1*: array[4, uint8]min_char_or_byte2*: uint16max_char_or_byte2*: uint16default_char*: uint16properties_len*: uint16draw_direction*: uint8min_byte1*: uint8max_byte1*: uint8all_chars_exist*: uint8font_ascent*: int16font_descent*: int16replies_hint*: uint32xcb_set_font_path_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16font_qty*: uint16pad1*: array[2, uint8]xcb_get_font_path_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_font_path_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_font_path_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32path_len*: uint16pad1*: array[22, uint8]xcb_create_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8depth*: uint8length*: uint16pid*: xcb_pixmap_tdrawable*: xcb_drawable_twidth*: uint16height*: uint16xcb_free_pixmap_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16pixmap*: xcb_pixmap_txcb_gc_t* = enumXCB_GC_FUNCTION = 1, ## *< TODO: Refer to GXXCB_GC_PLANE_MASK = 2, ## *< In graphics operations, given a source and destination pixel, the result is## computed bitwise on corresponding bits of the pixels; that is, a Boolean## operation is performed in each bit plane. The plane-mask restricts the## operation to a subset of planes, so the result is:#### ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask))XCB_GC_FOREGROUND = 4, ## *< Foreground colorpixel.XCB_GC_BACKGROUND = 8, ## *< Background colorpixel.XCB_GC_LINE_WIDTH = 16, ## *< The line-width is measured in pixels and can be greater than or equal to one, a wide line, or the## special value zero, a thin line.XCB_GC_LINE_STYLE = 32, ## *< The line-style defines which sections of a line are drawn:## Solid The full path of the line is drawn.## DoubleDash The full path of the line is drawn, but the even dashes are filled differently## than the odd dashes (see fill-style), with Butt cap-style used where even and## odd dashes meet.## OnOffDash Only the even dashes are drawn, and cap-style applies to all internal ends of## the individual dashes (except NotLast is treated as Butt).XCB_GC_CAP_STYLE = 64, ## *< The cap-style defines how the endpoints of a path are drawn:## NotLast The result is equivalent to Butt, except that for a line-width of zero the final## endpoint is not drawn.## Butt The result is square at the endpoint (perpendicular to the slope of the line)## with no projection beyond.## Round The result is a circular arc with its diameter equal to the line-width, centered## on the endpoint; it is equivalent to Butt for line-width zero.## Projecting The result is square at the end, but the path continues beyond the endpoint for## a distance equal to half the line-width; it is equivalent to Butt for line-width## zero.XCB_GC_JOIN_STYLE = 128, ## *< The join-style defines how corners are drawn for wide lines:## Miter The outer edges of the two lines extend to meet at an angle. However, if the## angle is less than 11 degrees, a Bevel join-style is used instead.## Round The result is a circular arc with a diameter equal to the line-width, centered## on the joinpoint.## Bevel The result is Butt endpoint styles, and then the triangular notch is filled.XCB_GC_FILL_STYLE = 256, ## *< The fill-style defines the contents of the source for line, text, and fill requests. For all text and fill## requests (for example, PolyText8, PolyText16, PolyFillRectangle, FillPoly, and PolyFillArc)## as well as for line requests with line-style Solid, (for example, PolyLine, PolySegment,## PolyRectangle, PolyArc) and for the even dashes for line requests with line-style OnOffDash## or DoubleDash:## Solid Foreground## Tiled Tile## OpaqueStippled A tile with the same width and height as stipple but with background## everywhere stipple has a zero and with foreground everywhere stipple## has a one## Stippled Foreground masked by stipple## For the odd dashes for line requests with line-style DoubleDash:## Solid Background## Tiled Same as for even dashes## OpaqueStippled Same as for even dashes## Stippled Background masked by stippleXCB_GC_FILL_RULE = 512, ## *<XCB_GC_TILE = 1024, ## *< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all## dimensions. When that plane is superimposed on the drawable for use in a graphics operation,## the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable## specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the## origin of whatever destination drawable is specified in a graphics request.## The tile pixmap must have the same root and depth as the gcontext (or a Match error results).## The stipple pixmap must have depth one and must have the same root as the gcontext (or a## Match error results). For fill-style Stippled (but not fill-style## OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an## additional clip mask to be ANDed with the clip-mask.## Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than## others.XCB_GC_STIPPLE = 2048, ## *< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all## dimensions. When that plane is superimposed on the drawable for use in a graphics operation,## the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable## specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the## origin of whatever destination drawable is specified in a graphics request.## The tile pixmap must have the same root and depth as the gcontext (or a Match error results).## The stipple pixmap must have depth one and must have the same root as the gcontext (or a## Match error results). For fill-style Stippled (but not fill-style## OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an## additional clip mask to be ANDed with the clip-mask.## Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than## others.XCB_GC_TILE_STIPPLE_ORIGIN_X = 4096, ## *< TODOXCB_GC_TILE_STIPPLE_ORIGIN_Y = 8192, ## *< TODOXCB_GC_FONT = 16384, ## *< Which font to use for the `ImageText8` and `ImageText16` requests.XCB_GC_SUBWINDOW_MODE = 32768, ## *< For ClipByChildren, both source and destination windows are additionally## clipped by all viewable InputOutput children. For IncludeInferiors, neither## source nor destination window is## clipped by inferiors. This will result in including subwindow contents in the source and drawing## through subwindow boundaries of the destination. The use of IncludeInferiors with a source or## destination window of one depth with mapped inferiors of differing depth is not illegal, but the## semantics is undefined by the core protocol.XCB_GC_GRAPHICS_EXPOSURES = 65536, ## *< Whether ExposureEvents should be generated (1) or not (0).#### The default is 1.XCB_GC_CLIP_ORIGIN_X = 131072, ## *< TODOXCB_GC_CLIP_ORIGIN_Y = 262144, ## *< TODOXCB_GC_CLIP_MASK = 524288, ## *< The clip-mask restricts writes to the destination drawable. Only pixels where the clip-mask has## bits set to 1 are drawn. Pixels are not drawn outside the area covered by the clip-mask or where## the clip-mask has bits set to 0. The clip-mask affects all graphics requests, but it does not clip## sources. The clip-mask origin is interpreted relative to the origin of whatever destination drawable is specified in a graphics request. If a pixmap is specified as the clip-mask, it must have## depth 1 and have the same root as the gcontext (or a Match error results). If clip-mask is None,## then pixels are always drawn, regardless of the clip origin. The clip-mask can also be set with the## SetClipRectangles request.XCB_GC_DASH_OFFSET = 1048576, ## *< TODOXCB_GC_DASH_LIST = 2097152, ## *< TODOXCB_GC_ARC_MODE = 4194304xcb_gx_t* = enumXCB_GX_CLEAR = 0, XCB_GX_AND = 1, XCB_GX_AND_REVERSE = 2, XCB_GX_COPY = 3,XCB_GX_AND_INVERTED = 4, XCB_GX_NOOP = 5, XCB_GX_XOR = 6, XCB_GX_OR = 7, XCB_GX_NOR = 8,XCB_GX_EQUIV = 9, XCB_GX_INVERT = 10, XCB_GX_OR_REVERSE = 11,XCB_GX_COPY_INVERTED = 12, XCB_GX_OR_INVERTED = 13, XCB_GX_NAND = 14, XCB_GX_SET = 15xcb_line_style_t* = enumXCB_LINE_STYLE_SOLID = 0, XCB_LINE_STYLE_ON_OFF_DASH = 1,XCB_LINE_STYLE_DOUBLE_DASH = 2xcb_cap_style_t* = enumXCB_CAP_STYLE_NOT_LAST = 0, XCB_CAP_STYLE_BUTT = 1, XCB_CAP_STYLE_ROUND = 2,XCB_CAP_STYLE_PROJECTING = 3xcb_join_style_t* = enumXCB_JOIN_STYLE_MITER = 0, XCB_JOIN_STYLE_ROUND = 1, XCB_JOIN_STYLE_BEVEL = 2xcb_fill_style_t* = enumXCB_FILL_STYLE_SOLID = 0, XCB_FILL_STYLE_TILED = 1, XCB_FILL_STYLE_STIPPLED = 2,XCB_FILL_STYLE_OPAQUE_STIPPLED = 3xcb_fill_rule_t* = enumXCB_FILL_RULE_EVEN_ODD = 0, XCB_FILL_RULE_WINDING = 1xcb_subwindow_mode_t* = enumXCB_SUBWINDOW_MODE_CLIP_BY_CHILDREN = 0,XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS = 1xcb_arc_mode_t* = enumXCB_ARC_MODE_CHORD = 0, XCB_ARC_MODE_PIE_SLICE = 1xcb_create_gc_value_list_t* {.bycopy.} = objectfunction*: uint32plane_mask*: uint32foreground*: uint32background*: uint32line_width*: uint32line_style*: uint32cap_style*: uint32join_style*: uint32fill_style*: uint32fill_rule*: uint32tile*: xcb_pixmap_tstipple*: xcb_pixmap_ttile_stipple_x_origin*: int32tile_stipple_y_origin*: int32font*: xcb_font_tsubwindow_mode*: uint32graphics_exposures*: xcb_bool32_tclip_x_origin*: int32clip_y_origin*: int32clip_mask*: xcb_pixmap_tdash_offset*: uint32dashes*: uint32arc_mode*: uint32xcb_create_gc_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cid*: xcb_gcontext_tdrawable*: xcb_drawable_tvalue_mask*: uint32xcb_change_gc_value_list_t* {.bycopy.} = objectfunction*: uint32plane_mask*: uint32foreground*: uint32background*: uint32line_width*: uint32line_style*: uint32cap_style*: uint32join_style*: uint32fill_style*: uint32fill_rule*: uint32tile*: xcb_pixmap_tstipple*: xcb_pixmap_ttile_stipple_x_origin*: int32tile_stipple_y_origin*: int32font*: xcb_font_tsubwindow_mode*: uint32graphics_exposures*: xcb_bool32_tclip_x_origin*: int32clip_y_origin*: int32clip_mask*: xcb_pixmap_tdash_offset*: uint32dashes*: uint32arc_mode*: uint32xcb_change_gc_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16gc*: xcb_gcontext_tvalue_mask*: uint32xcb_copy_gc_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16src_gc*: xcb_gcontext_tdst_gc*: xcb_gcontext_tvalue_mask*: uint32xcb_set_dashes_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16gc*: xcb_gcontext_tdash_offset*: uint16dashes_len*: uint16xcb_clip_ordering_t* = enumXCB_CLIP_ORDERING_UNSORTED = 0, XCB_CLIP_ORDERING_Y_SORTED = 1,XCB_CLIP_ORDERING_YX_SORTED = 2, XCB_CLIP_ORDERING_YX_BANDED = 3xcb_set_clip_rectangles_request_t* {.bycopy.} = objectmajor_opcode*: uint8ordering*: uint8length*: uint16gc*: xcb_gcontext_tclip_x_origin*: int16clip_y_origin*: int16xcb_free_gc_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16gc*: xcb_gcontext_txcb_clear_area_request_t* {.bycopy.} = objectmajor_opcode*: uint8exposures*: uint8length*: uint16window*: xcb_window_tx*: int16y*: int16width*: uint16height*: uint16xcb_copy_area_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16src_drawable*: xcb_drawable_tdst_drawable*: xcb_drawable_tgc*: xcb_gcontext_tsrc_x*: int16src_y*: int16dst_x*: int16dst_y*: int16width*: uint16height*: uint16xcb_copy_plane_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16src_drawable*: xcb_drawable_tdst_drawable*: xcb_drawable_tgc*: xcb_gcontext_tsrc_x*: int16src_y*: int16dst_x*: int16dst_y*: int16width*: uint16height*: uint16bit_plane*: uint32xcb_coord_mode_t* = enumXCB_COORD_MODE_ORIGIN = 0, ## *< Treats all coordinates as relative to the origin.XCB_COORD_MODE_PREVIOUS = 1xcb_poly_point_request_t* {.bycopy.} = objectmajor_opcode*: uint8coordinate_mode*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_poly_line_request_t* {.bycopy.} = objectmajor_opcode*: uint8coordinate_mode*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_segment_t* {.bycopy.} = objectx1*: int16y1*: int16x2*: int16y2*: int16xcb_segment_iterator_t* {.bycopy.} = objectdata*: ptr xcb_segment_trem*: cintindex*: cintxcb_poly_segment_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_poly_rectangle_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_poly_arc_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_poly_shape_t* = enumXCB_POLY_SHAPE_COMPLEX = 0, XCB_POLY_SHAPE_NONCONVEX = 1,XCB_POLY_SHAPE_CONVEX = 2xcb_fill_poly_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_tshape*: uint8coordinate_mode*: uint8pad1*: array[2, uint8]xcb_poly_fill_rectangle_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_poly_fill_arc_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_txcb_image_format_t* = enumXCB_IMAGE_FORMAT_XY_BITMAP = 0, XCB_IMAGE_FORMAT_XY_PIXMAP = 1,XCB_IMAGE_FORMAT_Z_PIXMAP = 2xcb_put_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8format*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_twidth*: uint16height*: uint16dst_x*: int16dst_y*: int16left_pad*: uint8depth*: uint8pad0*: array[2, uint8]xcb_get_image_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8format*: uint8length*: uint16drawable*: xcb_drawable_tx*: int16y*: int16width*: uint16height*: uint16plane_mask*: uint32xcb_get_image_reply_t* {.bycopy.} = objectresponse_type*: uint8depth*: uint8sequence*: uint16length*: uint32visual*: xcb_visualid_tpad0*: array[20, uint8]xcb_poly_text_8_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_tx*: int16y*: int16xcb_poly_text_16_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_tx*: int16y*: int16xcb_image_text_8_request_t* {.bycopy.} = objectmajor_opcode*: uint8string_len*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_tx*: int16y*: int16xcb_image_text_16_request_t* {.bycopy.} = objectmajor_opcode*: uint8string_len*: uint8length*: uint16drawable*: xcb_drawable_tgc*: xcb_gcontext_tx*: int16y*: int16xcb_colormap_alloc_t* = enumXCB_COLORMAP_ALLOC_NONE = 0, XCB_COLORMAP_ALLOC_ALL = 1xcb_create_colormap_request_t* {.bycopy.} = objectmajor_opcode*: uint8alloc*: uint8length*: uint16mid*: xcb_colormap_twindow*: xcb_window_tvisual*: xcb_visualid_txcb_free_colormap_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_txcb_copy_colormap_and_free_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16mid*: xcb_colormap_tsrc_cmap*: xcb_colormap_txcb_install_colormap_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_txcb_uninstall_colormap_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_txcb_list_installed_colormaps_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_list_installed_colormaps_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_txcb_list_installed_colormaps_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32cmaps_len*: uint16pad1*: array[22, uint8]xcb_alloc_color_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_alloc_color_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_tred*: uint16green*: uint16blue*: uint16pad1*: array[2, uint8]xcb_alloc_color_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32red*: uint16green*: uint16blue*: uint16pad1*: array[2, uint8]pixel*: uint32xcb_alloc_named_color_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_alloc_named_color_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_tname_len*: uint16pad1*: array[2, uint8]xcb_alloc_named_color_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pixel*: uint32exact_red*: uint16exact_green*: uint16exact_blue*: uint16visual_red*: uint16visual_green*: uint16visual_blue*: uint16xcb_alloc_color_cells_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_alloc_color_cells_request_t* {.bycopy.} = objectmajor_opcode*: uint8contiguous*: uint8length*: uint16cmap*: xcb_colormap_tcolors*: uint16planes*: uint16xcb_alloc_color_cells_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pixels_len*: uint16masks_len*: uint16pad1*: array[20, uint8]xcb_alloc_color_planes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_alloc_color_planes_request_t* {.bycopy.} = objectmajor_opcode*: uint8contiguous*: uint8length*: uint16cmap*: xcb_colormap_tcolors*: uint16reds*: uint16greens*: uint16blues*: uint16xcb_alloc_color_planes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pixels_len*: uint16pad1*: array[2, uint8]red_mask*: uint32green_mask*: uint32blue_mask*: uint32pad2*: array[8, uint8]xcb_free_colors_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_tplane_mask*: uint32xcb_color_flag_t* = enumXCB_COLOR_FLAG_RED = 1, XCB_COLOR_FLAG_GREEN = 2, XCB_COLOR_FLAG_BLUE = 4xcb_coloritem_t* {.bycopy.} = objectpixel*: uint32red*: uint16green*: uint16blue*: uint16flags*: uint8pad0*: uint8xcb_coloritem_iterator_t* {.bycopy.} = objectdata*: ptr xcb_coloritem_trem*: cintindex*: cintxcb_store_colors_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_txcb_store_named_color_request_t* {.bycopy.} = objectmajor_opcode*: uint8flags*: uint8length*: uint16cmap*: xcb_colormap_tpixel*: uint32name_len*: uint16pad0*: array[2, uint8]xcb_rgb_t* {.bycopy.} = objectred*: uint16green*: uint16blue*: uint16pad0*: array[2, uint8]xcb_rgb_iterator_t* {.bycopy.} = objectdata*: ptr xcb_rgb_trem*: cintindex*: cintxcb_query_colors_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_colors_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_txcb_query_colors_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32colors_len*: uint16pad1*: array[22, uint8]xcb_lookup_color_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_lookup_color_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cmap*: xcb_colormap_tname_len*: uint16pad1*: array[2, uint8]xcb_lookup_color_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32exact_red*: uint16exact_green*: uint16exact_blue*: uint16visual_red*: uint16visual_green*: uint16visual_blue*: uint16xcb_pixmap_enum_t* = enumXCB_PIXMAP_NONE = 0xcb_create_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cid*: xcb_cursor_tsource*: xcb_pixmap_tmask*: xcb_pixmap_tfore_red*: uint16fore_green*: uint16fore_blue*: uint16back_red*: uint16back_green*: uint16back_blue*: uint16x*: uint16y*: uint16xcb_font_enum_t* = enumXCB_FONT_NONE = 0xcb_create_glyph_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cid*: xcb_cursor_tsource_font*: xcb_font_tmask_font*: xcb_font_tsource_char*: uint16mask_char*: uint16fore_red*: uint16fore_green*: uint16fore_blue*: uint16back_red*: uint16back_green*: uint16back_blue*: uint16xcb_free_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cursor*: xcb_cursor_txcb_recolor_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16cursor*: xcb_cursor_tfore_red*: uint16fore_green*: uint16fore_blue*: uint16back_red*: uint16back_green*: uint16back_blue*: uint16xcb_query_shape_of_t* = enumXCB_QUERY_SHAPE_OF_LARGEST_CURSOR = 0, XCB_QUERY_SHAPE_OF_FASTEST_TILE = 1,XCB_QUERY_SHAPE_OF_FASTEST_STIPPLE = 2xcb_query_best_size_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_best_size_request_t* {.bycopy.} = objectmajor_opcode*: uint8x_class*: uint8length*: uint16drawable*: xcb_drawable_twidth*: uint16height*: uint16xcb_query_best_size_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width*: uint16height*: uint16xcb_query_extension_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_query_extension_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16name_len*: uint16pad1*: array[2, uint8]xcb_query_extension_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32present*: uint8major_opcode*: uint8first_event*: uint8first_error*: uint8xcb_list_extensions_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_list_extensions_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_list_extensions_reply_t* {.bycopy.} = objectresponse_type*: uint8names_len*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_change_keyboard_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8keycode_count*: uint8length*: uint16first_keycode*: xcb_keycode_tkeysyms_per_keycode*: uint8pad0*: array[2, uint8]xcb_get_keyboard_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_keyboard_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16first_keycode*: xcb_keycode_tcount*: uint8xcb_get_keyboard_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8keysyms_per_keycode*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_kb_t* = enumXCB_KB_KEY_CLICK_PERCENT = 1, XCB_KB_BELL_PERCENT = 2, XCB_KB_BELL_PITCH = 4,XCB_KB_BELL_DURATION = 8, XCB_KB_LED = 16, XCB_KB_LED_MODE = 32, XCB_KB_KEY = 64,XCB_KB_AUTO_REPEAT_MODE = 128xcb_led_mode_t* = enumXCB_LED_MODE_OFF = 0, XCB_LED_MODE_ON = 1xcb_auto_repeat_mode_t* = enumXCB_AUTO_REPEAT_MODE_OFF = 0, XCB_AUTO_REPEAT_MODE_ON = 1,XCB_AUTO_REPEAT_MODE_DEFAULT = 2xcb_change_keyboard_control_value_list_t* {.bycopy.} = objectkey_click_percent*: int32bell_percent*: int32bell_pitch*: int32bell_duration*: int32led*: uint32led_mode*: uint32key*: xcb_keycode32_tauto_repeat_mode*: uint32xcb_change_keyboard_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16value_mask*: uint32xcb_get_keyboard_control_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_keyboard_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_keyboard_control_reply_t* {.bycopy.} = objectresponse_type*: uint8global_auto_repeat*: uint8sequence*: uint16length*: uint32led_mask*: uint32key_click_percent*: uint8bell_percent*: uint8bell_pitch*: uint16bell_duration*: uint16pad0*: array[2, uint8]auto_repeats*: array[32, uint8]xcb_bell_request_t* {.bycopy.} = objectmajor_opcode*: uint8percent*: int8length*: uint16xcb_change_pointer_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16acceleration_numerator*: int16acceleration_denominator*: int16threshold*: int16do_acceleration*: uint8do_threshold*: uint8xcb_get_pointer_control_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_pointer_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_pointer_control_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32acceleration_numerator*: uint16acceleration_denominator*: uint16threshold*: uint16pad1*: array[18, uint8]xcb_blanking_t* = enumXCB_BLANKING_NOT_PREFERRED = 0, XCB_BLANKING_PREFERRED = 1,XCB_BLANKING_DEFAULT = 2xcb_exposures_t* = enumXCB_EXPOSURES_NOT_ALLOWED = 0, XCB_EXPOSURES_ALLOWED = 1,XCB_EXPOSURES_DEFAULT = 2xcb_set_screen_saver_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16timeout*: int16interval*: int16prefer_blanking*: uint8allow_exposures*: uint8xcb_get_screen_saver_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_screen_saver_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_screen_saver_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32timeout*: uint16interval*: uint16prefer_blanking*: uint8allow_exposures*: uint8pad1*: array[18, uint8]xcb_host_mode_t* = enumXCB_HOST_MODE_INSERT = 0, XCB_HOST_MODE_DELETE = 1xcb_family_t* = enumXCB_FAMILY_INTERNET = 0, XCB_FAMILY_DECNET = 1, XCB_FAMILY_CHAOS = 2,XCB_FAMILY_SERVER_INTERPRETED = 5, XCB_FAMILY_INTERNET_6 = 6xcb_change_hosts_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16family*: uint8pad0*: uint8address_len*: uint16xcb_host_t* {.bycopy.} = objectfamily*: uint8pad0*: uint8address_len*: uint16xcb_host_iterator_t* {.bycopy.} = objectdata*: ptr xcb_host_trem*: cintindex*: cintxcb_list_hosts_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_list_hosts_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_list_hosts_reply_t* {.bycopy.} = objectresponse_type*: uint8mode*: uint8sequence*: uint16length*: uint32hosts_len*: uint16pad0*: array[22, uint8]xcb_access_control_t* = enumXCB_ACCESS_CONTROL_DISABLE = 0, XCB_ACCESS_CONTROL_ENABLE = 1xcb_set_access_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16xcb_close_down_t* = enumXCB_CLOSE_DOWN_DESTROY_ALL = 0, XCB_CLOSE_DOWN_RETAIN_PERMANENT = 1,XCB_CLOSE_DOWN_RETAIN_TEMPORARY = 2xcb_set_close_down_mode_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16xcb_kill_t* = enumXCB_KILL_ALL_TEMPORARY = 0xcb_kill_client_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16resource*: uint32xcb_rotate_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16window*: xcb_window_tatoms_len*: uint16delta*: int16xcb_screen_saver_t* = enumXCB_SCREEN_SAVER_RESET = 0, XCB_SCREEN_SAVER_ACTIVE = 1xcb_force_screen_saver_request_t* {.bycopy.} = objectmajor_opcode*: uint8mode*: uint8length*: uint16xcb_mapping_status_t* = enumXCB_MAPPING_STATUS_SUCCESS = 0, XCB_MAPPING_STATUS_BUSY = 1,XCB_MAPPING_STATUS_FAILURE = 2xcb_set_pointer_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_set_pointer_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8map_len*: uint8length*: uint16xcb_set_pointer_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32xcb_get_pointer_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_pointer_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_pointer_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8map_len*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_map_index_t* = enumXCB_MAP_INDEX_SHIFT = 0, XCB_MAP_INDEX_LOCK = 1, XCB_MAP_INDEX_CONTROL = 2,XCB_MAP_INDEX_1 = 3, XCB_MAP_INDEX_2 = 4, XCB_MAP_INDEX_3 = 5, XCB_MAP_INDEX_4 = 6,XCB_MAP_INDEX_5 = 7xcb_set_modifier_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_set_modifier_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8keycodes_per_modifier*: uint8length*: uint16xcb_set_modifier_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8status*: uint8sequence*: uint16length*: uint32xcb_get_modifier_mapping_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_get_modifier_mapping_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_get_modifier_mapping_reply_t* {.bycopy.} = objectresponse_type*: uint8keycodes_per_modifier*: uint8sequence*: uint16length*: uint32pad0*: array[24, uint8]xcb_no_operation_request_t* {.bycopy.} = objectmajor_opcode*: uint8pad0*: uint8length*: uint16xcb_selinux_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16client_major*: uint8client_minor*: uint8xcb_selinux_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32server_major*: uint16server_minor*: uint16xcb_selinux_set_device_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_len*: uint32xcb_selinux_get_device_create_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_device_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_get_device_create_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_set_device_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device*: uint32context_len*: uint32xcb_selinux_get_device_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_device_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16device*: uint32xcb_selinux_get_device_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_set_window_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_len*: uint32xcb_selinux_get_window_create_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_window_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_get_window_create_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_get_window_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_window_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_selinux_get_window_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_list_item_t* {.bycopy.} = objectname*: xcb_atom_tobject_context_len*: uint32data_context_len*: uint32xcb_selinux_list_item_iterator_t* {.bycopy.} = objectdata*: ptr xcb_selinux_list_item_trem*: cintindex*: cintxcb_selinux_set_property_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_len*: uint32xcb_selinux_get_property_create_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_property_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_get_property_create_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_set_property_use_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_len*: uint32xcb_selinux_get_property_use_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_property_use_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_get_property_use_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_get_property_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_property_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tproperty*: xcb_atom_txcb_selinux_get_property_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_get_property_data_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_property_data_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tproperty*: xcb_atom_txcb_selinux_get_property_data_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_list_properties_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_list_properties_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_selinux_list_properties_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32properties_len*: uint32pad1*: array[20, uint8]xcb_selinux_set_selection_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_len*: uint32xcb_selinux_get_selection_create_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_selection_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_get_selection_create_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_set_selection_use_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_len*: uint32xcb_selinux_get_selection_use_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_selection_use_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_get_selection_use_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_get_selection_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_selection_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16selection*: xcb_atom_txcb_selinux_get_selection_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_get_selection_data_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_selection_data_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16selection*: xcb_atom_txcb_selinux_get_selection_data_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_selinux_list_selections_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_list_selections_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_selinux_list_selections_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32selections_len*: uint32pad1*: array[20, uint8]xcb_selinux_get_client_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_selinux_get_client_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16resource*: uint32xcb_selinux_get_client_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32context_len*: uint32pad1*: array[20, uint8]xcb_test_get_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_test_get_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16major_version*: uint8pad0*: uint8minor_version*: uint16xcb_test_get_version_reply_t* {.bycopy.} = objectresponse_type*: uint8major_version*: uint8sequence*: uint16length*: uint32minor_version*: uint16xcb_test_cursor_t* = enumXCB_TEST_CURSOR_NONE = 0, XCB_TEST_CURSOR_CURRENT = 1xcb_test_compare_cursor_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_test_compare_cursor_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_tcursor*: xcb_cursor_txcb_test_compare_cursor_reply_t* {.bycopy.} = objectresponse_type*: uint8same*: uint8sequence*: uint16length*: uint32xcb_test_fake_input_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16`type`*: uint8detail*: uint8pad0*: array[2, uint8]time*: uint32root*: xcb_window_tpad1*: array[8, uint8]rootX*: int16rootY*: int16pad2*: array[7, uint8]deviceid*: uint8xcb_test_grab_control_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16impervious*: uint8pad0*: array[3, uint8]xcb_xv_port_t* = uint32xcb_xv_port_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_port_trem*: cintindex*: cintxcb_xv_encoding_t* = uint32xcb_xv_encoding_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_encoding_trem*: cintindex*: cintxcb_xv_type_t* = enumXCB_XV_TYPE_INPUT_MASK = 1, XCB_XV_TYPE_OUTPUT_MASK = 2,XCB_XV_TYPE_VIDEO_MASK = 4, XCB_XV_TYPE_STILL_MASK = 8,XCB_XV_TYPE_IMAGE_MASK = 16xcb_xv_image_format_info_type_t* = enumXCB_XV_IMAGE_FORMAT_INFO_TYPE_RGB = 0, XCB_XV_IMAGE_FORMAT_INFO_TYPE_YUV = 1xcb_xv_image_format_info_format_t* = enumXCB_XV_IMAGE_FORMAT_INFO_FORMAT_PACKED = 0,XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PLANAR = 1xcb_xv_attribute_flag_t* = enumXCB_XV_ATTRIBUTE_FLAG_GETTABLE = 1, XCB_XV_ATTRIBUTE_FLAG_SETTABLE = 2xcb_xv_video_notify_reason_t* = enumXCB_XV_VIDEO_NOTIFY_REASON_STARTED = 0, XCB_XV_VIDEO_NOTIFY_REASON_STOPPED = 1,XCB_XV_VIDEO_NOTIFY_REASON_BUSY = 2, XCB_XV_VIDEO_NOTIFY_REASON_PREEMPTED = 3,XCB_XV_VIDEO_NOTIFY_REASON_HARD_ERROR = 4xcb_xv_scanline_order_t* = enumXCB_XV_SCANLINE_ORDER_TOP_TO_BOTTOM = 0,XCB_XV_SCANLINE_ORDER_BOTTOM_TO_TOP = 1xcb_xv_grab_port_status_t* = enumXCB_XV_GRAB_PORT_STATUS_SUCCESS = 0, XCB_XV_GRAB_PORT_STATUS_BAD_EXTENSION = 1,XCB_XV_GRAB_PORT_STATUS_ALREADY_GRABBED = 2,XCB_XV_GRAB_PORT_STATUS_INVALID_TIME = 3,XCB_XV_GRAB_PORT_STATUS_BAD_REPLY = 4, XCB_XV_GRAB_PORT_STATUS_BAD_ALLOC = 5xcb_xv_rational_t* {.bycopy.} = objectnumerator*: int32denominator*: int32xcb_xv_rational_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_rational_trem*: cintindex*: cintxcb_xv_format_t* {.bycopy.} = objectvisual*: xcb_visualid_tdepth*: uint8pad0*: array[3, uint8]xcb_xv_format_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_format_trem*: cintindex*: cintxcb_xv_adaptor_info_t* {.bycopy.} = objectbase_id*: xcb_xv_port_tname_size*: uint16num_ports*: uint16num_formats*: uint16`type`*: uint8pad0*: uint8xcb_xv_adaptor_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_adaptor_info_trem*: cintindex*: cintxcb_xv_encoding_info_t* {.bycopy.} = objectencoding*: xcb_xv_encoding_tname_size*: uint16width*: uint16height*: uint16pad0*: array[2, uint8]rate*: xcb_xv_rational_txcb_xv_encoding_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_encoding_info_trem*: cintindex*: cintxcb_xv_image_t* {.bycopy.} = objectid*: uint32width*: uint16height*: uint16data_size*: uint32num_planes*: uint32xcb_xv_image_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_image_trem*: cintindex*: cintxcb_xv_attribute_info_t* {.bycopy.} = objectflags*: uint32min*: int32max*: int32size*: uint32xcb_xv_attribute_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_attribute_info_trem*: cintindex*: cintxcb_xv_image_format_info_t* {.bycopy.} = objectid*: uint32`type`*: uint8byte_order*: uint8pad0*: array[2, uint8]guid*: array[16, uint8]bpp*: uint8num_planes*: uint8pad1*: array[2, uint8]depth*: uint8pad2*: array[3, uint8]red_mask*: uint32green_mask*: uint32blue_mask*: uint32format*: uint8pad3*: array[3, uint8]y_sample_bits*: uint32u_sample_bits*: uint32v_sample_bits*: uint32vhorz_y_period*: uint32vhorz_u_period*: uint32vhorz_v_period*: uint32vvert_y_period*: uint32vvert_u_period*: uint32vvert_v_period*: uint32vcomp_order*: array[32, uint8]vscanline_order*: uint8pad4*: array[11, uint8]xcb_xv_image_format_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xv_image_format_info_trem*: cintindex*: cintxcb_xv_bad_port_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_xv_bad_encoding_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_xv_bad_control_error_t* {.bycopy.} = objectresponse_type*: uint8error_code*: uint8sequence*: uint16xcb_xv_video_notify_event_t* {.bycopy.} = objectresponse_type*: uint8reason*: uint8sequence*: uint16time*: xcb_timestamp_tdrawable*: xcb_drawable_tport*: xcb_xv_port_txcb_xv_port_notify_event_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16time*: xcb_timestamp_tport*: xcb_xv_port_tattribute*: xcb_atom_tvalue*: int32xcb_xv_query_extension_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_query_extension_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xv_query_extension_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major*: uint16minor*: uint16xcb_xv_query_adaptors_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_query_adaptors_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16window*: xcb_window_txcb_xv_query_adaptors_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_adaptors*: uint16pad1*: array[22, uint8]xcb_xv_query_encodings_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_query_encodings_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_txcb_xv_query_encodings_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_encodings*: uint16pad1*: array[22, uint8]xcb_xv_grab_port_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_grab_port_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_ttime*: xcb_timestamp_txcb_xv_grab_port_reply_t* {.bycopy.} = objectresponse_type*: uint8result*: uint8sequence*: uint16length*: uint32xcb_xv_ungrab_port_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_ttime*: xcb_timestamp_txcb_xv_put_video_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_tgc*: xcb_gcontext_tvid_x*: int16vid_y*: int16vid_w*: uint16vid_h*: uint16drw_x*: int16drw_y*: int16drw_w*: uint16drw_h*: uint16xcb_xv_put_still_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_tgc*: xcb_gcontext_tvid_x*: int16vid_y*: int16vid_w*: uint16vid_h*: uint16drw_x*: int16drw_y*: int16drw_w*: uint16drw_h*: uint16xcb_xv_get_video_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_tgc*: xcb_gcontext_tvid_x*: int16vid_y*: int16vid_w*: uint16vid_h*: uint16drw_x*: int16drw_y*: int16drw_w*: uint16drw_h*: uint16xcb_xv_get_still_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_tgc*: xcb_gcontext_tvid_x*: int16vid_y*: int16vid_w*: uint16vid_h*: uint16drw_x*: int16drw_y*: int16drw_w*: uint16drw_h*: uint16xcb_xv_stop_video_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_txcb_xv_select_video_notify_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16drawable*: xcb_drawable_tonoff*: uint8pad0*: array[3, uint8]xcb_xv_select_port_notify_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tonoff*: uint8pad0*: array[3, uint8]xcb_xv_query_best_size_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_query_best_size_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tvid_w*: uint16vid_h*: uint16drw_w*: uint16drw_h*: uint16motion*: uint8pad0*: array[3, uint8]xcb_xv_query_best_size_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32actual_width*: uint16actual_height*: uint16xcb_xv_set_port_attribute_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tattribute*: xcb_atom_tvalue*: int32xcb_xv_get_port_attribute_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_get_port_attribute_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tattribute*: xcb_atom_txcb_xv_get_port_attribute_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32value*: int32xcb_xv_query_port_attributes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_query_port_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_txcb_xv_query_port_attributes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_attributes*: uint32text_size*: uint32pad1*: array[16, uint8]xcb_xv_list_image_formats_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_list_image_formats_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_txcb_xv_list_image_formats_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_formats*: uint32pad1*: array[20, uint8]xcb_xv_query_image_attributes_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xv_query_image_attributes_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tid*: uint32width*: uint16height*: uint16xcb_xv_query_image_attributes_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num_planes*: uint32data_size*: uint32width*: uint16height*: uint16pad1*: array[12, uint8]xcb_xv_put_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_tgc*: xcb_gcontext_tid*: uint32src_x*: int16src_y*: int16src_w*: uint16src_h*: uint16drw_x*: int16drw_y*: int16drw_w*: uint16drw_h*: uint16width*: uint16height*: uint16xcb_xv_shm_put_image_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port*: xcb_xv_port_tdrawable*: xcb_drawable_tgc*: xcb_gcontext_tshmseg*: xcb_shm_seg_tid*: uint32offset*: uint32src_x*: int16src_y*: int16src_w*: uint16src_h*: uint16drw_x*: int16drw_y*: int16drw_w*: uint16drw_h*: uint16width*: uint16height*: uint16send_event*: uint8pad0*: array[3, uint8]xcb_xvmc_context_t* = uint32xcb_xvmc_context_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xvmc_context_trem*: cintindex*: cintxcb_xvmc_surface_t* = uint32xcb_xvmc_surface_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xvmc_surface_trem*: cintindex*: cintxcb_xvmc_subpicture_t* = uint32xcb_xvmc_subpicture_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xvmc_subpicture_trem*: cintindex*: cintxcb_xvmc_surface_info_t* {.bycopy.} = objectid*: xcb_xvmc_surface_tchroma_format*: uint16pad0*: uint16max_width*: uint16max_height*: uint16subpicture_max_width*: uint16subpicture_max_height*: uint16mc_type*: uint32flags*: uint32xcb_xvmc_surface_info_iterator_t* {.bycopy.} = objectdata*: ptr xcb_xvmc_surface_info_trem*: cintindex*: cintxcb_xvmc_query_version_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xvmc_query_version_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16xcb_xvmc_query_version_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32major*: uint32minor*: uint32xcb_xvmc_list_surface_types_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xvmc_list_surface_types_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port_id*: xcb_xv_port_txcb_xvmc_list_surface_types_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num*: uint32pad1*: array[20, uint8]xcb_xvmc_create_context_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xvmc_create_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_id*: xcb_xvmc_context_tport_id*: xcb_xv_port_tsurface_id*: xcb_xvmc_surface_twidth*: uint16height*: uint16flags*: uint32xcb_xvmc_create_context_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width_actual*: uint16height_actual*: uint16flags_return*: uint32pad1*: array[20, uint8]xcb_xvmc_destroy_context_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16context_id*: xcb_xvmc_context_txcb_xvmc_create_surface_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xvmc_create_surface_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16surface_id*: xcb_xvmc_surface_tcontext_id*: xcb_xvmc_context_txcb_xvmc_create_surface_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32pad1*: array[24, uint8]xcb_xvmc_destroy_surface_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16surface_id*: xcb_xvmc_surface_txcb_xvmc_create_subpicture_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xvmc_create_subpicture_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16subpicture_id*: xcb_xvmc_subpicture_tcontext*: xcb_xvmc_context_txvimage_id*: uint32width*: uint16height*: uint16xcb_xvmc_create_subpicture_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32width_actual*: uint16height_actual*: uint16num_palette_entries*: uint16entry_bytes*: uint16component_order*: array[4, uint8]pad1*: array[12, uint8]xcb_xvmc_destroy_subpicture_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16subpicture_id*: xcb_xvmc_subpicture_txcb_xvmc_list_subpicture_types_cookie_t* {.bycopy.} = objectsequence*: uint8xcb_xvmc_list_subpicture_types_request_t* {.bycopy.} = objectmajor_opcode*: uint8minor_opcode*: uint8length*: uint16port_id*: xcb_xv_port_tsurface_id*: xcb_xvmc_surface_txcb_xvmc_list_subpicture_types_reply_t* {.bycopy.} = objectresponse_type*: uint8pad0*: uint8sequence*: uint16length*: uint32num*: uint32pad1*: array[20, uint8]constXCB_ATOM_ANY* = XCB_ATOM_NONE# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_INTEGER = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_NUM = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_DENOM = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT# XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_THRESHOLD = XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCHproc xcb_generate_id*(c: ptr xcb_connection_t): uint32 {.importc, cdecl.}proc xcb_change_property*(c: ptr xcb_connection_t; mode: uint8;window: xcb_window_t; property: xcb_atom_t;`type`: xcb_atom_t; format: uint8; data_len: uint32;data: pointer): xcb_void_cookie_t {.importc, cdecl.}proc xcb_change_property_data*(R: ptr xcb_change_property_request_t): pointer {.importc, cdecl.}proc xcb_change_property_data_length*(R: ptr xcb_change_property_request_t): cint {.importc, cdecl.}proc xcb_change_property_data_end*(R: ptr xcb_change_property_request_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_create_window*(c: ptr xcb_connection_t; depth: uint8; wid: xcb_window_t;parent: xcb_window_t; x: int16; y: int16; width: uint16;height: uint16; border_width: uint16; class: uint16;visual: xcb_visualid_t; value_mask: uint32;value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}proc xcb_intern_atom*(c: ptr xcb_connection_t; only_if_exists: uint8; name_len: uint16; name: cstring): xcb_intern_atom_cookie_t {.importc, cdecl.}proc xcb_intern_atom_reply*(c: ptr xcb_connection_t; cookie: xcb_intern_atom_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_intern_atom_reply_t {.importc, cdecl.}proc xcb_map_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t {.importc, cdecl.}proc xcb_connect*(displayname: cstring; screenp: ptr cint): ptr xcb_connection_t {.importc, cdecl.}proc xcb_get_setup*(c: ptr xcb_connection_t): ptr xcb_setup_t {.importc, cdecl.}proc xcb_setup_roots_iterator*(R: ptr xcb_setup_t): xcb_screen_iterator_t {.importc, cdecl.}proc xcb_screen_next*(i: ptr xcb_screen_iterator_t){.importc, cdecl.}proc xcb_flush*(c: ptr xcb_connection_t): cint {.importc, cdecl.}proc xcb_poll_for_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t {.importc, cdecl.}proc xcb_wait_for_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t {.importc, cdecl.}proc xcb_aux_sync*(c: ptr xcb_connection_t){.importc, cdecl.}proc xcb_destroy_window*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t {.importc, cdecl.}proc xcb_destroy_window_checked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_void_cookie_t {.importc, cdecl.}proc xcb_connection_has_error*(c: ptr xcb_connection_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_reply*(c: ptr xcb_connection_t;cookie: xcb_randr_get_screen_resources_current_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_screen_resources_current_reply_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_resources_current_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_outputs_length*( R: ptr xcb_randr_get_screen_resources_current_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_outputs*( R: ptr xcb_randr_get_screen_resources_current_reply_t): ptr xcb_randr_output_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_outputs_end*( R: ptr xcb_randr_get_screen_resources_current_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_modes*( R: ptr xcb_randr_get_screen_resources_current_reply_t): ptr xcb_randr_mode_info_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_modes_length*( R: ptr xcb_randr_get_screen_resources_current_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_modes_iterator*( R: ptr xcb_randr_get_screen_resources_current_reply_t): xcb_randr_mode_info_iterator_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_names*( R: ptr xcb_randr_get_screen_resources_current_reply_t): ptr uint8 {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_names_length*( R: ptr xcb_randr_get_screen_resources_current_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_names_end*( R: ptr xcb_randr_get_screen_resources_current_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_output_info_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_output_info_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_output_info_reply_t {.importc, cdecl.}proc xcb_randr_get_output_info*( c: ptr xcb_connection_t, output: xcb_randr_output_t, config_timestamp: xcb_timestamp_t): xcb_randr_get_output_info_cookie_t {.importc, cdecl.}# proc xcb_poll_for_queued_event*(c: ptr xcb_connection_t): ptr xcb_special_event_t* = xcb_special_event## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.####proc xcb_big_requests_enable*(c: ptr xcb_connection_t): xcb_big_requests_enable_cookie_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.#### This form can be used only if the request will cause## a reply to be generated. Any returned error will be## placed in the event queue.##proc xcb_big_requests_enable_unchecked*(c: ptr xcb_connection_t): xcb_big_requests_enable_cookie_t {.importc, cdecl.}## *## Return the reply## @param c The connection## @param cookie The cookie## @param e The xcb_generic_error_t supplied#### Returns the reply of the request asked by#### The parameter @p e supplied to this function must be NULL if## xcb_big_requests_enable_unchecked(). is used.## Otherwise, it stores the error if any.#### The returned value must be freed by the caller using free().##proc xcb_big_requests_enable_reply*(c: ptr xcb_connection_t; cookie: xcb_big_requests_enable_cookie_t; ## *<e: ptr ptr xcb_generic_error_t): ptr xcb_big_requests_enable_reply_t {.importc, cdecl.}## *## @}###### This file generated automatically from composite.xml by c_client.py.## Edit at your peril.#### *## @defgroup XCB_Composite_API XCB Composite API## @brief Composite XCB Protocol Implementation.## @{##converter xcb_window_class_tToInt*(x: xcb_window_class_t): int = x.intconverter xcb_cw_tToInt*(x:xcb_cw_t):int = x.intconverter xcb_event_mask_tToInt*(x:xcb_event_mask_t):uint32 = x.uint32# from xcblob.nimproc xcb_create_gc*(c: ptr xcb_connection_t; cid: xcb_gcontext_t;drawable: xcb_drawable_t; value_mask: uint32;value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}## *## @brief Creates a graphics context#### @param c The connection## @param cid The ID with which you will refer to the graphics context, created by## `xcb_generate_id`.## @param drawable Drawable to get the root/depth from.## @return A cookie#### Creates a graphics context. The graphics context can be used with any drawable## that has the same root and depth as the specified drawable.#### This form can be used only if the request will not cause## a reply to be generated. Any returned error will be## saved for handling by xcb_request_check().proc xcb_disconnect*(c: ptr xcb_connection_t) {.importc, cdecl.}## xcb_util.c## *## @brief Parses a display string name in the form documented by X(7x).## @param name The name of the display.## @param host A pointer to a malloc'd copy of the hostname.## @param display A pointer to the display number.## @param screen A pointer to the screen number.## @return 0 on failure, non 0 otherwise.#### Parses the display string name @p display_name in the form## documented by X(7x). Has no side effects on failure. If## @p displayname is @c NULL or empty, it uses the environment## variable DISPLAY. @p hostp is a pointer to a newly allocated string## that contain the host name. @p displayp is set to the display## number and @p screenp to the preferred screen number. @p screenp## can be @c NULL. If @p displayname does not contain a screen number,## it is set to @c 0.##proc xcb_randr_get_crtc_info_reply*(c: ptr xcb_connection_t;cookie: xcb_randr_get_crtc_info_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_crtc_info_reply_t {.importc, cdecl.}proc xcb_randr_get_crtc_info*(c: ptr xcb_connection_t; crtc: xcb_randr_crtc_t;config_timestamp: xcb_timestamp_t): xcb_randr_get_crtc_info_cookie_t {.importc, cdecl.}proc xcb_get_keyboard_mapping_reply*(c: ptr xcb_connection_t; cookie: xcb_get_keyboard_mapping_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_get_keyboard_mapping_reply_t {.importc, cdecl.}proc xcb_get_keyboard_mapping*(c: ptr xcb_connection_t; first_keycode: xcb_keycode_t; count: uint8): xcb_get_keyboard_mapping_cookie_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.#### This form can be used only if the request will cause## a reply to be generated. Any returned error will be## placed in the event queue.##var ALL_COMPONENTS_MASK*: uint16 = ( XCB_XKB_MAP_PART_KEY_TYPES.ord orXCB_XKB_MAP_PART_KEY_SYMS.ord orXCB_XKB_MAP_PART_MODIFIER_MAP.ord orXCB_XKB_MAP_PART_EXPLICIT_COMPONENTS.ord orXCB_XKB_MAP_PART_KEY_ACTIONS.ord orXCB_XKB_MAP_PART_KEY_BEHAVIORS.ord orXCB_XKB_MAP_PART_VIRTUAL_MODS.ord orXCB_XKB_MAP_PART_VIRTUAL_MOD_MAP.ord)proc xcb_xkb_get_map*(c: ptr xcb_connection_t; deviceSpec: xcb_xkb_device_spec_t;full: uint16; partial: uint16; firstType: uint8;nTypes: uint8; firstKeySym: xcb_keycode_t; nKeySyms: uint8;firstKeyAction: xcb_keycode_t; nKeyActions: uint8;firstKeyBehavior: xcb_keycode_t; nKeyBehaviors: uint8;virtualMods: uint16; firstKeyExplicit: xcb_keycode_t;nKeyExplicit: uint8; firstModMapKey: xcb_keycode_t;nModMapKeys: uint8; firstVModMapKey: xcb_keycode_t;nVModMapKeys: uint8): xcb_xkb_get_map_cookie_t {.importc, cdecl.}proc xcb_xkb_get_map_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_get_map_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_get_map_reply_t {.importc, cdecl.}proc xcb_get_extension_data*(c: ptr xcb_connection_t; ext: ptr xcb_extension_t): ptr xcb_query_extension_reply_t {.importc, cdecl.}## *## @brief Prefetch of extension data into the extension cache## @param c The connection.## @param ext The extension data.#### This function allows a "prefetch" of extension data into the## extension cache. Invoking the function may cause a call to## xcb_query_extension, but will not block waiting for the## reply. xcb_get_extension_data will return the prefetched data after## possibly blocking while it is retrieved.##proc xcb_prefetch_extension_data*(c: ptr xcb_connection_t; ext: ptr xcb_extension_t) {.importc, cdecl.}## xcb_conn.c## *## @brief Access the data returned by the server.## @param c The connection.## @return A pointer to an xcb_setup_t structure.#### Accessor for the data returned by the server when the xcb_connection_t## was initialized. This data includes## - the server's required format for images,## - a list of available visuals,## - a list of available screens,## - the server's maximum request length (in the absence of the## BIG-REQUESTS extension),## - and other assorted information.#### See the X protocol specification for more details.#### The result must not be freed.##var xcb_xkb_id*: xcb_extension_t = xcb_extension_t(name: "XKEYBOARD", global_id: 0)proc xcb_xkb_use_extension*(c: ptr xcb_connection_t; wantedMajor: uint16; wantedMinor: uint16): xcb_xkb_use_extension_cookie_t {.importc, cdecl.}proc xcb_xkb_use_extension_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_use_extension_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_use_extension_reply_t {.importc, cdecl.}proc xcb_xkb_select_events_details_serialize*(buffer: ptr pointer; affectWhich: uint16; clear: uint16; selectAll: uint16; aux: ptr xcb_xkb_select_events_details_t): cint {.importc, cdecl.}proc xcb_xkb_select_events_details_unpack*(buffer: pointer; affectWhich: uint16; clear: uint16; selectAll: uint16; aux: ptr xcb_xkb_select_events_details_t): cint {.importc, cdecl.}proc xcb_xkb_select_events_details_sizeof*(buffer: pointer; affectWhich: uint16; clear: uint16; selectAll: uint16): cint {.importc, cdecl.}proc xcb_xkb_select_events_sizeof*(buffer: pointer): cint {.importc, cdecl.}proc xcb_xkb_get_map_map*(R: ptr xcb_xkb_get_map_reply_t): pointer {.importc, cdecl.}## *## Return the reply## @param c The connection## @param cookie The cookie## @param e The xcb_generic_error_t supplied#### Returns the reply of the request asked by#### The parameter @p e supplied to this function must be NULL if## xcb_xkb_get_map_unchecked(). is used.## Otherwise, it stores the error if any.#### The returned value must be freed by the caller using free().proc xcb_xkb_get_map_map_unpack*(buffer: pointer; nTypes: uint8;nKeySyms: uint8; nKeyActions: uint8;totalActions: uint16;totalKeyBehaviors: uint8; virtualMods: uint16;totalKeyExplicit: uint8;totalModMapKeys: uint8;totalVModMapKeys: uint8; present: uint16;aux: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_get_map_map_types_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_get_map_map_types_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): xcb_xkb_key_type_iterator_t {.importc, cdecl.}proc xcb_xkb_get_map_map_syms_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_get_map_map_syms_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): xcb_xkb_key_sym_map_iterator_t {.importc, cdecl.}proc xcb_xkb_get_map_map_acts_rtrn_count*(S: ptr xcb_xkb_get_map_map_t): ptr uint8 {.importc, cdecl.}proc xcb_xkb_get_map_map_acts_rtrn_count_length*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_get_map_map_acts_rtrn_count_end*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_xkb_get_map_map_acts_rtrn_acts*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_action_t {.importc, cdecl.}proc xcb_xkb_get_map_map_acts_rtrn_acts_length*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_get_map_map_acts_rtrn_acts_iterator*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): xcb_xkb_action_iterator_t {.importc, cdecl.}proc xcb_xkb_get_map_map_behaviors_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr xcb_xkb_set_behavior_t {.importc, cdecl.}proc xcb_xkb_get_map_map_behaviors_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_get_map_map_behaviors_rtrn_iterator*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): xcb_xkb_set_behavior_iterator_t {.importc, cdecl.}proc xcb_xkb_get_map_map_vmods_rtrn*(S: ptr xcb_xkb_get_map_map_t): ptr uint8 {.importc, cdecl.}proc xcb_xkb_get_map_map_vmods_rtrn_length*(R: ptr xcb_xkb_get_map_reply_t; S: ptr xcb_xkb_get_map_map_t): cint {.importc, cdecl.}proc xcb_xkb_kt_map_entry_end*(i: xcb_xkb_kt_map_entry_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_xkb_key_type_sizeof*(buffer: pointer): cint {.importc, cdecl.}proc xcb_xkb_key_type_map*(R: ptr xcb_xkb_key_type_t): ptr xcb_xkb_kt_map_entry_t {.importc, cdecl.}proc xcb_xkb_key_type_map_length*(R: ptr xcb_xkb_key_type_t): cint {.importc, cdecl.}proc xcb_xkb_key_type_map_iterator*(R: ptr xcb_xkb_key_type_t): xcb_xkb_kt_map_entry_iterator_t {.importc, cdecl.}proc xcb_xkb_key_type_preserve*(R: ptr xcb_xkb_key_type_t): ptr xcb_xkb_mod_def_t {.importc, cdecl.}proc xcb_xkb_key_type_preserve_length*(R: ptr xcb_xkb_key_type_t): cint {.importc, cdecl.}proc xcb_xkb_key_type_preserve_iterator*(R: ptr xcb_xkb_key_type_t): xcb_xkb_mod_def_iterator_t {.importc, cdecl.}proc xcb_xkb_kt_map_entry_next*(i: ptr xcb_xkb_kt_map_entry_iterator_t) {.importc, cdecl.}## *## Return the iterator pointing to the last element## @param i An xcb_xkb_kt_map_entry_iterator_t## @return The iterator pointing to the last element#### Set the current element in the iterator to the last element.## The member rem is set to 0. The member data points to the## last element.proc xcb_xkb_key_type_next*(i: ptr xcb_xkb_key_type_iterator_t) {.importc, cdecl.}## *## Return the iterator pointing to the last element## @param i An xcb_xkb_key_type_iterator_t## @return The iterator pointing to the last element#### Set the current element in the iterator to the last element.## The member rem is set to 0. The member data points to the## last element.##proc xcb_randr_get_screen_resources_crtcs_length*(reply: ptr xcb_randr_get_screen_resources_reply_t): int {.importc, cdecl.}proc xcb_randr_get_screen_resources_crtcs*(reply: ptr xcb_randr_get_screen_resources_reply_t): int {.importc, cdecl.}proc xcb_randr_get_screen_resources_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_screen_resources_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_screen_resources_reply_t {.importc, cdecl.}proc xcb_randr_get_output_info_sizeof*(buffer: pointer): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_resources_cookie_t {.importc, cdecl.}proc XRRGetOutputPrimary*(dpy: ptr Display, window: Window): RROutput {.importc, cdecl.}proc xcb_poll_for_queued_event*(c: ptr xcb_connection_t): ptr xcb_generic_event_t {.importc, cdecl.}proc xcb_xkb_per_client_flags_reply*(c: ptr xcb_connection_t; cookie: xcb_xkb_per_client_flags_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_xkb_per_client_flags_reply_t {.importc, cdecl.}proc xcb_xkb_per_client_flags_unchecked*(c: ptr xcb_connection_t, deviceSpec: xcb_xkb_device_spec_t, change: uint32; value: uint32, ctrlsToChange: uint32, autoCtrls: uint32, autoCtrlsValues: uint32): xcb_xkb_per_client_flags_cookie_t {.importc, cdecl.}proc XGetXCBConnection*(dpy: ptr Display): ptr xcb_connection_t {.importc, cdecl.}proc xcb_xrm_database_from_default*(conn: ptr xcb_connection_t): ptr xcb_xrm_database_t {.importc, cdecl.}proc xcb_xkb_select_events*( c: ptr xcb_connection_t, deviceSpec: xcb_xkb_device_spec_t, affectWhich: uint16, clear: uint16, selectAll: uint16, affectMap: uint16, map: uint16, details: pointer): xcb_void_cookie_t {.importc, cdecl.}# Find the string value of a resource.# Note that the string is owned by the caller and must be free'd.# @param database The database to query.# @param res_name The fully qualified resource name string.# @param res_class The fully qualified resource class string. This argument# may be left empty / NULL, but if given, it must contain the same number of# components as res_name.# @param out Out parameter to which the value will be written.# @returns 0 if the resource was found, a negative error code otherwise.proc xcb_xrm_resource_get_string*( database: ptr xcb_xrm_database_t, res_name: cstring, res_class: cstring, pout: ptr cstring): int {.importc, cdecl.}## *## @brief change window attributes#### @param c The connection## @param window The window to change.## @param value_mask A bitmask of #xcb_cw_t values.## @param value_mask \n## @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The## order has to correspond to the order of possible \a value_mask bits. See the## example.## @return A cookie#### Changes the attributes specified by \a value_mask for the specified \a window.#### This form can be used only if the request will not cause## a reply to be generated. Any returned error will be## saved for handling by xcb_request_check().##proc xcb_change_window_attributes_checked*(c: ptr xcb_connection_t;window: xcb_window_t; value_mask: uint32; value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}## *## @brief change window attributes#### @param c The connection## @param window The window to change.## @param value_mask A bitmask of #xcb_cw_t values.## @param value_mask \n## @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The## order has to correspond to the order of possible \a value_mask bits. See the## example.## @return A cookie#### Changes the attributes specified by \a value_mask for the specified \a window.####proc xcb_change_window_attributes*(c: ptr xcb_connection_t, window: xcb_window_t, value_mask: uint32, value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}proc xcb_xfixes_select_selection_input_checked*( c: ptr xcb_connection_t, window: xcb_window_t, selection: xcb_atom_t, event_mask: uint32): xcb_void_cookie_t {.importc, cdecl.}proc xcb_query_pointer*(c: ptr xcb_connection_t, window: xcb_window_t): xcb_query_pointer_cookie_t {.importc, cdecl.}proc xcb_grab_pointer*(c: ptr xcb_connection_t; owner_events: uint8;grab_window: xcb_window_t; event_mask: uint16;pointer_mode: uint8; keyboard_mode: uint8;confine_to: xcb_window_t; cursor: xcb_cursor_t;time: xcb_timestamp_t): xcb_grab_pointer_cookie_t {.importc, cdecl.}proc xcb_query_pointer_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_query_pointer_cookie_t {.importc, cdecl.}proc xcb_query_pointer_reply*(c: ptr xcb_connection_t; cookie: xcb_query_pointer_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_query_pointer_reply_t {.importc, cdecl.}proc xcb_randr_get_output_primary*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_output_primary_cookie_t {.importc, cdecl.}proc xcb_randr_get_output_primary_reply*(c: ptr xcb_connection_t, cookie: xcb_randr_get_output_primary_cookie_t, e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_output_primary_reply_t {.importc, cdecl.}proc xcb_randr_query_version*(c: ptr xcb_connection_t; major_version: uint32;minor_version: uint32): xcb_randr_query_version_cookie_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.#### This form can be used only if the request will cause## a reply to be generated. Any returned error will be## placed in the event queue.##proc xcb_randr_query_version_unchecked*(c: ptr xcb_connection_t;major_version: uint32;minor_version: uint32): xcb_randr_query_version_cookie_t {.importc, cdecl.}## *## Return the reply## @param c The connection## @param cookie The cookie## @param e The xcb_generic_error_t supplied#### Returns the reply of the request asked by#### The parameter @p e supplied to this function must be NULL if## xcb_randr_query_version_unchecked(). is used.## Otherwise, it stores the error if any.#### The returned value must be freed by the caller using free().##proc xcb_randr_query_version_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_query_version_cookie_t; ## *<e: ptr ptr xcb_generic_error_t): ptr xcb_randr_query_version_reply_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.####proc xcb_randr_set_screen_config*(c: ptr xcb_connection_t; window: xcb_window_t;timestamp: xcb_timestamp_t;config_timestamp: xcb_timestamp_t;sizeID: uint16; rotation: uint16;rate: uint16): xcb_randr_set_screen_config_cookie_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.#### This form can be used only if the request will cause## a reply to be generated. Any returned error will be## placed in the event queue.##proc xcb_randr_set_screen_config_unchecked*(c: ptr xcb_connection_t;window: xcb_window_t; timestamp: xcb_timestamp_t;config_timestamp: xcb_timestamp_t; sizeID: uint16; rotation: uint16;rate: uint16): xcb_randr_set_screen_config_cookie_t {.importc, cdecl.}## *## Return the reply## @param c The connection## @param cookie The cookie## @param e The xcb_generic_error_t supplied#### Returns the reply of the request asked by#### The parameter @p e supplied to this function must be NULL if## xcb_randr_set_screen_config_unchecked(). is used.## Otherwise, it stores the error if any.#### The returned value must be freed by the caller using free().##proc xcb_randr_set_screen_config_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_set_screen_config_cookie_t; ## *<e: ptr ptr xcb_generic_error_t): ptr xcb_randr_set_screen_config_reply_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.#### This form can be used only if the request will not cause## a reply to be generated. Any returned error will be## saved for handling by xcb_request_check().##proc xcb_randr_select_input_checked*(c: ptr xcb_connection_t; window: xcb_window_t;enable: uint16): xcb_void_cookie_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.####proc xcb_randr_select_input*(c: ptr xcb_connection_t; window: xcb_window_t;enable: uint16): xcb_void_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_info_sizeof*(buffer: pointer): cint {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.####proc xcb_randr_get_screen_info*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_info_cookie_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.#### This form can be used only if the request will cause## a reply to be generated. Any returned error will be## placed in the event queue.##proc xcb_randr_get_screen_info_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_info_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_info_sizes*(R: ptr xcb_randr_get_screen_info_reply_t): ptr xcb_randr_screen_size_t {.importc, cdecl.}proc xcb_randr_get_screen_info_sizes_length*( R: ptr xcb_randr_get_screen_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_info_sizes_iterator*( R: ptr xcb_randr_get_screen_info_reply_t): xcb_randr_screen_size_iterator_t {.importc, cdecl.}proc xcb_randr_get_screen_info_rates_length*( R: ptr xcb_randr_get_screen_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_info_rates_iterator*( R: ptr xcb_randr_get_screen_info_reply_t): xcb_randr_refresh_rates_iterator_t {.importc, cdecl.}## *## Return the reply## @param c The connection## @param cookie The cookie## @param e The xcb_generic_error_t supplied#### Returns the reply of the request asked by#### The parameter @p e supplied to this function must be NULL if## xcb_randr_get_screen_info_unchecked(). is used.## Otherwise, it stores the error if any.#### The returned value must be freed by the caller using free().##proc xcb_randr_get_screen_info_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_screen_info_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_screen_info_reply_t {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.####proc xcb_get_geometry*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_get_geometry_cookie_t {.importc, cdecl.}## *## @brief Get current window geometry#### @param c The connection## @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.## @return A cookie#### Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).#### This form can be used only if the request will cause## a reply to be generated. Any returned error will be## placed in the event queue.##proc xcb_get_geometry_unchecked*(c: ptr xcb_connection_t; drawable: xcb_drawable_t): xcb_get_geometry_cookie_t {.importc, cdecl.}## *## Return the reply## @param c The connection## @param cookie The cookie## @param e The xcb_generic_error_t supplied#### Returns the reply of the request asked by#### The parameter @p e supplied to this function must be NULL if## xcb_get_geometry_unchecked(). is used.## Otherwise, it stores the error if any.#### The returned value must be freed by the caller using free().##proc xcb_get_geometry_reply*(c: ptr xcb_connection_t, cookie: xcb_get_geometry_cookie_t, e: ptr ptr xcb_generic_error_t): ptr xcb_get_geometry_reply_t {.importc, cdecl.}proc xcb_configure_window*(c: ptr xcb_connection_t, window: xcb_window_t, value_mask: uint16, value_list: pointer): xcb_void_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_unchecked*(c: ptr xcb_connection_t, window: xcb_window_t): xcb_randr_get_screen_resources_current_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_crtcs*( R: ptr xcb_randr_get_screen_resources_current_reply_t): ptr xcb_randr_crtc_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_crtcs_length*( R: ptr xcb_randr_get_screen_resources_current_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources_current_crtcs_end*( R: ptr xcb_randr_get_screen_resources_current_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_create_mode*(c: ptr xcb_connection_t, window: xcb_window_t, mode_info: xcb_randr_mode_info_t, name_len: uint32, name: cstring): xcb_randr_create_mode_cookie_t {.importc, cdecl.}proc xcb_randr_create_mode_reply*(c: ptr xcb_connection_t, cookie: xcb_randr_create_mode_cookie_t, e: ptr ptr xcb_generic_error_t): ptr xcb_randr_create_mode_reply_t {.importc, cdecl.}proc xcb_randr_get_output_info_unchecked*(c: ptr xcb_connection_t; output: xcb_randr_output_t; config_timestamp: xcb_timestamp_t): xcb_randr_get_output_info_cookie_t {.importc, cdecl.}proc xcb_randr_get_output_info_crtcs*(R: ptr xcb_randr_get_output_info_reply_t): ptr xcb_randr_crtc_t {.importc, cdecl.}# proc xcb_randr_get_output_info_crtcs_length*( R: ptr xcb_randr_get_output_info_reply_t): cint# proc xcb_randr_get_output_info_crtcs_end*( R: ptr xcb_randr_get_output_info_reply_t): xcb_generic_iterator_tproc xcb_randr_get_output_info_modes*(R: ptr xcb_randr_get_output_info_reply_t): ptr xcb_randr_mode_t {.importc, cdecl.}proc xcb_randr_get_output_info_modes_length*( R: ptr xcb_randr_get_output_info_reply_t): cint {.importc, cdecl.}# proc xcb_randr_get_output_info_modes_end*( R: ptr xcb_randr_get_output_info_reply_t): xcb_generic_iterator_t# proc xcb_randr_get_output_info_clones*(R: ptr xcb_randr_get_output_info_reply_t): ptr xcb_randr_output_t# proc xcb_randr_get_output_info_clones_length*( R: ptr xcb_randr_get_output_info_reply_t): cint# proc xcb_randr_get_output_info_clones_end*( R: ptr xcb_randr_get_output_info_reply_t): xcb_generic_iterator_tproc xcb_randr_get_output_info_name*(R: ptr xcb_randr_get_output_info_reply_t): ptr uint8 {.importc, cdecl.}proc xcb_randr_get_output_info_name_length*( R: ptr xcb_randr_get_output_info_reply_t): cint {.importc, cdecl.}# proc xcb_randr_get_output_info_name_end*(R: ptr xcb_randr_get_output_info_reply_t): xcb_generic_iterator_tproc xcb_randr_get_crtc_info_outputs*(R: ptr xcb_randr_get_crtc_info_reply_t): ptr xcb_randr_output_t {.importc, cdecl.}proc xcb_get_atom_name*(c: ptr xcb_connection_t; atom: xcb_atom_t): xcb_get_atom_name_cookie_t {.importc, cdecl.}proc xcb_get_atom_name_reply*(c: ptr xcb_connection_t; cookie: xcb_get_atom_name_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_get_atom_name_reply_t {.importc, cdecl.}proc xcb_randr_list_output_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_list_output_properties_cookie_t; ## *<e: ptr ptr xcb_generic_error_t): ptr xcb_randr_list_output_properties_reply_t {.importc, cdecl.}proc xcb_randr_list_output_properties_atoms*( R: ptr xcb_randr_list_output_properties_reply_t): ptr xcb_atom_t {.importc, cdecl.}proc xcb_randr_list_output_properties*(c: ptr xcb_connection_t;output: xcb_randr_output_t): xcb_randr_list_output_properties_cookie_t {.importc, cdecl.}proc xcb_get_atom_name_name*(R: ptr xcb_get_atom_name_reply_t): cstring {.importc, cdecl.}proc xcb_randr_get_output_property_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_output_property_cookie_t; e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_output_property_reply_t {.importc, cdecl.}proc xcb_randr_get_output_property_data*(R: ptr xcb_randr_get_output_property_reply_t): ptr uint8 {.importc, cdecl.}proc xcb_randr_get_output_property_data_length*( R: ptr xcb_randr_get_output_property_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_screen_resources_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_resources_cookie_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_crtcs*( R: ptr xcb_randr_get_screen_resources_reply_t): ptr xcb_randr_crtc_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_crtcs_length*( R: ptr xcb_randr_get_screen_resources_reply_t): cint {.cdecl, importc.}proc xcb_randr_get_screen_resources_crtcs_end*( R: ptr xcb_randr_get_screen_resources_reply_t): xcb_generic_iterator_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_outputs*( R: ptr xcb_randr_get_screen_resources_reply_t): ptr xcb_randr_output_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_outputs_length*( R: ptr xcb_randr_get_screen_resources_reply_t): cint {.cdecl, importc.}proc xcb_randr_get_screen_resources_outputs_end*( R: ptr xcb_randr_get_screen_resources_reply_t): xcb_generic_iterator_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_modes*( R: ptr xcb_randr_get_screen_resources_reply_t): ptr xcb_randr_mode_info_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_modes_length*( R: ptr xcb_randr_get_screen_resources_reply_t): cint {.cdecl, importc.}proc xcb_randr_get_screen_resources_modes_iterator*( R: ptr xcb_randr_get_screen_resources_reply_t): xcb_randr_mode_info_iterator_t {.cdecl, importc.}proc xcb_randr_get_screen_resources_names*( R: ptr xcb_randr_get_screen_resources_reply_t): ptr uint8 {.cdecl, importc.}proc xcb_randr_get_screen_resources_names_length*( R: ptr xcb_randr_get_screen_resources_reply_t): cint {.cdecl, importc.}proc xcb_randr_get_screen_resources_names_end*( R: ptr xcb_randr_get_screen_resources_reply_t): xcb_generic_iterator_t {.cdecl, importc.}proc xcb_randr_get_crtc_info_outputs_length*( R: ptr xcb_randr_get_crtc_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_crtc_info_outputs_end*(R: ptr xcb_randr_get_crtc_info_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_crtc_info_possible*(R: ptr xcb_randr_get_crtc_info_reply_t): ptr xcb_randr_output_t {.importc, cdecl.}proc xcb_randr_get_crtc_info_possible_length*( R: ptr xcb_randr_get_crtc_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_list_provider_properties*(c: ptr xcb_connection_t; provider: xcb_randr_provider_t): xcb_randr_list_provider_properties_cookie_t {.importc, cdecl.}proc xcb_randr_list_provider_properties_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_list_provider_properties_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_randr_list_provider_properties_reply_t {.importc, cdecl.}proc xcb_randr_get_provider_info_unchecked*(c: ptr xcb_connection_t; provider: xcb_randr_provider_t; config_timestamp: xcb_timestamp_t): xcb_randr_get_provider_info_cookie_t {.importc, cdecl.}proc xcb_randr_get_provider_info_crtcs*(R: ptr xcb_randr_get_provider_info_reply_t): ptr xcb_randr_crtc_t {.importc, cdecl.}proc xcb_randr_get_provider_info_crtcs_length*( R: ptr xcb_randr_get_provider_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_provider_info_crtcs_end*( R: ptr xcb_randr_get_provider_info_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_provider_info_outputs*( R: ptr xcb_randr_get_provider_info_reply_t): ptr xcb_randr_output_t {.importc, cdecl.}proc xcb_randr_get_provider_info_outputs_length*( R: ptr xcb_randr_get_provider_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_provider_info_outputs_end*( R: ptr xcb_randr_get_provider_info_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_provider_info_associated_providers*( R: ptr xcb_randr_get_provider_info_reply_t): ptr xcb_randr_provider_t {.importc, cdecl.}proc xcb_randr_get_provider_info_associated_providers_length*( R: ptr xcb_randr_get_provider_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_provider_info_associated_providers_end*( R: ptr xcb_randr_get_provider_info_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_provider_info_associated_capability*( R: ptr xcb_randr_get_provider_info_reply_t): ptr uint32 {.importc, cdecl.}proc xcb_randr_get_provider_info_associated_capability_length*( R: ptr xcb_randr_get_provider_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_provider_info_associated_capability_end*( R: ptr xcb_randr_get_provider_info_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_provider_info_name*(R: ptr xcb_randr_get_provider_info_reply_t): cstring {.importc, cdecl.}proc xcb_randr_get_provider_info_name_length*( R: ptr xcb_randr_get_provider_info_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_provider_info_name_end*( R: ptr xcb_randr_get_provider_info_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_list_provider_properties_unchecked*(c: ptr xcb_connection_t; provider: xcb_randr_provider_t): xcb_randr_list_provider_properties_cookie_t {.importc, cdecl.}proc xcb_randr_list_provider_properties_atoms*( R: ptr xcb_randr_list_provider_properties_reply_t): ptr xcb_atom_t {.importc, cdecl.}proc xcb_randr_list_provider_properties_atoms_length*( R: ptr xcb_randr_list_provider_properties_reply_t): cint {.importc, cdecl.}proc xcb_randr_list_provider_properties_atoms_end*( R: ptr xcb_randr_list_provider_properties_reply_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_monitors_sizeof*(buffer: pointer): cint {.importc, cdecl.}## *#### @param c The connection## @return A cookie#### Delivers a request to the X server.####proc xcb_screen_allowed_depths_iterator*(R: ptr xcb_screen_t): xcb_depth_iterator_t {.importc, cdecl.}proc xcb_randr_get_monitors*(c: ptr xcb_connection_t; window: xcb_window_t;get_active: uint8): xcb_randr_get_monitors_cookie_t {.importc, cdecl.}proc xcb_randr_get_monitors_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t; get_active: uint8): xcb_randr_get_monitors_cookie_t {.importc, cdecl.}proc xcb_randr_get_monitors_monitors_length*( R: ptr xcb_randr_get_monitors_reply_t): cint {.importc, cdecl.}proc xcb_randr_get_monitors_monitors_iterator*( R: ptr xcb_randr_get_monitors_reply_t): xcb_randr_monitor_info_iterator_t {.importc, cdecl.}proc xcb_randr_get_monitors_reply*(c: ptr xcb_connection_t; cookie: xcb_randr_get_monitors_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_monitors_reply_t {.importc, cdecl.}proc xcb_randr_mode_next*(i: ptr xcb_randr_mode_iterator_t) {.importc, cdecl.}proc xcb_randr_mode_end*(i: xcb_randr_mode_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_crtc_next*(i: ptr xcb_randr_crtc_iterator_t) {.importc, cdecl.}proc xcb_randr_crtc_end*(i: xcb_randr_crtc_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_output_next*(i: ptr xcb_randr_output_iterator_t) {.importc, cdecl.}proc xcb_randr_output_end*(i: xcb_randr_output_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_provider_next*(i: ptr xcb_randr_provider_iterator_t) {.importc, cdecl.}proc xcb_randr_provider_end*(i: xcb_randr_provider_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_lease_next*(i: ptr xcb_randr_lease_iterator_t) {.importc, cdecl.}proc xcb_randr_lease_end*(i: xcb_randr_lease_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_screen_size_next*(i: ptr xcb_randr_screen_size_iterator_t) {.importc, cdecl.}proc xcb_randr_screen_size_end*(i: xcb_randr_screen_size_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_refresh_rates_sizeof*(buffer: pointer): cint {.importc, cdecl.}proc xcb_randr_refresh_rates_rates*(R: ptr xcb_randr_refresh_rates_t): ptr uint16 {.importc, cdecl.}proc xcb_randr_refresh_rates_rates_length*(R: ptr xcb_randr_refresh_rates_t): cint {.importc, cdecl.}proc xcb_randr_refresh_rates_rates_end*(R: ptr xcb_randr_refresh_rates_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_refresh_rates_next*(i: ptr xcb_randr_refresh_rates_iterator_t) {.importc, cdecl.}proc xcb_randr_refresh_rates_end*(i: xcb_randr_refresh_rates_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_screen_size_range*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_size_range_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_size_range_unchecked*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_randr_get_screen_size_range_cookie_t {.importc, cdecl.}proc xcb_randr_get_screen_size_range_reply*(c: ptr xcb_connection_t;cookie: xcb_randr_get_screen_size_range_cookie_t;e: ptr ptr xcb_generic_error_t): ptr xcb_randr_get_screen_size_range_reply_t {.importc, cdecl.}proc xcb_randr_set_screen_size_checked*(c: ptr xcb_connection_t;window: xcb_window_t; width: uint16;height: uint16; mm_width: uint32;mm_height: uint32): xcb_void_cookie_t {.importc, cdecl.}proc xcb_randr_set_screen_size*(c: ptr xcb_connection_t; window: xcb_window_t;width: uint16; height: uint16;mm_width: uint32; mm_height: uint32): xcb_void_cookie_t {.importc, cdecl.}proc xcb_randr_mode_info_next*(i: ptr xcb_randr_mode_info_iterator_t) {.importc, cdecl.}proc xcb_randr_mode_info_end*(i: xcb_randr_mode_info_iterator_t): xcb_generic_iterator_t {.importc, cdecl.}proc xcb_randr_get_screen_resources_sizeof*(buffer: pointer): cint {.importc, cdecl.}proc xcb_randr_monitor_info_outputs*(R: ptr xcb_randr_monitor_info_t): ptr xcb_randr_output_t {.importc, cdecl.}proc xcb_randr_monitor_info_outputs_length*(R: ptr xcb_randr_monitor_info_t): cint {.importc, cdecl.}proc xcb_randr_monitor_info_next*(i: ptr xcb_randr_monitor_info_iterator_t) {.importc, cdecl.}proc xcb_randr_get_output_property*( c: ptr xcb_connection_t, output: xcb_randr_output_t, property: xcb_atom_t, ty: xcb_atom_t, long_offset: uint32, long_length: uint32, del: uint8, pending: uint8): xcb_randr_get_output_property_cookie_t {.importc, cdecl.}proc xcb_list_properties_reply*(c: ptr xcb_connection_t, cookie: xcb_list_properties_cookie_t, e: ptr ptr xcb_generic_error_t): ptr xcb_list_properties_reply_t {.importc, cdecl.}proc xcb_list_properties_atoms*(R: ptr xcb_list_properties_reply_t): ptr xcb_atom_t {.importc, cdecl.}proc xcb_list_properties_atoms_length*(R: ptr xcb_list_properties_reply_t): cint {.importc, cdecl.}proc xcb_list_properties*(c: ptr xcb_connection_t; window: xcb_window_t): xcb_list_properties_cookie_t {.importc, cdecl.}proc xcb_list_properties_sizeof*(buffer: pointer): cint {.importc, cdecl.}# is pointer return right?proc xcb_get_property_value*(R: ptr xcb_get_property_reply_t): pointer {.importc, cdecl.}proc xcb_get_property_value_length*(R: ptr xcb_get_property_reply_t): cint {.importc, cdecl.}proc xcb_get_property_reply*( c: ptr xcb_connection_t; cookie: xcb_get_property_cookie_t, e: ptr ptr xcb_generic_error_t): ptr xcb_get_property_reply_t {.importc, cdecl.}# DO NOT DELETE THE DOCS BELOWproc xcb_get_property*( c: ptr xcb_connection_t, del: uint8, window: xcb_window_t, property: xcb_atom_t, ty: xcb_atom_t, long_offset: uint32, long_length: uint32): xcb_get_property_cookie_t {.importc, cdecl.}# ## *# ## @brief Gets a window property# ### ## @param c The connection# ## @param _delete Whether the property should actually be deleted. For deleting a property, the# ## specified \a type has to match the actual property type.# ## @param window The window whose property you want to get.# ## @param property The property you want to get (an atom).# ## @param type The type of the property you want to get (an atom).# ## @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the# ## data is to be retrieved.# ## @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you# ## set \a long_length to 4, you will receive 16 bytes of data).# ## @return A cookie# ### ## Gets the specified \a property from the specified \a window. Properties are for# ## example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).# ## Protocols such as EWMH also use properties - for example EWMH defines the# ## window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.# ### ## TODO: talk about \a type# ### ## TODO: talk about `delete`# ### ## TODO: talk about the offset/length thing. what's a valid use case?# ### ## This form can be used only if the request will cause# ## a reply to be generated. Any returned error will be# ## placed in the event queue.proc xcb_ewmh_get_workarea*(ewmh: ptr xcb_ewmh_connection_t; screen_nbr: cint): xcb_get_property_cookie_t {.importc, cdecl.}proc xcb_ewmh_get_workarea_from_reply*(wa: ptr xcb_ewmh_get_workarea_reply_t; r: ptr xcb_get_property_reply_t): uint8 {.importc, cdecl.}proc xcb_ewmh_get_workarea_reply*(ewmh: ptr xcb_ewmh_connection_t;cookie: xcb_get_property_cookie_t;wa: ptr xcb_ewmh_get_workarea_reply_t;e: ptr ptr xcb_generic_error_t): uint8 {.importc, cdecl.}proc xcb_get_property_unchecked*(c: ptr xcb_connection_t, delete: uint8, window: xcb_window_t, property: xcb_atom_t, ty: xcb_atom_t, long_offset: uint32, long_length: uint32): xcb_get_property_cookie_t {.importc, cdecl.}proc xcb_ewmh_init_atoms*(c: ptr xcb_connection_t; ewmh: ptr xcb_ewmh_connection_t): ptr xcb_intern_atom_cookie_t {.importc, cdecl.}proc xcb_ewmh_init_atoms_replies*( ewmh: ptr xcb_ewmh_connection_t, ewmh_cookies: ptr xcb_intern_atom_cookie_t, e: ptr ptr xcb_generic_error_t): uint8 {.importc, cdecl.}typeWMSizeHints* {.bycopy.} = objectflags* : uint32x*: int32y* : int32width*: int32height* : int32minWidth*: int32minHeight*: int32maxWidth*: int32maxHeight* : int32widthInc*: int32heightInc* : int32minAspectNum*: int32minAspectDen* : int32maxAspectNum*: int32maxAspectDen* : int32baseWidth*: int32baseHeight* : int32winGravity* : uint32WMSizeHintsFlag* = enumWM_SIZE_HINT_US_POSITION = 1U shl 0WM_SIZE_HINT_US_SIZE = 1U shl 1WM_SIZE_HINT_P_POSITION = 1U shl 2WM_SIZE_HINT_P_SIZE = 1U shl 3WM_SIZE_HINT_P_MIN_SIZE = 1U shl 4WM_SIZE_HINT_P_MAX_SIZE = 1U shl 5WM_SIZE_HINT_P_RESIZE_INC = 1U shl 6WM_SIZE_HINT_P_ASPECT = 1U shl 7WM_SIZE_HINT_BASE_SIZE = 1U shl 8WM_SIZE_HINT_P_WIN_GRAVITY = 1U shl 9constMWM_HINTS_FUNCTIONS* = 1 shl 0MWM_HINTS_DECORATIONS* = 1 shl 1# MWM_DECOR_ALL = 1 shl 0MWM_DECOR_BORDER* = 1 shl 1MWM_DECOR_RESIZEH* = 1 shl 2MWM_DECOR_TITLE* = 1 shl 3MWM_DECOR_MENU* = 1 shl 4MWM_DECOR_MINIMIZE* = 1 shl 5MWM_DECOR_MAXIMIZE* = 1 shl 6# MWM_FUNC_ALL = 1 shl 0MWM_FUNC_RESIZE* = 1 shl 1MWM_FUNC_MOVE* = 1 shl 2MWM_FUNC_MINIMIZE* = 1 shl 3MWM_FUNC_MAXIMIZE* = 1 shl 4MWM_FUNC_CLOSE* = 1 shl 5constxcb_xfixes_id* = xcb_extension_t( name: "XFIXES", global_id: 0)err0* = cast[ptr ptr xcb_generic_error_t](0)err1* = cast[ptr ptr xcb_generic_error_t](1)
## THIS IS A GENERATED FILE## Do not change! Changing this file implies a protocol change!#importxconstXA_PRIMARY* = Atom(1)XA_SECONDARY* = Atom(2)XA_ARC* = Atom(3)XA_ATOM* = Atom(4)XA_BITMAP* = Atom(5)XA_CARDINAL* = Atom(6)XA_COLORMAP* = Atom(7)XA_CURSOR* = Atom(8)XA_CUT_BUFFER0* = Atom(9)XA_CUT_BUFFER1* = Atom(10)XA_CUT_BUFFER2* = Atom(11)XA_CUT_BUFFER3* = Atom(12)XA_CUT_BUFFER4* = Atom(13)XA_CUT_BUFFER5* = Atom(14)XA_CUT_BUFFER6* = Atom(15)XA_CUT_BUFFER7* = Atom(16)XA_DRAWABLE* = Atom(17)XA_FONT* = Atom(18)XA_INTEGER* = Atom(19)XA_PIXMAP* = Atom(20)XA_POINT* = Atom(21)XA_RECTANGLE* = Atom(22)XA_RESOURCE_MANAGER* = Atom(23)XA_RGB_COLOR_MAP* = Atom(24)XA_RGB_BEST_MAP* = Atom(25)XA_RGB_BLUE_MAP* = Atom(26)XA_RGB_DEFAULT_MAP* = Atom(27)XA_RGB_GRAY_MAP* = Atom(28)XA_RGB_GREEN_MAP* = Atom(29)XA_RGB_RED_MAP* = Atom(30)XA_STRING* = Atom(31)XA_VISUALID* = Atom(32)XA_WINDOW* = Atom(33)XA_WM_COMMAND* = Atom(34)XA_WM_HINTS* = Atom(35)XA_WM_CLIENT_MACHINE* = Atom(36)XA_WM_ICON_NAME* = Atom(37)XA_WM_ICON_SIZE* = Atom(38)XA_WM_NAME* = Atom(39)XA_WM_NORMAL_HINTS* = Atom(40)XA_WM_SIZE_HINTS* = Atom(41)XA_WM_ZOOM_HINTS* = Atom(42)XA_MIN_SPACE* = Atom(43)XA_NORM_SPACE* = Atom(44)XA_MAX_SPACE* = Atom(45)XA_END_SPACE* = Atom(46)XA_SUPERSCRIPT_X* = Atom(47)XA_SUPERSCRIPT_Y* = Atom(48)XA_SUBSCRIPT_X* = Atom(49)XA_SUBSCRIPT_Y* = Atom(50)XA_UNDERLINE_POSITION* = Atom(51)XA_UNDERLINE_THICKNESS* = Atom(52)XA_STRIKEOUT_ASCENT* = Atom(53)XA_STRIKEOUT_DESCENT* = Atom(54)XA_ITALIC_ANGLE* = Atom(55)XA_X_HEIGHT* = Atom(56)XA_QUAD_WIDTH* = Atom(57)XA_WEIGHT* = Atom(58)XA_POINT_SIZE* = Atom(59)XA_RESOLUTION* = Atom(60)XA_COPYRIGHT* = Atom(61)XA_NOTICE* = Atom(62)XA_FONT_NAME* = Atom(63)XA_FAMILY_NAME* = Atom(64)XA_FULL_NAME* = Atom(65)XA_CAP_HEIGHT* = Atom(66)XA_WM_CLASS* = Atom(67)XA_WM_TRANSIENT_FOR* = Atom(68)XA_LAST_PREDEFINED* = Atom(68)# implementation
# included from xlib bindingswhen defined(use_pkg_config) or defined(use_pkg_config_static):{.pragma: libx11, cdecl, importc.}{.pragma: libx11c, cdecl.}when defined(use_pkg_config_static):{.passl: gorge("pkg-config x11 --static --libs").}else:{.passl: gorge("pkg-config x11 --libs").}else:when defined(macosx):constlibX11* = "libX11.dylib"else:constlibX11* = "libX11.so(|.6)"{.pragma: libx11, cdecl, dynlib: libX11, importc.}{.pragma: libx11c, cdecl, dynlib: libX11.}
## Automatically converted by H2Pas 0.99.15 from x.h# The following command line parameters were used:# -p# -T# -S# -d# -c# x.h## Pointers to basic pascal types, inserted by h2pas conversion program.constX_PROTOCOL* = 11X_PROTOCOL_REVISION* = 0typePXID* = ptr XIDXID* = culongPMask* = ptr MaskMask* = culongPPAtom* = ptr PAtomPAtom* = ptr AtomAtom* = culongPVisualID* = ptr VisualIDVisualID* = culongPTime* = ptr TimeTime* = culongPPWindow* = ptr PWindowPWindow* = ptr WindowWindow* = XIDPDrawable* = ptr DrawableDrawable* = XIDPFont* = ptr FontFont* = XIDPPixmap* = ptr PixmapPixmap* = XIDPCursor* = ptr CursorCursor* = XIDPColormap* = ptr ColormapColormap* = XIDPGContext* = ptr GContextGContext* = XIDPKeySym* = ptr KeySymKeySym* = XIDPKeyCode* = ptr KeyCodeKeyCode* = char{.deprecated: [TXID: XID].}{.deprecated: [TMask: Mask].}{.deprecated: [TAtom: Atom].}{.deprecated: [TVisualID: VisualID].}{.deprecated: [TTime: Time].}{.deprecated: [TWindow: Window].}{.deprecated: [TDrawable: Drawable].}{.deprecated: [TFont: Font].}{.deprecated: [TPixmap: Pixmap].}{.deprecated: [TCursor: Cursor].}{.deprecated: [TColormap: Colormap].}{.deprecated: [TGContext: GContext].}{.deprecated: [TKeySym: KeySym].}{.deprecated: [TKeyCode: KeyCode].}constNone* = 0ParentRelative* = 1CopyFromParent* = 0PointerWindow* = 0InputFocus* = 1PointerRoot* = 1AnyPropertyType* = 0AnyKey* = 0AnyButton* = 0AllTemporary* = 0CurrentTime* = 0NoSymbol* = 0NoEventMask* = 0KeyPressMask* = 1 shl 0KeyReleaseMask* = 1 shl 1ButtonPressMask* = 1 shl 2ButtonReleaseMask* = 1 shl 3EnterWindowMask* = 1 shl 4LeaveWindowMask* = 1 shl 5PointerMotionMask* = 1 shl 6PointerMotionHintMask* = 1 shl 7Button1MotionMask* = 1 shl 8Button2MotionMask* = 1 shl 9Button3MotionMask* = 1 shl 10Button4MotionMask* = 1 shl 11Button5MotionMask* = 1 shl 12ButtonMotionMask* = 1 shl 13KeymapStateMask* = 1 shl 14ExposureMask* = 1 shl 15VisibilityChangeMask* = 1 shl 16StructureNotifyMask* = 1 shl 17ResizeRedirectMask* = 1 shl 18SubstructureNotifyMask* = 1 shl 19SubstructureRedirectMask* = 1 shl 20FocusChangeMask* = 1 shl 21PropertyChangeMask* = 1 shl 22ColormapChangeMask* = 1 shl 23OwnerGrabButtonMask* = 1 shl 24KeyPress* = 2KeyRelease* = 3ButtonPress* = 4ButtonRelease* = 5MotionNotify* = 6EnterNotify* = 7LeaveNotify* = 8FocusIn* = 9FocusOut* = 10KeymapNotify* = 11Expose* = 12GraphicsExpose* = 13NoExpose* = 14VisibilityNotify* = 15CreateNotify* = 16DestroyNotify* = 17UnmapNotify* = 18MapNotify* = 19MapRequest* = 20ReparentNotify* = 21ConfigureNotify* = 22ConfigureRequest* = 23GravityNotify* = 24ResizeRequest* = 25CirculateNotify* = 26CirculateRequest* = 27PropertyNotify* = 28SelectionClear* = 29SelectionRequest* = 30SelectionNotify* = 31ColormapNotify* = 32ClientMessage* = 33MappingNotify* = 34GenericEvent* = 35LASTEvent* = 36ShiftMask* = 1 shl 0LockMask* = 1 shl 1ControlMask* = 1 shl 2Mod1Mask* = 1 shl 3Mod2Mask* = 1 shl 4Mod3Mask* = 1 shl 5Mod4Mask* = 1 shl 6Mod5Mask* = 1 shl 7ShiftMapIndex* = 0LockMapIndex* = 1ControlMapIndex* = 2Mod1MapIndex* = 3Mod2MapIndex* = 4Mod3MapIndex* = 5Mod4MapIndex* = 6Mod5MapIndex* = 7Button1Mask* = 1 shl 8Button2Mask* = 1 shl 9Button3Mask* = 1 shl 10Button4Mask* = 1 shl 11Button5Mask* = 1 shl 12AnyModifier* = 1 shl 15Button1* = 1Button2* = 2Button3* = 3Button4* = 4Button5* = 5NotifyNormal* = 0NotifyGrab* = 1NotifyUngrab* = 2NotifyWhileGrabbed* = 3NotifyHint* = 1NotifyAncestor* = 0NotifyVirtual* = 1NotifyInferior* = 2NotifyNonlinear* = 3NotifyNonlinearVirtual* = 4NotifyPointer* = 5NotifyPointerRoot* = 6NotifyDetailNone* = 7VisibilityUnobscured* = 0VisibilityPartiallyObscured* = 1VisibilityFullyObscured* = 2PlaceOnTop* = 0PlaceOnBottom* = 1FamilyInternet* = 0FamilyDECnet* = 1FamilyChaos* = 2FamilyInternet6* = 6FamilyServerInterpreted* = 5PropertyNewValue* = 0PropertyDelete* = 1ColormapUninstalled* = 0ColormapInstalled* = 1GrabModeSync* = 0GrabModeAsync* = 1GrabSuccess* = 0AlreadyGrabbed* = 1GrabInvalidTime* = 2GrabNotViewable* = 3GrabFrozen* = 4AsyncPointer* = 0SyncPointer* = 1ReplayPointer* = 2AsyncKeyboard* = 3SyncKeyboard* = 4ReplayKeyboard* = 5AsyncBoth* = 6SyncBoth* = 7RevertToNone* = NoneRevertToPointerRoot* = PointerRootRevertToParent* = 2Success* = 0BadRequest* = 1BadValue* = 2BadWindow* = 3BadPixmap* = 4BadAtom* = 5BadCursor* = 6BadFont* = 7BadMatch* = 8BadDrawable* = 9BadAccess* = 10BadAlloc* = 11BadColor* = 12BadGC* = 13BadIDChoice* = 14BadName* = 15BadLength* = 16BadImplementation* = 17FirstExtensionError* = 128LastExtensionError* = 255InputOutput* = 1InputOnly* = 2CWBackPixmap* = 1 shl 0CWBackPixel* = 1 shl 1CWBorderPixmap* = 1 shl 2CWBorderPixel* = 1 shl 3CWBitGravity* = 1 shl 4CWWinGravity* = 1 shl 5CWBackingStore* = 1 shl 6CWBackingPlanes* = 1 shl 7CWBackingPixel* = 1 shl 8CWOverrideRedirect* = 1 shl 9CWSaveUnder* = 1 shl 10CWEventMask* = 1 shl 11CWDontPropagate* = 1 shl 12CWColormap* = 1 shl 13CWCursor* = 1 shl 14CWX* = 1 shl 0CWY* = 1 shl 1CWWidth* = 1 shl 2CWHeight* = 1 shl 3CWBorderWidth* = 1 shl 4CWSibling* = 1 shl 5CWStackMode* = 1 shl 6ForgetGravity* = 0NorthWestGravity* = 1NorthGravity* = 2NorthEastGravity* = 3WestGravity* = 4CenterGravity* = 5EastGravity* = 6SouthWestGravity* = 7SouthGravity* = 8SouthEastGravity* = 9StaticGravity* = 10UnmapGravity* = 0NotUseful* = 0WhenMapped* = 1Always* = 2IsUnmapped* = 0IsUnviewable* = 1IsViewable* = 2SetModeInsert* = 0SetModeDelete* = 1DestroyAll* = 0RetainPermanent* = 1RetainTemporary* = 2Above* = 0Below* = 1TopIf* = 2BottomIf* = 3Opposite* = 4RaiseLowest* = 0LowerHighest* = 1PropModeReplace* = 0PropModePrepend* = 1PropModeAppend* = 2GXclear* = 0x00000000GXand* = 0x00000001GXandReverse* = 0x00000002GXcopy* = 0x00000003GXandInverted* = 0x00000004GXnoop* = 0x00000005GXxor* = 0x00000006GXor* = 0x00000007GXnor* = 0x00000008GXequiv* = 0x00000009GXinvert* = 0x0000000AGXorReverse* = 0x0000000BGXcopyInverted* = 0x0000000CGXorInverted* = 0x0000000DGXnand* = 0x0000000EGXset* = 0x0000000FLineSolid* = 0LineOnOffDash* = 1LineDoubleDash* = 2CapNotLast* = 0CapButt* = 1CapRound* = 2CapProjecting* = 3JoinMiter* = 0JoinRound* = 1JoinBevel* = 2FillSolid* = 0FillTiled* = 1FillStippled* = 2FillOpaqueStippled* = 3EvenOddRule* = 0WindingRule* = 1ClipByChildren* = 0IncludeInferiors* = 1Unsorted* = 0YSorted* = 1YXSorted* = 2YXBanded* = 3CoordModeOrigin* = 0CoordModePrevious* = 1Complex* = 0Nonconvex* = 1Convex* = 2ArcChord* = 0ArcPieSlice* = 1GCFunction* = 1 shl 0GCPlaneMask* = 1 shl 1GCForeground* = 1 shl 2GCBackground* = 1 shl 3GCLineWidth* = 1 shl 4GCLineStyle* = 1 shl 5GCCapStyle* = 1 shl 6GCJoinStyle* = 1 shl 7GCFillStyle* = 1 shl 8GCFillRule* = 1 shl 9GCTile* = 1 shl 10GCStipple* = 1 shl 11GCTileStipXOrigin* = 1 shl 12GCTileStipYOrigin* = 1 shl 13GCFont* = 1 shl 14GCSubwindowMode* = 1 shl 15GCGraphicsExposures* = 1 shl 16GCClipXOrigin* = 1 shl 17GCClipYOrigin* = 1 shl 18GCClipMask* = 1 shl 19GCDashOffset* = 1 shl 20GCDashList* = 1 shl 21GCArcMode* = 1 shl 22GCLastBit* = 22FontLeftToRight* = 0FontRightToLeft* = 1FontChange* = 255XYBitmap* = 0XYPixmap* = 1ZPixmap* = 2AllocNone* = 0AllocAll* = 1DoRed* = 1 shl 0DoGreen* = 1 shl 1DoBlue* = 1 shl 2CursorShape* = 0TileShape* = 1StippleShape* = 2AutoRepeatModeOff* = 0AutoRepeatModeOn* = 1AutoRepeatModeDefault* = 2LedModeOff* = 0LedModeOn* = 1KBKeyClickPercent* = 1 shl 0KBBellPercent* = 1 shl 1KBBellPitch* = 1 shl 2KBBellDuration* = 1 shl 3KBLed* = 1 shl 4KBLedMode* = 1 shl 5KBKey* = 1 shl 6KBAutoRepeatMode* = 1 shl 7MappingSuccess* = 0MappingBusy* = 1MappingFailed* = 2MappingModifier* = 0MappingKeyboard* = 1MappingPointer* = 2DontPreferBlanking* = 0PreferBlanking* = 1DefaultBlanking* = 2DisableScreenSaver* = 0DisableScreenInterval* = 0DontAllowExposures* = 0AllowExposures* = 1DefaultExposures* = 2ScreenSaverReset* = 0ScreenSaverActive* = 1HostInsert* = 0HostDelete* = 1EnableAccess* = 1DisableAccess* = 0StaticGray* = 0GrayScale* = 1StaticColor* = 2PseudoColor* = 3TrueColor* = 4DirectColor* = 5LSBFirst* = 0MSBFirst* = 1# implementation
{.deadCodeElim: on.}## The "X11 Window System Protocol" standard defines in Appendix A the## keysym codes. These 29-bit integer values identify characters or## functions associated with each key (e.g., via the visible## engraving) of a keyboard layout. This file assigns mnemonic macro## names for these keysyms.#### This file is also compiled (by xc/lib/X11/util/makekeys.c) into## hash tables that can be accessed with X11 library functions such as## XStringToKeysym() and XKeysymToString().#### Where a keysym corresponds one-to-one to an ISO 10646 / Unicode## character, this is noted in a comment that provides both the U+xxxx## Unicode position, as well as the official Unicode name of the## character.#### Where the correspondence is either not one-to-one or semantically## unclear, the Unicode position and name are enclosed in## parentheses. Such legacy keysyms should be considered deprecated## and are not recommended for use in future keyboard mappings.#### For any future extension of the keysyms with characters already## found in ISO 10646 / Unicode, the following algorithm shall be## used. The new keysym code position will simply be the character's## Unicode number plus 0x01000000. The keysym values in the range## 0x01000100 to 0x0110ffff are reserved to represent Unicode## characters in the range U+0100 to U+10FFFF.#### While most newer Unicode-based X11 clients do already accept## Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it## will remain necessary for clients -- in the interest of## compatibility with existing servers -- to also understand the## existing legacy keysym values in the range 0x0100 to 0x20ff.#### Where several mnemonic names are defined for the same keysym in this## file, all but the first one listed should be considered deprecated.#### Mnemonic names for keysyms are defined in this file with lines## that match one of these Perl regular expressions:#### /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/## /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/## /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/#### When adding new keysyms to this file, do not forget to also update the## mappings in xc/lib/X11/KeyBind.c and the protocol specification in## xc/doc/specs/XProtocol/X11.keysyms.###KeySym -> ScanCode tableconstXK_VoidSymbol* = 0xffffff#### TTY function keys, cleverly chosen to map to ASCII, for convenience of## programming, but could have been arbitrary (at the cost of lookup## tables in client code).##constXK_BackSpace* = 0xff08XK_Tab* = 0xff09XK_Linefeed* = 0xff0aXK_Clear* = 0xff0bXK_Return* = 0xff0dXK_Pause* = 0xff13XK_Scroll_Lock* = 0xff14XK_Sys_Req* = 0xff15XK_Escape* = 0xff1bXK_Delete* = 0xffff## International & multi-key character compositionconstXK_Multi_key* = 0xff20XK_Codeinput* = 0xff37XK_SingleCandidate* = 0xff3cXK_MultipleCandidate* = 0xff3dXK_PreviousCandidate* = 0xff3e## Japanese keyboard supportconstXK_Kanji* = 0xff21XK_Muhenkan* = 0xff22XK_Henkan_Mode* = 0xff23XK_Henkan* = 0xff23XK_Romaji* = 0xff24XK_Hiragana* = 0xff25XK_Katakana* = 0xff26XK_Hiragana_Katakana* = 0xff27XK_Zenkaku* = 0xff28XK_Hankaku* = 0xff29XK_Zenkaku_Hankaku* = 0xff2aXK_Touroku* = 0xff2bXK_Massyo* = 0xff2cXK_Kana_Lock* = 0xff2dXK_Kana_Shift* = 0xff2eXK_Eisu_Shift* = 0xff2fXK_Eisu_toggle* = 0xff30XK_Kanji_Bangou* = 0xff37XK_Zen_Koho* = 0xff3dXK_Mae_Koho* = 0xff3e## 0xff31 thru 0xff3f are under XK_KOREAN## Cursor control & motionconstXK_Home* = 0xff50XK_Left* = 0xff51XK_Up* = 0xff52XK_Right* = 0xff53XK_Down* = 0xff54XK_Prior* = 0xff55XK_Page_Up* = 0xff55XK_Next* = 0xff56XK_Page_Down* = 0xff56XK_End* = 0xff57XK_Begin* = 0xff58## Misc functionsconstXK_Select* = 0xff60XK_Print* = 0xff61XK_Execute* = 0xff62XK_Insert* = 0xff63XK_Undo* = 0xff65XK_Redo* = 0xff66XK_Menu* = 0xff67XK_Find* = 0xff68XK_Cancel* = 0xff69XK_Help* = 0xff6aXK_Break* = 0xff6bXK_Mode_switch* = 0xff7eXK_script_switch* = 0xff7eXK_Num_Lock* = 0xff7f## Keypad functions, keypad numbers cleverly chosen to map to ASCIIconstXK_KP_Space* = 0xff80XK_KP_Tab* = 0xff89XK_KP_Enter* = 0xff8dXK_KP_F1* = 0xff91XK_KP_F2* = 0xff92XK_KP_F3* = 0xff93XK_KP_F4* = 0xff94XK_KP_Home* = 0xff95XK_KP_Left* = 0xff96XK_KP_Up* = 0xff97XK_KP_Right* = 0xff98XK_KP_Down* = 0xff99XK_KP_Prior* = 0xff9aXK_KP_Page_Up* = 0xff9aXK_KP_Next* = 0xff9bXK_KP_Page_Down* = 0xff9bXK_KP_End* = 0xff9cXK_KP_Begin* = 0xff9dXK_KP_Insert* = 0xff9eXK_KP_Delete* = 0xff9fXK_KP_Equal* = 0xffbdXK_KP_Multiply* = 0xffaaXK_KP_Add* = 0xffabXK_KP_Separator* = 0xffacXK_KP_Subtract* = 0xffadXK_KP_Decimal* = 0xffaeXK_KP_Divide* = 0xffafXK_KP_0* = 0xffb0XK_KP_1* = 0xffb1XK_KP_2* = 0xffb2XK_KP_3* = 0xffb3XK_KP_4* = 0xffb4XK_KP_5* = 0xffb5XK_KP_6* = 0xffb6XK_KP_7* = 0xffb7XK_KP_8* = 0xffb8XK_KP_9* = 0xffb9#### Auxilliary functions; note the duplicate definitions for left and right## function keys; Sun keyboards and a few other manufactures have such## function key groups on the left and/or right sides of the keyboard.## We've not found a keyboard with more than 35 function keys total.##constXK_F1* = 0xffbeXK_F2* = 0xffbfXK_F3* = 0xffc0XK_F4* = 0xffc1XK_F5* = 0xffc2XK_F6* = 0xffc3XK_F7* = 0xffc4XK_F8* = 0xffc5XK_F9* = 0xffc6XK_F10* = 0xffc7XK_F11* = 0xffc8XK_L1* = 0xffc8XK_F12* = 0xffc9XK_L2* = 0xffc9XK_F13* = 0xffcaXK_L3* = 0xffcaXK_F14* = 0xffcbXK_L4* = 0xffcbXK_F15* = 0xffccXK_L5* = 0xffccXK_F16* = 0xffcdXK_L6* = 0xffcdXK_F17* = 0xffceXK_L7* = 0xffceXK_F18* = 0xffcfXK_L8* = 0xffcfXK_F19* = 0xffd0XK_L9* = 0xffd0XK_F20* = 0xffd1XK_L10* = 0xffd1XK_F21* = 0xffd2XK_R1* = 0xffd2XK_F22* = 0xffd3XK_R2* = 0xffd3XK_F23* = 0xffd4XK_R3* = 0xffd4XK_F24* = 0xffd5XK_R4* = 0xffd5XK_F25* = 0xffd6XK_R5* = 0xffd6XK_F26* = 0xffd7XK_R6* = 0xffd7XK_F27* = 0xffd8XK_R7* = 0xffd8XK_F28* = 0xffd9XK_R8* = 0xffd9XK_F29* = 0xffdaXK_R9* = 0xffdaXK_F30* = 0xffdbXK_R10* = 0xffdbXK_F31* = 0xffdcXK_R11* = 0xffdcXK_F32* = 0xffddXK_R12* = 0xffddXK_F33* = 0xffdeXK_R13* = 0xffdeXK_F34* = 0xffdfXK_R14* = 0xffdfXK_F35* = 0xffe0XK_R15* = 0xffe0## ModifiersconstXK_Shift_L* = 0xffe1XK_Shift_R* = 0xffe2XK_Control_L* = 0xffe3XK_Control_R* = 0xffe4XK_Caps_Lock* = 0xffe5XK_Shift_Lock* = 0xffe6XK_Meta_L* = 0xffe7XK_Meta_R* = 0xffe8XK_Alt_L* = 0xffe9XK_Alt_R* = 0xffeaXK_Super_L* = 0xffebXK_Super_R* = 0xffecXK_Hyper_L* = 0xffedXK_Hyper_R* = 0xffee# Keyboard (XKB) Extension function and modifier keys# (from Appendix C of "The X Keyboard Extension: Protocol Specification")## Byte 3 = 0xfe##when defined(XK_XKB_KEYS):constXK_ISO_Lock* = 0xfe01XK_ISO_Level2_Latch* = 0xfe02XK_ISO_Level3_Shift* = 0xfe03XK_ISO_Level3_Latch* = 0xfe04XK_ISO_Level3_Lock* = 0xfe05XK_ISO_Group_Shift* = 0xff7eXK_ISO_Group_Latch* = 0xfe06XK_ISO_Group_Lock* = 0xfe07XK_ISO_Next_Group* = 0xfe08XK_ISO_Next_Group_Lock* = 0xfe09XK_ISO_Prev_Group* = 0xfe0aXK_ISO_Prev_Group_Lock* = 0xfe0bXK_ISO_First_Group* = 0xfe0cXK_ISO_First_Group_Lock* = 0xfe0dXK_ISO_Last_Group* = 0xfe0eXK_ISO_Last_Group_Lock* = 0xfe0fXK_ISO_Left_Tab* = 0xfe20XK_ISO_Move_Line_Up* = 0xfe21XK_ISO_Move_Line_Down* = 0xfe22XK_ISO_Partial_Line_Up* = 0xfe23XK_ISO_Partial_Line_Down* = 0xfe24XK_ISO_Partial_Space_Left* = 0xfe25XK_ISO_Partial_Space_Right* = 0xfe26XK_ISO_Set_Margin_Left* = 0xfe27XK_ISO_Set_Margin_Right* = 0xfe28XK_ISO_Release_Margin_Left* = 0xfe29XK_ISO_Release_Margin_Right* = 0xfe2aXK_ISO_Release_Both_Margins* = 0xfe2bXK_ISO_Fast_Cursor_Left* = 0xfe2cXK_ISO_Fast_Cursor_Right* = 0xfe2dXK_ISO_Fast_Cursor_Up* = 0xfe2eXK_ISO_Fast_Cursor_Down* = 0xfe2fXK_ISO_Continuous_Underline* = 0xfe30XK_ISO_Discontinuous_Underline* = 0xfe31XK_ISO_Emphasize* = 0xfe32XK_ISO_Center_Object* = 0xfe33XK_ISO_Enter* = 0xfe34XK_dead_grave* = 0xfe50XK_dead_acute* = 0xfe51XK_dead_circumflex* = 0xfe52XK_dead_tilde* = 0xfe53XK_dead_macron* = 0xfe54XK_dead_breve* = 0xfe55XK_dead_abovedot* = 0xfe56XK_dead_diaeresis* = 0xfe57XK_dead_abovering* = 0xfe58XK_dead_doubleacute* = 0xfe59XK_dead_caron* = 0xfe5aXK_dead_cedilla* = 0xfe5bXK_dead_ogonek* = 0xfe5cXK_dead_iota* = 0xfe5dXK_dead_voiced_sound* = 0xfe5eXK_dead_semivoiced_sound* = 0xfe5fXK_dead_belowdot* = 0xfe60XK_dead_hook* = 0xfe61XK_dead_horn* = 0xfe62XK_First_Virtual_Screen* = 0xfed0XK_Prev_Virtual_Screen* = 0xfed1XK_Next_Virtual_Screen* = 0xfed2XK_Last_Virtual_Screen* = 0xfed4XK_Terminate_Server* = 0xfed5XK_AccessX_Enable* = 0xfe70XK_AccessX_Feedback_Enable* = 0xfe71XK_RepeatKeys_Enable* = 0xfe72XK_SlowKeys_Enable* = 0xfe73XK_BounceKeys_Enable* = 0xfe74XK_StickyKeys_Enable* = 0xfe75XK_MouseKeys_Enable* = 0xfe76XK_MouseKeys_Accel_Enable* = 0xfe77XK_Overlay1_Enable* = 0xfe78XK_Overlay2_Enable* = 0xfe79XK_AudibleBell_Enable* = 0xfe7aXK_Pointer_Left* = 0xfee0XK_Pointer_Right* = 0xfee1XK_Pointer_Up* = 0xfee2XK_Pointer_Down* = 0xfee3XK_Pointer_UpLeft* = 0xfee4XK_Pointer_UpRight* = 0xfee5XK_Pointer_DownLeft* = 0xfee6XK_Pointer_DownRight* = 0xfee7XK_Pointer_Button_Dflt* = 0xfee8XK_Pointer_Button1* = 0xfee9XK_Pointer_Button2* = 0xfeeaXK_Pointer_Button3* = 0xfeebXK_Pointer_Button4* = 0xfeecXK_Pointer_Button5* = 0xfeedXK_Pointer_DblClick_Dflt* = 0xfeeeXK_Pointer_DblClick1* = 0xfeefXK_Pointer_DblClick2* = 0xfef0XK_Pointer_DblClick3* = 0xfef1XK_Pointer_DblClick4* = 0xfef2XK_Pointer_DblClick5* = 0xfef3XK_Pointer_Drag_Dflt* = 0xfef4XK_Pointer_Drag1* = 0xfef5XK_Pointer_Drag2* = 0xfef6XK_Pointer_Drag3* = 0xfef7XK_Pointer_Drag4* = 0xfef8XK_Pointer_Drag5* = 0xfefdXK_Pointer_EnableKeys* = 0xfef9XK_Pointer_Accelerate* = 0xfefaXK_Pointer_DfltBtnNext* = 0xfefbXK_Pointer_DfltBtnPrev* = 0xfefc#### 3270 Terminal Keys## Byte 3 = 0xfd##when defined(XK_3270):constXK_3270_Duplicate* = 0xfd01XK_3270_FieldMark* = 0xfd02XK_3270_Right2* = 0xfd03XK_3270_Left2* = 0xfd04XK_3270_BackTab* = 0xfd05XK_3270_EraseEOF* = 0xfd06XK_3270_EraseInput* = 0xfd07XK_3270_Reset* = 0xfd08XK_3270_Quit* = 0xfd09XK_3270_PA1* = 0xfd0aXK_3270_PA2* = 0xfd0bXK_3270_PA3* = 0xfd0cXK_3270_Test* = 0xfd0dXK_3270_Attn* = 0xfd0eXK_3270_CursorBlink* = 0xfd0fXK_3270_AltCursor* = 0xfd10XK_3270_KeyClick* = 0xfd11XK_3270_Jump* = 0xfd12XK_3270_Ident* = 0xfd13XK_3270_Rule* = 0xfd14XK_3270_Copy* = 0xfd15XK_3270_Play* = 0xfd16XK_3270_Setup* = 0xfd17XK_3270_Record* = 0xfd18XK_3270_ChangeScreen* = 0xfd19XK_3270_DeleteWord* = 0xfd1aXK_3270_ExSelect* = 0xfd1bXK_3270_CursorSelect* = 0xfd1cXK_3270_PrintScreen* = 0xfd1dXK_3270_Enter* = 0xfd1e#### Latin 1## (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)## Byte 3 = 0##constXK_space* = 0x0020XK_exclam* = 0x0021XK_quotedbl* = 0x0022XK_numbersign* = 0x0023XK_dollar* = 0x0024XK_percent* = 0x0025XK_ampersand* = 0x0026XK_apostrophe* = 0x0027XK_quoteright* = 0x0027XK_parenleft* = 0x0028XK_parenright* = 0x0029XK_asterisk* = 0x002aXK_plus* = 0x002bXK_comma* = 0x002cXK_minus* = 0x002dXK_period* = 0x002eXK_slash* = 0x002fXK_0* = 0x0030XK_1* = 0x0031XK_2* = 0x0032XK_3* = 0x0033XK_4* = 0x0034XK_5* = 0x0035XK_6* = 0x0036XK_7* = 0x0037XK_8* = 0x0038XK_9* = 0x0039XK_colon* = 0x003aXK_semicolon* = 0x003bXK_less* = 0x003cXK_equal* = 0x003dXK_greater* = 0x003eXK_question* = 0x003fXK_at* = 0x0040XK_A* = 0x0041XK_B* = 0x0042XK_C* = 0x0043XK_D* = 0x0044XK_E* = 0x0045XK_F* = 0x0046XK_G* = 0x0047XK_H* = 0x0048XK_I* = 0x0049XK_J* = 0x004aXK_K* = 0x004bXK_L* = 0x004cXK_M* = 0x004dXK_N* = 0x004eXK_O* = 0x004fXK_P* = 0x0050XK_Q* = 0x0051XK_R* = 0x0052XK_S* = 0x0053XK_T* = 0x0054XK_U* = 0x0055XK_V* = 0x0056XK_W* = 0x0057XK_X* = 0x0058XK_Y* = 0x0059XK_Z* = 0x005aXK_bracketleft* = 0x005bXK_backslash* = 0x005cXK_bracketright* = 0x005dXK_asciicircum* = 0x005eXK_underscore* = 0x005fXK_grave* = 0x0060XK_quoteleft* = 0x0060# Because nim devs are stupid stupid stupid# and the language has case-insensitivity (among other naming things) that causes XK_a and XK_A to be considered the """"""""""""""same""""""""""""XK_aa* = 0x0061XK_bb* = 0x0062XK_cc* = 0x0063XK_dd* = 0x0064XK_ee* = 0x0065XK_ff* = 0x0066XK_gg* = 0x0067XK_hh* = 0x0068XK_ii* = 0x0069XK_jj* = 0x006aXK_kk* = 0x006bXK_ll* = 0x006cXK_mm* = 0x006dXK_nn* = 0x006eXK_oo* = 0x006fXK_pp* = 0x0070XK_qq* = 0x0071XK_rr* = 0x0072XK_ss* = 0x0073XK_tt* = 0x0074XK_uu* = 0x0075XK_vv* = 0x0076XK_ww* = 0x0077XK_xx* = 0x0078XK_yy* = 0x0079XK_zz* = 0x007aXK_braceleft* = 0x007bXK_bar* = 0x007cXK_braceright* = 0x007dXK_asciitilde* = 0x007eXK_nobreakspace* = 0x00a0# XK_exclamdown* = 0x00a1# XK_cent* = 0x00a2# XK_sterling* = 0x00a3# XK_currency* = 0x00a4# XK_yen* = 0x00a5# XK_brokenbar* = 0x00a6# XK_section* = 0x00a7# XK_diaeresis* = 0x00a8# XK_copyright* = 0x00a9# XK_ordfeminine* = 0x00aa# XK_guillemotleft* = 0x00ab# XK_notsign* = 0x00ac# XK_hyphen* = 0x00ad# XK_registered* = 0x00ae# XK_macron* = 0x00af# XK_degree* = 0x00b0# XK_plusminus* = 0x00b1# XK_twosuperior* = 0x00b2# XK_threesuperior* = 0x00b3# XK_acute* = 0x00b4# XK_mu* = 0x00b5# XK_paragraph* = 0x00b6# XK_periodcentered* = 0x00b7# XK_cedilla* = 0x00b8# XK_onesuperior* = 0x00b9# XK_masculine* = 0x00ba# XK_guillemotright* = 0x00bb# XK_onequarter* = 0x00bc# XK_onehalf* = 0x00bd# XK_threequarters* = 0x00be# XK_questiondown* = 0x00bf# XK_Agrave* = 0x00c0# XK_Aacute* = 0x00c1# XK_Acircumflex* = 0x00c2# XK_Atilde* = 0x00c3# XK_Adiaeresis* = 0x00c4# XK_Aring* = 0x00c5# XK_AE* = 0x00c6# XK_Ccedilla* = 0x00c7# XK_Egrave* = 0x00c8# XK_Eacute* = 0x00c9# XK_Ecircumflex* = 0x00ca# XK_Ediaeresis* = 0x00cb# XK_Igrave* = 0x00cc# XK_Iacute* = 0x00cd# XK_Icircumflex* = 0x00ce# XK_Idiaeresis* = 0x00cf# XK_ETH* = 0x00d0# XK_Ethh* = 0x00d0# XK_Ntilde* = 0x00d1# XK_Ograve* = 0x00d2# XK_Oacute* = 0x00d3# XK_Ocircumflex* = 0x00d4# XK_Otilde* = 0x00d5# XK_Odiaeresis* = 0x00d6# XK_multiply* = 0x00d7# XK_Oslash* = 0x00d8# XK_Ooblique* = 0x00d8# XK_Ugrave* = 0x00d9# XK_Uacute* = 0x00da# XK_Ucircumflex* = 0x00db# XK_Udiaeresis* = 0x00dc# XK_Yacute* = 0x00dd# XK_THORN* = 0x00de# XK_Thornn* = 0x00de# XK_ssharp* = 0x00df# XK_agravee* = 0x00e0# XK_aacutee* = 0x00e1# XK_acircumflexx* = 0x00e2# XK_atildee* = 0x00e3# XK_adiaeresiss* = 0x00e4# XK_aringg* = 0x00e5# XK_aee* = 0x00e6# when you uncomment these, you will probably get a lot of redefinition errors because# stupid stupid stupid nim devs# XK_ccedilla* = 0x00e7# XK_egrave* = 0x00e8# XK_eacute* = 0x00e9# XK_ecircumflex* = 0x00ea# XK_ediaeresis* = 0x00eb# XK_igrave* = 0x00ec# XK_iacute* = 0x00ed# XK_icircumflex* = 0x00ee# XK_idiaeresis* = 0x00ef# XK_eth* = 0x00f0# XK_ntilde* = 0x00f1# XK_ograve* = 0x00f2# XK_oacute* = 0x00f3# XK_ocircumflex* = 0x00f4# XK_otilde* = 0x00f5# XK_odiaeresis* = 0x00f6# XK_division* = 0x00f7# XK_oslash* = 0x00f8# XK_ooblique* = 0x00f8# XK_ugrave* = 0x00f9# XK_uacute* = 0x00fa# XK_ucircumflex* = 0x00fb# XK_udiaeresis* = 0x00fc# XK_yacute* = 0x00fd# XK_thorn* = 0x00fe# XK_ydiaeresis* = 0x00ff#### Latin 2## Byte 3 = 1### when defined(XK_LATIN2):# const# XK_Aogonek* = 0x01a1# XK_breve* = 0x01a2# XK_Lstroke* = 0x01a3# XK_Lcaron* = 0x01a5# XK_Sacute* = 0x01a6# XK_Scaron* = 0x01a9# XK_Scedilla* = 0x01aa# XK_Tcaron* = 0x01ab# XK_Zacute* = 0x01ac# XK_Zcaron* = 0x01ae# XK_Zabovedot* = 0x01af# XK_aogonek* = 0x01b1# XK_ogonek* = 0x01b2# XK_lstroke* = 0x01b3# XK_lcaron* = 0x01b5# XK_sacute* = 0x01b6# XK_caron* = 0x01b7# XK_scaron* = 0x01b9# XK_scedilla* = 0x01ba# XK_tcaron* = 0x01bb# XK_zacute* = 0x01bc# XK_doubleacute* = 0x01bd# XK_zcaron* = 0x01be# XK_zabovedot* = 0x01bf# XK_Racute* = 0x01c0# XK_Abreve* = 0x01c3# XK_Lacute* = 0x01c5# XK_Cacute* = 0x01c6# XK_Ccaron* = 0x01c8# XK_Eogonek* = 0x01ca# XK_Ecaron* = 0x01cc# XK_Dcaron* = 0x01cf# XK_Dstroke* = 0x01d0# XK_Nacute* = 0x01d1# XK_Ncaron* = 0x01d2# XK_Odoubleacute* = 0x01d5# XK_Rcaron* = 0x01d8# XK_Uring* = 0x01d9# XK_Udoubleacute* = 0x01db# XK_Tcedilla* = 0x01de# XK_racute* = 0x01e0# XK_abreve* = 0x01e3# XK_lacute* = 0x01e5# XK_cacute* = 0x01e6# XK_ccaron* = 0x01e8# XK_eogonek* = 0x01ea# XK_ecaron* = 0x01ec# XK_dcaron* = 0x01ef# XK_dstroke* = 0x01f0# XK_nacute* = 0x01f1# XK_ncaron* = 0x01f2# XK_odoubleacute* = 0x01f5# XK_udoubleacute* = 0x01fb# XK_rcaron* = 0x01f8# XK_uring* = 0x01f9# XK_tcedilla* = 0x01fe# XK_abovedot* = 0x01ff# ### ## Latin 3# ## Byte 3 = 2# ### when defined(XK_LATIN3):# const# XK_Hstroke* = 0x02a1# XK_Hcircumflex* = 0x02a6# XK_Iabovedot* = 0x02a9# XK_Gbreve* = 0x02ab# XK_Jcircumflex* = 0x02ac# XK_hstroke* = 0x02b1# XK_hcircumflex* = 0x02b6# XK_idotless* = 0x02b9# XK_gbreve* = 0x02bb# XK_jcircumflex* = 0x02bc# XK_Cabovedot* = 0x02c5# XK_Ccircumflex* = 0x02c6# XK_Gabovedot* = 0x02d5# XK_Gcircumflex* = 0x02d8# XK_Ubreve* = 0x02dd# XK_Scircumflex* = 0x02de# XK_cabovedot* = 0x02e5# XK_ccircumflex* = 0x02e6# XK_gabovedot* = 0x02f5# XK_gcircumflex* = 0x02f8# XK_ubreve* = 0x02fd# XK_scircumflex* = 0x02fe# ### ## Latin 4# ## Byte 3 = 3# ### when defined(XK_LATIN4):# const# XK_kra* = 0x03a2# XK_kappa* = 0x03a2# XK_Rcedilla* = 0x03a3# XK_Itilde* = 0x03a5# XK_Lcedilla* = 0x03a6# XK_Emacron* = 0x03aa# XK_Gcedilla* = 0x03ab# XK_Tslash* = 0x03ac# XK_rcedilla* = 0x03b3# XK_itilde* = 0x03b5# XK_lcedilla* = 0x03b6# XK_emacron* = 0x03ba# XK_gcedilla* = 0x03bb# XK_tslash* = 0x03bc# XK_ENG* = 0x03bd# XK_eng* = 0x03bf# XK_Amacron* = 0x03c0# XK_Iogonek* = 0x03c7# XK_Eabovedot* = 0x03cc# XK_Imacron* = 0x03cf# XK_Ncedilla* = 0x03d1# XK_Omacron* = 0x03d2# XK_Kcedilla* = 0x03d3# XK_Uogonek* = 0x03d9# XK_Utilde* = 0x03dd# XK_Umacron* = 0x03de# XK_amacron* = 0x03e0# XK_iogonek* = 0x03e7# XK_eabovedot* = 0x03ec# XK_imacron* = 0x03ef# XK_ncedilla* = 0x03f1# XK_omacron* = 0x03f2# XK_kcedilla* = 0x03f3# XK_uogonek* = 0x03f9# XK_utilde* = 0x03fd# XK_umacron* = 0x03fe# ### ## Latin 8# ### when defined(XK_LATIN8):# const# XK_Babovedot* = 0x1001e02# XK_babovedot* = 0x1001e03# XK_Dabovedot* = 0x1001e0a# XK_Wgrave* = 0x1001e80# XK_Wacute* = 0x1001e82# XK_dabovedot* = 0x1001e0b# XK_Ygrave* = 0x1001ef2# XK_Fabovedot* = 0x1001e1e# XK_fabovedot* = 0x1001e1f# XK_Mabovedot* = 0x1001e40# XK_mabovedot* = 0x1001e41# XK_Pabovedot* = 0x1001e56# XK_wgrave* = 0x1001e81# XK_pabovedot* = 0x1001e57# XK_wacute* = 0x1001e83# XK_Sabovedot* = 0x1001e60# XK_ygrave* = 0x1001ef3# XK_Wdiaeresis* = 0x1001e84# XK_wdiaeresis* = 0x1001e85# XK_sabovedot* = 0x1001e61# XK_Wcircumflex* = 0x1000174# XK_Tabovedot* = 0x1001e6a# XK_Ycircumflex* = 0x1000176# XK_wcircumflex* = 0x1000175# XK_tabovedot* = 0x1001e6b# XK_ycircumflex* = 0x1000177# ### ## Latin 9# ## Byte 3 = 0x13# ### when defined(XK_LATIN9):# const# XK_OE* = 0x13bc# XK_oe* = 0x13bd# XK_Ydiaeresis* = 0x13be# ### ## Katakana# ## Byte 3 = 4# ### when defined(XK_KATAKANA):# const# XK_overline* = 0x047e# XK_kana_fullstop* = 0x04a1# XK_kana_openingbracket* = 0x04a2# XK_kana_closingbracket* = 0x04a3# XK_kana_comma* = 0x04a4# XK_kana_conjunctive* = 0x04a5# XK_kana_middledot* = 0x04a5# XK_kana_WO* = 0x04a6# XK_kana_a* = 0x04a7# XK_kana_i* = 0x04a8# XK_kana_u* = 0x04a9# XK_kana_e* = 0x04aa# XK_kana_o* = 0x04ab# XK_kana_ya* = 0x04ac# XK_kana_yu* = 0x04ad# XK_kana_yo* = 0x04ae# XK_kana_tsu* = 0x04af# XK_kana_tu* = 0x04af# XK_prolongedsound* = 0x04b0# XK_kana_A* = 0x04b1# XK_kana_I* = 0x04b2# XK_kana_U* = 0x04b3# XK_kana_E* = 0x04b4# XK_kana_O* = 0x04b5# XK_kana_KA* = 0x04b6# XK_kana_KI* = 0x04b7# XK_kana_KU* = 0x04b8# XK_kana_KE* = 0x04b9# XK_kana_KO* = 0x04ba# XK_kana_SA* = 0x04bb# XK_kana_SHI* = 0x04bc# XK_kana_SU* = 0x04bd# XK_kana_SE* = 0x04be# XK_kana_SO* = 0x04bf# XK_kana_TA* = 0x04c0# XK_kana_CHI* = 0x04c1# XK_kana_TI* = 0x04c1# XK_kana_TSU* = 0x04c2# XK_kana_TU* = 0x04c2# XK_kana_TE* = 0x04c3# XK_kana_TO* = 0x04c4# XK_kana_NA* = 0x04c5# XK_kana_NI* = 0x04c6# XK_kana_NU* = 0x04c7# XK_kana_NE* = 0x04c8# XK_kana_NO* = 0x04c9# XK_kana_HA* = 0x04ca# XK_kana_HI* = 0x04cb# XK_kana_FU* = 0x04cc# XK_kana_HU* = 0x04cc# XK_kana_HE* = 0x04cd# XK_kana_HO* = 0x04ce# XK_kana_MA* = 0x04cf# XK_kana_MI* = 0x04d0# XK_kana_MU* = 0x04d1# XK_kana_ME* = 0x04d2# XK_kana_MO* = 0x04d3# XK_kana_YA* = 0x04d4# XK_kana_YU* = 0x04d5# XK_kana_YO* = 0x04d6# XK_kana_RA* = 0x04d7# XK_kana_RI* = 0x04d8# XK_kana_RU* = 0x04d9# XK_kana_RE* = 0x04da# XK_kana_RO* = 0x04db# XK_kana_WA* = 0x04dc# XK_kana_N* = 0x04dd# XK_voicedsound* = 0x04de# XK_semivoicedsound* = 0x04df# XK_kana_switch* = 0xff7e# ### ## Arabic# ## Byte 3 = 5# ### when defined(XK_ARABIC):# const# XK_Farsi_0* = 0x10006f0# XK_Farsi_1* = 0x10006f1# XK_Farsi_2* = 0x10006f2# XK_Farsi_3* = 0x10006f3# XK_Farsi_4* = 0x10006f4# XK_Farsi_5* = 0x10006f5# XK_Farsi_6* = 0x10006f6# XK_Farsi_7* = 0x10006f7# XK_Farsi_8* = 0x10006f8# XK_Farsi_9* = 0x10006f9# XK_Arabic_percent* = 0x100066a# XK_Arabic_superscript_alef* = 0x1000670# XK_Arabic_tteh* = 0x1000679# XK_Arabic_peh* = 0x100067e# XK_Arabic_tcheh* = 0x1000686# XK_Arabic_ddal* = 0x1000688# XK_Arabic_rreh* = 0x1000691# XK_Arabic_comma* = 0x05ac# XK_Arabic_fullstop* = 0x10006d4# XK_Arabic_0* = 0x1000660# XK_Arabic_1* = 0x1000661# XK_Arabic_2* = 0x1000662# XK_Arabic_3* = 0x1000663# XK_Arabic_4* = 0x1000664# XK_Arabic_5* = 0x1000665# XK_Arabic_6* = 0x1000666# XK_Arabic_7* = 0x1000667# XK_Arabic_8* = 0x1000668# XK_Arabic_9* = 0x1000669# XK_Arabic_semicolon* = 0x05bb# XK_Arabic_question_mark* = 0x05bf# XK_Arabic_hamza* = 0x05c1# XK_Arabic_maddaonalef* = 0x05c2# XK_Arabic_hamzaonalef* = 0x05c3# XK_Arabic_hamzaonwaw* = 0x05c4# XK_Arabic_hamzaunderalef* = 0x05c5# XK_Arabic_hamzaonyeh* = 0x05c6# XK_Arabic_alef* = 0x05c7# XK_Arabic_beh* = 0x05c8# XK_Arabic_tehmarbuta* = 0x05c9# XK_Arabic_teh* = 0x05ca# XK_Arabic_theh* = 0x05cb# XK_Arabic_jeem* = 0x05cc# XK_Arabic_hah* = 0x05cd# XK_Arabic_khah* = 0x05ce# XK_Arabic_dal* = 0x05cf# XK_Arabic_thal* = 0x05d0# XK_Arabic_ra* = 0x05d1# XK_Arabic_zain* = 0x05d2# XK_Arabic_seen* = 0x05d3# XK_Arabic_sheen* = 0x05d4# XK_Arabic_sad* = 0x05d5# XK_Arabic_dad* = 0x05d6# XK_Arabic_tah* = 0x05d7# XK_Arabic_zah* = 0x05d8# XK_Arabic_ain* = 0x05d9# XK_Arabic_ghain* = 0x05da# XK_Arabic_tatweel* = 0x05e0# XK_Arabic_feh* = 0x05e1# XK_Arabic_qaf* = 0x05e2# XK_Arabic_kaf* = 0x05e3# XK_Arabic_lam* = 0x05e4# XK_Arabic_meem* = 0x05e5# XK_Arabic_noon* = 0x05e6# XK_Arabic_ha* = 0x05e7# XK_Arabic_heh* = 0x05e7# XK_Arabic_waw* = 0x05e8# XK_Arabic_alefmaksura* = 0x05e9# XK_Arabic_yeh* = 0x05ea# XK_Arabic_fathatan* = 0x05eb# XK_Arabic_dammatan* = 0x05ec# XK_Arabic_kasratan* = 0x05ed# XK_Arabic_fatha* = 0x05ee# XK_Arabic_damma* = 0x05ef# XK_Arabic_kasra* = 0x05f0# XK_Arabic_shadda* = 0x05f1# XK_Arabic_sukun* = 0x05f2# XK_Arabic_madda_above* = 0x1000653# XK_Arabic_hamza_above* = 0x1000654# XK_Arabic_hamza_below* = 0x1000655# XK_Arabic_jeh* = 0x1000698# XK_Arabic_veh* = 0x10006a4# XK_Arabic_keheh* = 0x10006a9# XK_Arabic_gaf* = 0x10006af# XK_Arabic_noon_ghunna* = 0x10006ba# XK_Arabic_heh_doachashmee* = 0x10006be# XK_Farsi_yeh* = 0x10006cc# XK_Arabic_farsi_yeh* = 0x10006cc# XK_Arabic_yeh_baree* = 0x10006d2# XK_Arabic_heh_goal* = 0x10006c1# XK_Arabic_switch* = 0xff7e# ### ## Cyrillic# ## Byte 3 = 6# ### when defined(XK_CYRILLIC):# const# XK_Cyrillic_GHE_bar* = 0x1000492# XK_Cyrillic_ghe_bar* = 0x1000493# XK_Cyrillic_ZHE_descender* = 0x1000496# XK_Cyrillic_zhe_descender* = 0x1000497# XK_Cyrillic_KA_descender* = 0x100049a# XK_Cyrillic_ka_descender* = 0x100049b# XK_Cyrillic_KA_vertstroke* = 0x100049c# XK_Cyrillic_ka_vertstroke* = 0x100049d# XK_Cyrillic_EN_descender* = 0x10004a2# XK_Cyrillic_en_descender* = 0x10004a3# XK_Cyrillic_U_straight* = 0x10004ae# XK_Cyrillic_u_straight* = 0x10004af# XK_Cyrillic_U_straight_bar* = 0x10004b0# XK_Cyrillic_u_straight_bar* = 0x10004b1# XK_Cyrillic_HA_descender* = 0x10004b2# XK_Cyrillic_ha_descender* = 0x10004b3# XK_Cyrillic_CHE_descender* = 0x10004b6# XK_Cyrillic_che_descender* = 0x10004b7# XK_Cyrillic_CHE_vertstroke* = 0x10004b8# XK_Cyrillic_che_vertstroke* = 0x10004b9# XK_Cyrillic_SHHA* = 0x10004ba# XK_Cyrillic_shha* = 0x10004bb# XK_Cyrillic_SCHWA* = 0x10004d8# XK_Cyrillic_schwa* = 0x10004d9# XK_Cyrillic_I_macron* = 0x10004e2# XK_Cyrillic_i_macron* = 0x10004e3# XK_Cyrillic_O_bar* = 0x10004e8# XK_Cyrillic_o_bar* = 0x10004e9# XK_Cyrillic_U_macron* = 0x10004ee# XK_Cyrillic_u_macron* = 0x10004ef# XK_Serbian_dje* = 0x06a1# XK_Macedonia_gje* = 0x06a2# XK_Cyrillic_io* = 0x06a3# XK_Ukrainian_ie* = 0x06a4# XK_Ukranian_je* = 0x06a4# XK_Macedonia_dse* = 0x06a5# XK_Ukrainian_i* = 0x06a6# XK_Ukranian_i* = 0x06a6# XK_Ukrainian_yi* = 0x06a7# XK_Ukranian_yi* = 0x06a7# XK_Cyrillic_je* = 0x06a8# XK_Serbian_je* = 0x06a8# XK_Cyrillic_lje* = 0x06a9# XK_Serbian_lje* = 0x06a9# XK_Cyrillic_nje* = 0x06aa# XK_Serbian_nje* = 0x06aa# XK_Serbian_tshe* = 0x06ab# XK_Macedonia_kje* = 0x06ac# XK_Ukrainian_ghe_with_upturn* = 0x06ad# XK_Byelorussian_shortu* = 0x06ae# XK_Cyrillic_dzhe* = 0x06af# XK_Serbian_dze* = 0x06af# XK_numerosign* = 0x06b0# XK_Serbian_DJE* = 0x06b1# XK_Macedonia_GJE* = 0x06b2# XK_Cyrillic_IO* = 0x06b3# XK_Ukrainian_IE* = 0x06b4# XK_Ukranian_JE* = 0x06b4# XK_Macedonia_DSE* = 0x06b5# XK_Ukrainian_I* = 0x06b6# XK_Ukranian_I* = 0x06b6# XK_Ukrainian_YI* = 0x06b7# XK_Ukranian_YI* = 0x06b7# XK_Cyrillic_JE* = 0x06b8# XK_Serbian_JE* = 0x06b8# XK_Cyrillic_LJE* = 0x06b9# XK_Serbian_LJE* = 0x06b9# XK_Cyrillic_NJE* = 0x06ba# XK_Serbian_NJE* = 0x06ba# XK_Serbian_TSHE* = 0x06bb# XK_Macedonia_KJE* = 0x06bc# XK_Ukrainian_GHE_WITH_UPTURN* = 0x06bd# XK_Byelorussian_SHORTU* = 0x06be# XK_Cyrillic_DZHE* = 0x06bf# XK_Serbian_DZE* = 0x06bf# XK_Cyrillic_yu* = 0x06c0# XK_Cyrillic_a* = 0x06c1# XK_Cyrillic_be* = 0x06c2# XK_Cyrillic_tse* = 0x06c3# XK_Cyrillic_de* = 0x06c4# XK_Cyrillic_ie* = 0x06c5# XK_Cyrillic_ef* = 0x06c6# XK_Cyrillic_ghe* = 0x06c7# XK_Cyrillic_ha* = 0x06c8# XK_Cyrillic_i* = 0x06c9# XK_Cyrillic_shorti* = 0x06ca# XK_Cyrillic_ka* = 0x06cb# XK_Cyrillic_el* = 0x06cc# XK_Cyrillic_em* = 0x06cd# XK_Cyrillic_en* = 0x06ce# XK_Cyrillic_o* = 0x06cf# XK_Cyrillic_pe* = 0x06d0# XK_Cyrillic_ya* = 0x06d1# XK_Cyrillic_er* = 0x06d2# XK_Cyrillic_es* = 0x06d3# XK_Cyrillic_te* = 0x06d4# XK_Cyrillic_u* = 0x06d5# XK_Cyrillic_zhe* = 0x06d6# XK_Cyrillic_ve* = 0x06d7# XK_Cyrillic_softsign* = 0x06d8# XK_Cyrillic_yeru* = 0x06d9# XK_Cyrillic_ze* = 0x06da# XK_Cyrillic_sha* = 0x06db# XK_Cyrillic_e* = 0x06dc# XK_Cyrillic_shcha* = 0x06dd# XK_Cyrillic_che* = 0x06de# XK_Cyrillic_hardsign* = 0x06df# XK_Cyrillic_YU* = 0x06e0# XK_Cyrillic_A* = 0x06e1# XK_Cyrillic_BE* = 0x06e2# XK_Cyrillic_TSE* = 0x06e3# XK_Cyrillic_DE* = 0x06e4# XK_Cyrillic_IE* = 0x06e5# XK_Cyrillic_EF* = 0x06e6# XK_Cyrillic_GHE* = 0x06e7# XK_Cyrillic_HA* = 0x06e8# XK_Cyrillic_I* = 0x06e9# XK_Cyrillic_SHORTI* = 0x06ea# XK_Cyrillic_KA* = 0x06eb# XK_Cyrillic_EL* = 0x06ec# XK_Cyrillic_EM* = 0x06ed# XK_Cyrillic_EN* = 0x06ee# XK_Cyrillic_O* = 0x06ef# XK_Cyrillic_PE* = 0x06f0# XK_Cyrillic_YA* = 0x06f1# XK_Cyrillic_ER* = 0x06f2# XK_Cyrillic_ES* = 0x06f3# XK_Cyrillic_TE* = 0x06f4# XK_Cyrillic_U* = 0x06f5# XK_Cyrillic_ZHE* = 0x06f6# XK_Cyrillic_VE* = 0x06f7# XK_Cyrillic_SOFTSIGN* = 0x06f8# XK_Cyrillic_YERU* = 0x06f9# XK_Cyrillic_ZE* = 0x06fa# XK_Cyrillic_SHA* = 0x06fb# XK_Cyrillic_E* = 0x06fc# XK_Cyrillic_SHCHA* = 0x06fd# XK_Cyrillic_CHE* = 0x06fe# XK_Cyrillic_HARDSIGN* = 0x06ff# ### ## Greek# ## (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)# ## Byte 3 = 7# ### when defined(XK_GREEK):# const# XK_Greek_ALPHAaccent* = 0x07a1# XK_Greek_EPSILONaccent* = 0x07a2# XK_Greek_ETAaccent* = 0x07a3# XK_Greek_IOTAaccent* = 0x07a4# XK_Greek_IOTAdieresis* = 0x07a5# XK_Greek_IOTAdiaeresis* = 0x07a5# XK_Greek_OMICRONaccent* = 0x07a7# XK_Greek_UPSILONaccent* = 0x07a8# XK_Greek_UPSILONdieresis* = 0x07a9# XK_Greek_OMEGAaccent* = 0x07ab# XK_Greek_accentdieresis* = 0x07ae# XK_Greek_horizbar* = 0x07af# XK_Greek_alphaaccent* = 0x07b1# XK_Greek_epsilonaccent* = 0x07b2# XK_Greek_etaaccent* = 0x07b3# XK_Greek_iotaaccent* = 0x07b4# XK_Greek_iotadieresis* = 0x07b5# XK_Greek_iotaaccentdieresis* = 0x07b6# XK_Greek_omicronaccent* = 0x07b7# XK_Greek_upsilonaccent* = 0x07b8# XK_Greek_upsilondieresis* = 0x07b9# XK_Greek_upsilonaccentdieresis* = 0x07ba# XK_Greek_omegaaccent* = 0x07bb# XK_Greek_ALPHA* = 0x07c1# XK_Greek_BETA* = 0x07c2# XK_Greek_GAMMA* = 0x07c3# XK_Greek_DELTA* = 0x07c4# XK_Greek_EPSILON* = 0x07c5# XK_Greek_ZETA* = 0x07c6# XK_Greek_ETA* = 0x07c7# XK_Greek_THETA* = 0x07c8# XK_Greek_IOTA* = 0x07c9# XK_Greek_KAPPA* = 0x07ca# XK_Greek_LAMDA* = 0x07cb# XK_Greek_LAMBDA* = 0x07cb# XK_Greek_MU* = 0x07cc# XK_Greek_NU* = 0x07cd# XK_Greek_XI* = 0x07ce# XK_Greek_OMICRON* = 0x07cf# XK_Greek_PI* = 0x07d0# XK_Greek_RHO* = 0x07d1# XK_Greek_SIGMA* = 0x07d2# XK_Greek_TAU* = 0x07d4# XK_Greek_UPSILON* = 0x07d5# XK_Greek_PHI* = 0x07d6# XK_Greek_CHI* = 0x07d7# XK_Greek_PSI* = 0x07d8# XK_Greek_OMEGA* = 0x07d9# XK_Greek_alpha* = 0x07e1# XK_Greek_beta* = 0x07e2# XK_Greek_gamma* = 0x07e3# XK_Greek_delta* = 0x07e4# XK_Greek_epsilon* = 0x07e5# XK_Greek_zeta* = 0x07e6# XK_Greek_eta* = 0x07e7# XK_Greek_theta* = 0x07e8# XK_Greek_iota* = 0x07e9# XK_Greek_kappa* = 0x07ea# XK_Greek_lamda* = 0x07eb# XK_Greek_lambda* = 0x07eb# XK_Greek_mu* = 0x07ec# XK_Greek_nu* = 0x07ed# XK_Greek_xi* = 0x07ee# XK_Greek_omicron* = 0x07ef# XK_Greek_pi* = 0x07f0# XK_Greek_rho* = 0x07f1# XK_Greek_sigma* = 0x07f2# XK_Greek_finalsmallsigma* = 0x07f3# XK_Greek_tau* = 0x07f4# XK_Greek_upsilon* = 0x07f5# XK_Greek_phi* = 0x07f6# XK_Greek_chi* = 0x07f7# XK_Greek_psi* = 0x07f8# XK_Greek_omega* = 0x07f9# XK_Greek_switch* = 0xff7e# ### ## Technical# ## (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)# ## Byte 3 = 8# ### when defined(XK_TECHNICAL):# const# XK_leftradical* = 0x08a1# XK_topleftradical* = 0x08a2# XK_horizconnector* = 0x08a3# XK_topintegral* = 0x08a4# XK_botintegral* = 0x08a5# XK_vertconnector* = 0x08a6# XK_topleftsqbracket* = 0x08a7# XK_botleftsqbracket* = 0x08a8# XK_toprightsqbracket* = 0x08a9# XK_botrightsqbracket* = 0x08aa# XK_topleftparens* = 0x08ab# XK_botleftparens* = 0x08ac# XK_toprightparens* = 0x08ad# XK_botrightparens* = 0x08ae# XK_leftmiddlecurlybrace* = 0x08af# XK_rightmiddlecurlybrace* = 0x08b0# XK_topleftsummation* = 0x08b1# XK_botleftsummation* = 0x08b2# XK_topvertsummationconnector* = 0x08b3# XK_botvertsummationconnector* = 0x08b4# XK_toprightsummation* = 0x08b5# XK_botrightsummation* = 0x08b6# XK_rightmiddlesummation* = 0x08b7# XK_lessthanequal* = 0x08bc# XK_notequal* = 0x08bd# XK_greaterthanequal* = 0x08be# XK_integral* = 0x08bf# XK_therefore* = 0x08c0# XK_variation* = 0x08c1# XK_infinity* = 0x08c2# XK_nabla* = 0x08c5# XK_approximate* = 0x08c8# XK_similarequal* = 0x08c9# XK_ifonlyif* = 0x08cd# XK_implies* = 0x08ce# XK_identical* = 0x08cf# XK_radical* = 0x08d6# XK_includedin* = 0x08da# XK_includes* = 0x08db# XK_intersection* = 0x08dc# XK_union* = 0x08dd# XK_logicaland* = 0x08de# XK_logicalor* = 0x08df# XK_partialderivative* = 0x08ef# XK_function* = 0x08f6# XK_leftarrow* = 0x08fb# XK_uparrow* = 0x08fc# XK_rightarrow* = 0x08fd# XK_downarrow* = 0x08fe# ### ## Special# ## (from the DEC VT100 Special Graphics Character Set)# ## Byte 3 = 9# ### when defined(XK_SPECIAL):# const# XK_blank* = 0x09df# XK_soliddiamond* = 0x09e0# XK_checkerboard* = 0x09e1# XK_ht* = 0x09e2# XK_ff* = 0x09e3# XK_cr* = 0x09e4# XK_lf* = 0x09e5# XK_nl* = 0x09e8# XK_vt* = 0x09e9# XK_lowrightcorner* = 0x09ea# XK_uprightcorner* = 0x09eb# XK_upleftcorner* = 0x09ec# XK_lowleftcorner* = 0x09ed# XK_crossinglines* = 0x09ee# XK_horizlinescan1* = 0x09ef# XK_horizlinescan3* = 0x09f0# XK_horizlinescan5* = 0x09f1# XK_horizlinescan7* = 0x09f2# XK_horizlinescan9* = 0x09f3# XK_leftt* = 0x09f4# XK_rightt* = 0x09f5# XK_bott* = 0x09f6# XK_topt* = 0x09f7# XK_vertbar* = 0x09f8# ### ## Publishing# ## (these are probably from a long forgotten DEC Publishing# ## font that once shipped with DECwrite)# ## Byte 3 = 0x0a# ### when defined(XK_PUBLISHING):# const# XK_emspace* = 0x0aa1# XK_enspace* = 0x0aa2# XK_em3space* = 0x0aa3# XK_em4space* = 0x0aa4# XK_digitspace* = 0x0aa5# XK_punctspace* = 0x0aa6# XK_thinspace* = 0x0aa7# XK_hairspace* = 0x0aa8# XK_emdash* = 0x0aa9# XK_endash* = 0x0aaa# XK_signifblank* = 0x0aac# XK_ellipsis* = 0x0aae# XK_doubbaselinedot* = 0x0aaf# XK_onethird* = 0x0ab0# XK_twothirds* = 0x0ab1# XK_onefifth* = 0x0ab2# XK_twofifths* = 0x0ab3# XK_threefifths* = 0x0ab4# XK_fourfifths* = 0x0ab5# XK_onesixth* = 0x0ab6# XK_fivesixths* = 0x0ab7# XK_careof* = 0x0ab8# XK_figdash* = 0x0abb# XK_leftanglebracket* = 0x0abc# XK_decimalpoint* = 0x0abd# XK_rightanglebracket* = 0x0abe# XK_marker* = 0x0abf# XK_oneeighth* = 0x0ac3# XK_threeeighths* = 0x0ac4# XK_fiveeighths* = 0x0ac5# XK_seveneighths* = 0x0ac6# XK_trademark* = 0x0ac9# XK_signaturemark* = 0x0aca# XK_trademarkincircle* = 0x0acb# XK_leftopentriangle* = 0x0acc# XK_rightopentriangle* = 0x0acd# XK_emopencircle* = 0x0ace# XK_emopenrectangle* = 0x0acf# XK_leftsinglequotemark* = 0x0ad0# XK_rightsinglequotemark* = 0x0ad1# XK_leftdoublequotemark* = 0x0ad2# XK_rightdoublequotemark* = 0x0ad3# XK_prescription* = 0x0ad4# XK_minutes* = 0x0ad6# XK_seconds* = 0x0ad7# XK_latincross* = 0x0ad9# XK_hexagram* = 0x0ada# XK_filledrectbullet* = 0x0adb# XK_filledlefttribullet* = 0x0adc# XK_filledrighttribullet* = 0x0add# XK_emfilledcircle* = 0x0ade# XK_emfilledrect* = 0x0adf# XK_enopencircbullet* = 0x0ae0# XK_enopensquarebullet* = 0x0ae1# XK_openrectbullet* = 0x0ae2# XK_opentribulletup* = 0x0ae3# XK_opentribulletdown* = 0x0ae4# XK_openstar* = 0x0ae5# XK_enfilledcircbullet* = 0x0ae6# XK_enfilledsqbullet* = 0x0ae7# XK_filledtribulletup* = 0x0ae8# XK_filledtribulletdown* = 0x0ae9# XK_leftpointer* = 0x0aea# XK_rightpointer* = 0x0aeb# XK_club* = 0x0aec# XK_diamond* = 0x0aed# XK_heart* = 0x0aee# XK_maltesecross* = 0x0af0# XK_dagger* = 0x0af1# XK_doubledagger* = 0x0af2# XK_checkmark* = 0x0af3# XK_ballotcross* = 0x0af4# XK_musicalsharp* = 0x0af5# XK_musicalflat* = 0x0af6# XK_malesymbol* = 0x0af7# XK_femalesymbol* = 0x0af8# XK_telephone* = 0x0af9# XK_telephonerecorder* = 0x0afa# XK_phonographcopyright* = 0x0afb# XK_caret* = 0x0afc# XK_singlelowquotemark* = 0x0afd# XK_doublelowquotemark* = 0x0afe# XK_cursor* = 0x0aff# ### ## APL# ## Byte 3 = 0x0b# ### when defined(XK_APL):# const# XK_leftcaret* = 0x0ba3# XK_rightcaret* = 0x0ba6# XK_downcaret* = 0x0ba8# XK_upcaret* = 0x0ba9# XK_overbar* = 0x0bc0# XK_downtack* = 0x0bc2# XK_upshoe* = 0x0bc3# XK_downstile* = 0x0bc4# XK_underbar* = 0x0bc6# XK_jot* = 0x0bca# XK_quad* = 0x0bcc# XK_uptack* = 0x0bce# XK_circle* = 0x0bcf# XK_upstile* = 0x0bd3# XK_downshoe* = 0x0bd6# XK_rightshoe* = 0x0bd8# XK_leftshoe* = 0x0bda# XK_lefttack* = 0x0bdc# XK_righttack* = 0x0bfc# ### ## Hebrew# ## Byte 3 = 0x0c# ### when defined(XK_HEBREW):# const# XK_hebrew_doublelowline* = 0x0cdf# XK_hebrew_aleph* = 0x0ce0# XK_hebrew_bet* = 0x0ce1# XK_hebrew_beth* = 0x0ce1# XK_hebrew_gimel* = 0x0ce2# XK_hebrew_gimmel* = 0x0ce2# XK_hebrew_dalet* = 0x0ce3# XK_hebrew_daleth* = 0x0ce3# XK_hebrew_he* = 0x0ce4# XK_hebrew_waw* = 0x0ce5# XK_hebrew_zain* = 0x0ce6# XK_hebrew_zayin* = 0x0ce6# XK_hebrew_chet* = 0x0ce7# XK_hebrew_het* = 0x0ce7# XK_hebrew_tet* = 0x0ce8# XK_hebrew_teth* = 0x0ce8# XK_hebrew_yod* = 0x0ce9# XK_hebrew_finalkaph* = 0x0cea# XK_hebrew_kaph* = 0x0ceb# XK_hebrew_lamed* = 0x0cec# XK_hebrew_finalmem* = 0x0ced# XK_hebrew_mem* = 0x0cee# XK_hebrew_finalnun* = 0x0cef# XK_hebrew_nun* = 0x0cf0# XK_hebrew_samech* = 0x0cf1# XK_hebrew_samekh* = 0x0cf1# XK_hebrew_ayin* = 0x0cf2# XK_hebrew_finalpe* = 0x0cf3# XK_hebrew_pe* = 0x0cf4# XK_hebrew_finalzade* = 0x0cf5# XK_hebrew_finalzadi* = 0x0cf5# XK_hebrew_zade* = 0x0cf6# XK_hebrew_zadi* = 0x0cf6# XK_hebrew_qoph* = 0x0cf7# XK_hebrew_kuf* = 0x0cf7# XK_hebrew_resh* = 0x0cf8# XK_hebrew_shin* = 0x0cf9# XK_hebrew_taw* = 0x0cfa# XK_hebrew_taf* = 0x0cfa# XK_Hebrew_switch* = 0xff7e# ### ## Thai# ## Byte 3 = 0x0d# ### when defined(XK_THAI):# const# XK_Thai_kokai* = 0x0da1# XK_Thai_khokhai* = 0x0da2# XK_Thai_khokhuat* = 0x0da3# XK_Thai_khokhwai* = 0x0da4# XK_Thai_khokhon* = 0x0da5# XK_Thai_khorakhang* = 0x0da6# XK_Thai_ngongu* = 0x0da7# XK_Thai_chochan* = 0x0da8# XK_Thai_choching* = 0x0da9# XK_Thai_chochang* = 0x0daa# XK_Thai_soso* = 0x0dab# XK_Thai_chochoe* = 0x0dac# XK_Thai_yoying* = 0x0dad# XK_Thai_dochada* = 0x0dae# XK_Thai_topatak* = 0x0daf# XK_Thai_thothan* = 0x0db0# XK_Thai_thonangmontho* = 0x0db1# XK_Thai_thophuthao* = 0x0db2# XK_Thai_nonen* = 0x0db3# XK_Thai_dodek* = 0x0db4# XK_Thai_totao* = 0x0db5# XK_Thai_thothung* = 0x0db6# XK_Thai_thothahan* = 0x0db7# XK_Thai_thothong* = 0x0db8# XK_Thai_nonu* = 0x0db9# XK_Thai_bobaimai* = 0x0dba# XK_Thai_popla* = 0x0dbb# XK_Thai_phophung* = 0x0dbc# XK_Thai_fofa* = 0x0dbd# XK_Thai_phophan* = 0x0dbe# XK_Thai_fofan* = 0x0dbf# XK_Thai_phosamphao* = 0x0dc0# XK_Thai_moma* = 0x0dc1# XK_Thai_yoyak* = 0x0dc2# XK_Thai_rorua* = 0x0dc3# XK_Thai_ru* = 0x0dc4# XK_Thai_loling* = 0x0dc5# XK_Thai_lu* = 0x0dc6# XK_Thai_wowaen* = 0x0dc7# XK_Thai_sosala* = 0x0dc8# XK_Thai_sorusi* = 0x0dc9# XK_Thai_sosua* = 0x0dca# XK_Thai_hohip* = 0x0dcb# XK_Thai_lochula* = 0x0dcc# XK_Thai_oang* = 0x0dcd# XK_Thai_honokhuk* = 0x0dce# XK_Thai_paiyannoi* = 0x0dcf# XK_Thai_saraa* = 0x0dd0# XK_Thai_maihanakat* = 0x0dd1# XK_Thai_saraaa* = 0x0dd2# XK_Thai_saraam* = 0x0dd3# XK_Thai_sarai* = 0x0dd4# XK_Thai_saraii* = 0x0dd5# XK_Thai_saraue* = 0x0dd6# XK_Thai_sarauee* = 0x0dd7# XK_Thai_sarau* = 0x0dd8# XK_Thai_sarauu* = 0x0dd9# XK_Thai_phinthu* = 0x0dda# XK_Thai_maihanakat_maitho* = 0x0dde# XK_Thai_baht* = 0x0ddf# XK_Thai_sarae* = 0x0de0# XK_Thai_saraae* = 0x0de1# XK_Thai_sarao* = 0x0de2# XK_Thai_saraaimaimuan* = 0x0de3# XK_Thai_saraaimaimalai* = 0x0de4# XK_Thai_lakkhangyao* = 0x0de5# XK_Thai_maiyamok* = 0x0de6# XK_Thai_maitaikhu* = 0x0de7# XK_Thai_maiek* = 0x0de8# XK_Thai_maitho* = 0x0de9# XK_Thai_maitri* = 0x0dea# XK_Thai_maichattawa* = 0x0deb# XK_Thai_thanthakhat* = 0x0dec# XK_Thai_nikhahit* = 0x0ded# XK_Thai_leksun* = 0x0df0# XK_Thai_leknung* = 0x0df1# XK_Thai_leksong* = 0x0df2# XK_Thai_leksam* = 0x0df3# XK_Thai_leksi* = 0x0df4# XK_Thai_lekha* = 0x0df5# XK_Thai_lekhok* = 0x0df6# XK_Thai_lekchet* = 0x0df7# XK_Thai_lekpaet* = 0x0df8# XK_Thai_lekkao* = 0x0df9# ### ## Korean# ## Byte 3 = 0x0e# ### when defined(XK_KOREAN):# const# XK_Hangul* = 0xff31# XK_Hangul_Start* = 0xff32# XK_Hangul_End* = 0xff33# XK_Hangul_Hanja* = 0xff34# XK_Hangul_Jamo* = 0xff35# XK_Hangul_Romaja* = 0xff36# XK_Hangul_Codeinput* = 0xff37# XK_Hangul_Jeonja* = 0xff38# XK_Hangul_Banja* = 0xff39# XK_Hangul_PreHanja* = 0xff3a# XK_Hangul_PostHanja* = 0xff3b# XK_Hangul_SingleCandidate* = 0xff3c# XK_Hangul_MultipleCandidate* = 0xff3d# XK_Hangul_PreviousCandidate* = 0xff3e# XK_Hangul_Special* = 0xff3f# XK_Hangul_switch* = 0xff7e# ## Hangul Consonant Characters# const# XK_Hangul_Kiyeog* = 0x0ea1# XK_Hangul_SsangKiyeog* = 0x0ea2# XK_Hangul_KiyeogSios* = 0x0ea3# XK_Hangul_Nieun* = 0x0ea4# XK_Hangul_NieunJieuj* = 0x0ea5# XK_Hangul_NieunHieuh* = 0x0ea6# XK_Hangul_Dikeud* = 0x0ea7# XK_Hangul_SsangDikeud* = 0x0ea8# XK_Hangul_Rieul* = 0x0ea9# XK_Hangul_RieulKiyeog* = 0x0eaa# XK_Hangul_RieulMieum* = 0x0eab# XK_Hangul_RieulPieub* = 0x0eac# XK_Hangul_RieulSios* = 0x0ead# XK_Hangul_RieulTieut* = 0x0eae# XK_Hangul_RieulPhieuf* = 0x0eaf# XK_Hangul_RieulHieuh* = 0x0eb0# XK_Hangul_Mieum* = 0x0eb1# XK_Hangul_Pieub* = 0x0eb2# XK_Hangul_SsangPieub* = 0x0eb3# XK_Hangul_PieubSios* = 0x0eb4# XK_Hangul_Sios* = 0x0eb5# XK_Hangul_SsangSios* = 0x0eb6# XK_Hangul_Ieung* = 0x0eb7# XK_Hangul_Jieuj* = 0x0eb8# XK_Hangul_SsangJieuj* = 0x0eb9# XK_Hangul_Cieuc* = 0x0eba# XK_Hangul_Khieuq* = 0x0ebb# XK_Hangul_Tieut* = 0x0ebc# XK_Hangul_Phieuf* = 0x0ebd# XK_Hangul_Hieuh* = 0x0ebe# ## Hangul Vowel Characters# const# XK_Hangul_A* = 0x0ebf# XK_Hangul_AE* = 0x0ec0# XK_Hangul_YA* = 0x0ec1# XK_Hangul_YAE* = 0x0ec2# XK_Hangul_EO* = 0x0ec3# XK_Hangul_E* = 0x0ec4# XK_Hangul_YEO* = 0x0ec5# XK_Hangul_YE* = 0x0ec6# XK_Hangul_O* = 0x0ec7# XK_Hangul_WA* = 0x0ec8# XK_Hangul_WAE* = 0x0ec9# XK_Hangul_OE* = 0x0eca# XK_Hangul_YO* = 0x0ecb# XK_Hangul_U* = 0x0ecc# XK_Hangul_WEO* = 0x0ecd# XK_Hangul_WE* = 0x0ece# XK_Hangul_WI* = 0x0ecf# XK_Hangul_YU* = 0x0ed0# XK_Hangul_EU* = 0x0ed1# XK_Hangul_YI* = 0x0ed2# XK_Hangul_I* = 0x0ed3# ## Hangul syllable-final (JongSeong) Characters# const# XK_Hangul_J_Kiyeog* = 0x0ed4# XK_Hangul_J_SsangKiyeog* = 0x0ed5# XK_Hangul_J_KiyeogSios* = 0x0ed6# XK_Hangul_J_Nieun* = 0x0ed7# XK_Hangul_J_NieunJieuj* = 0x0ed8# XK_Hangul_J_NieunHieuh* = 0x0ed9# XK_Hangul_J_Dikeud* = 0x0eda# XK_Hangul_J_Rieul* = 0x0edb# XK_Hangul_J_RieulKiyeog* = 0x0edc# XK_Hangul_J_RieulMieum* = 0x0edd# XK_Hangul_J_RieulPieub* = 0x0ede# XK_Hangul_J_RieulSios* = 0x0edf# XK_Hangul_J_RieulTieut* = 0x0ee0# XK_Hangul_J_RieulPhieuf* = 0x0ee1# XK_Hangul_J_RieulHieuh* = 0x0ee2# XK_Hangul_J_Mieum* = 0x0ee3# XK_Hangul_J_Pieub* = 0x0ee4# XK_Hangul_J_PieubSios* = 0x0ee5# XK_Hangul_J_Sios* = 0x0ee6# XK_Hangul_J_SsangSios* = 0x0ee7# XK_Hangul_J_Ieung* = 0x0ee8# XK_Hangul_J_Jieuj* = 0x0ee9# XK_Hangul_J_Cieuc* = 0x0eea# XK_Hangul_J_Khieuq* = 0x0eeb# XK_Hangul_J_Tieut* = 0x0eec# XK_Hangul_J_Phieuf* = 0x0eed# XK_Hangul_J_Hieuh* = 0x0eee# ## Ancient Hangul Consonant Characters# const# XK_Hangul_RieulYeorinHieuh* = 0x0eef# XK_Hangul_SunkyeongeumMieum* = 0x0ef0# XK_Hangul_SunkyeongeumPieub* = 0x0ef1# XK_Hangul_PanSios* = 0x0ef2# XK_Hangul_KkogjiDalrinIeung* = 0x0ef3# XK_Hangul_SunkyeongeumPhieuf* = 0x0ef4# XK_Hangul_YeorinHieuh* = 0x0ef5# ## Ancient Hangul Vowel Characters# const# XK_Hangul_AraeA* = 0x0ef6# XK_Hangul_AraeAE* = 0x0ef7# ## Ancient Hangul syllable-final (JongSeong) Characters# const# XK_Hangul_J_PanSios* = 0x0ef8# XK_Hangul_J_KkogjiDalrinIeung* = 0x0ef9# XK_Hangul_J_YeorinHieuh* = 0x0efa# ## Korean currency symbol# const# XK_Korean_Won* = 0x0eff# ### ## Armenian# ### when defined(XK_ARMENIAN):# const# XK_Armenian_ligature_ew* = 0x1000587# XK_Armenian_full_stop* = 0x1000589# XK_Armenian_verjaket* = 0x1000589# XK_Armenian_separation_mark* = 0x100055d# XK_Armenian_but* = 0x100055d# XK_Armenian_hyphen* = 0x100058a# XK_Armenian_yentamna* = 0x100058a# XK_Armenian_exclam* = 0x100055c# XK_Armenian_amanak* = 0x100055c# XK_Armenian_accent* = 0x100055b# XK_Armenian_shesht* = 0x100055b# XK_Armenian_question* = 0x100055e# XK_Armenian_paruyk* = 0x100055e# XK_Armenian_AYB* = 0x1000531# XK_Armenian_ayb* = 0x1000561# XK_Armenian_BEN* = 0x1000532# XK_Armenian_ben* = 0x1000562# XK_Armenian_GIM* = 0x1000533# XK_Armenian_gim* = 0x1000563# XK_Armenian_DA* = 0x1000534# XK_Armenian_da* = 0x1000564# XK_Armenian_YECH* = 0x1000535# XK_Armenian_yech* = 0x1000565# XK_Armenian_ZA* = 0x1000536# XK_Armenian_za* = 0x1000566# XK_Armenian_E* = 0x1000537# XK_Armenian_e* = 0x1000567# XK_Armenian_AT* = 0x1000538# XK_Armenian_at* = 0x1000568# XK_Armenian_TO* = 0x1000539# XK_Armenian_to* = 0x1000569# XK_Armenian_ZHE* = 0x100053a# XK_Armenian_zhe* = 0x100056a# XK_Armenian_INI* = 0x100053b# XK_Armenian_ini* = 0x100056b# XK_Armenian_LYUN* = 0x100053c# XK_Armenian_lyun* = 0x100056c# XK_Armenian_KHE* = 0x100053d# XK_Armenian_khe* = 0x100056d# XK_Armenian_TSA* = 0x100053e# XK_Armenian_tsa* = 0x100056e# XK_Armenian_KEN* = 0x100053f# XK_Armenian_ken* = 0x100056f# XK_Armenian_HO* = 0x1000540# XK_Armenian_ho* = 0x1000570# XK_Armenian_DZA* = 0x1000541# XK_Armenian_dza* = 0x1000571# XK_Armenian_GHAT* = 0x1000542# XK_Armenian_ghat* = 0x1000572# XK_Armenian_TCHE* = 0x1000543# XK_Armenian_tche* = 0x1000573# XK_Armenian_MEN* = 0x1000544# XK_Armenian_men* = 0x1000574# XK_Armenian_HI* = 0x1000545# XK_Armenian_hi* = 0x1000575# XK_Armenian_NU* = 0x1000546# XK_Armenian_nu* = 0x1000576# XK_Armenian_SHA* = 0x1000547# XK_Armenian_sha* = 0x1000577# XK_Armenian_VO* = 0x1000548# XK_Armenian_vo* = 0x1000578# XK_Armenian_CHA* = 0x1000549# XK_Armenian_cha* = 0x1000579# XK_Armenian_PE* = 0x100054a# XK_Armenian_pe* = 0x100057a# XK_Armenian_JE* = 0x100054b# XK_Armenian_je* = 0x100057b# XK_Armenian_RA* = 0x100054c# XK_Armenian_ra* = 0x100057c# XK_Armenian_SE* = 0x100054d# XK_Armenian_se* = 0x100057d# XK_Armenian_VEV* = 0x100054e# XK_Armenian_vev* = 0x100057e# XK_Armenian_TYUN* = 0x100054f# XK_Armenian_tyun* = 0x100057f# XK_Armenian_RE* = 0x1000550# XK_Armenian_re* = 0x1000580# XK_Armenian_TSO* = 0x1000551# XK_Armenian_tso* = 0x1000581# XK_Armenian_VYUN* = 0x1000552# XK_Armenian_vyun* = 0x1000582# XK_Armenian_PYUR* = 0x1000553# XK_Armenian_pyur* = 0x1000583# XK_Armenian_KE* = 0x1000554# XK_Armenian_ke* = 0x1000584# XK_Armenian_O* = 0x1000555# XK_Armenian_o* = 0x1000585# XK_Armenian_FE* = 0x1000556# XK_Armenian_fe* = 0x1000586# XK_Armenian_apostrophe* = 0x100055a# ### ## Georgian# ### when defined(XK_GEORGIAN):# const# XK_Georgian_an* = 0x10010d0# XK_Georgian_ban* = 0x10010d1# XK_Georgian_gan* = 0x10010d2# XK_Georgian_don* = 0x10010d3# XK_Georgian_en* = 0x10010d4# XK_Georgian_vin* = 0x10010d5# XK_Georgian_zen* = 0x10010d6# XK_Georgian_tan* = 0x10010d7# XK_Georgian_in* = 0x10010d8# XK_Georgian_kan* = 0x10010d9# XK_Georgian_las* = 0x10010da# XK_Georgian_man* = 0x10010db# XK_Georgian_nar* = 0x10010dc# XK_Georgian_on* = 0x10010dd# XK_Georgian_par* = 0x10010de# XK_Georgian_zhar* = 0x10010df# XK_Georgian_rae* = 0x10010e0# XK_Georgian_san* = 0x10010e1# XK_Georgian_tar* = 0x10010e2# XK_Georgian_un* = 0x10010e3# XK_Georgian_phar* = 0x10010e4# XK_Georgian_khar* = 0x10010e5# XK_Georgian_ghan* = 0x10010e6# XK_Georgian_qar* = 0x10010e7# XK_Georgian_shin* = 0x10010e8# XK_Georgian_chin* = 0x10010e9# XK_Georgian_can* = 0x10010ea# XK_Georgian_jil* = 0x10010eb# XK_Georgian_cil* = 0x10010ec# XK_Georgian_char* = 0x10010ed# XK_Georgian_xan* = 0x10010ee# XK_Georgian_jhan* = 0x10010ef# XK_Georgian_hae* = 0x10010f0# XK_Georgian_he* = 0x10010f1# XK_Georgian_hie* = 0x10010f2# XK_Georgian_we* = 0x10010f3# XK_Georgian_har* = 0x10010f4# XK_Georgian_hoe* = 0x10010f5# XK_Georgian_fi* = 0x10010f6# ### ## Azeri (and other Turkic or Caucasian languages)# ### when defined(XK_CAUCASUS):# ## latin# const# XK_Xabovedot* = 0x1001e8a# XK_Ibreve* = 0x100012c# XK_Zstroke* = 0x10001b5# XK_Gcaron* = 0x10001e6# XK_Ocaron* = 0x10001d1# XK_Obarred* = 0x100019f# XK_xabovedot* = 0x1001e8b# XK_ibreve* = 0x100012d# XK_zstroke* = 0x10001b6# XK_gcaron* = 0x10001e7# XK_ocaron* = 0x10001d2# XK_obarred* = 0x1000275# XK_SCHWA* = 0x100018f# XK_schwa* = 0x1000259# ## those are not really Caucasus# ## For Inupiak# const# XK_Lbelowdot* = 0x1001e36# XK_lbelowdot* = 0x1001e37# ### ## Vietnamese# ### when defined(XK_VIETNAMESE):# const# XK_Abelowdot* = 0x1001ea0# XK_abelowdot* = 0x1001ea1# XK_Ahook* = 0x1001ea2# XK_ahook* = 0x1001ea3# XK_Acircumflexacute* = 0x1001ea4# XK_acircumflexacute* = 0x1001ea5# XK_Acircumflexgrave* = 0x1001ea6# XK_acircumflexgrave* = 0x1001ea7# XK_Acircumflexhook* = 0x1001ea8# XK_acircumflexhook* = 0x1001ea9# XK_Acircumflextilde* = 0x1001eaa# XK_acircumflextilde* = 0x1001eab# XK_Acircumflexbelowdot* = 0x1001eac# XK_acircumflexbelowdot* = 0x1001ead# XK_Abreveacute* = 0x1001eae# XK_abreveacute* = 0x1001eaf# XK_Abrevegrave* = 0x1001eb0# XK_abrevegrave* = 0x1001eb1# XK_Abrevehook* = 0x1001eb2# XK_abrevehook* = 0x1001eb3# XK_Abrevetilde* = 0x1001eb4# XK_abrevetilde* = 0x1001eb5# XK_Abrevebelowdot* = 0x1001eb6# XK_abrevebelowdot* = 0x1001eb7# XK_Ebelowdot* = 0x1001eb8# XK_ebelowdot* = 0x1001eb9# XK_Ehook* = 0x1001eba# XK_ehook* = 0x1001ebb# XK_Etilde* = 0x1001ebc# XK_etilde* = 0x1001ebd# XK_Ecircumflexacute* = 0x1001ebe# XK_ecircumflexacute* = 0x1001ebf# XK_Ecircumflexgrave* = 0x1001ec0# XK_ecircumflexgrave* = 0x1001ec1# XK_Ecircumflexhook* = 0x1001ec2# XK_ecircumflexhook* = 0x1001ec3# XK_Ecircumflextilde* = 0x1001ec4# XK_ecircumflextilde* = 0x1001ec5# XK_Ecircumflexbelowdot* = 0x1001ec6# XK_ecircumflexbelowdot* = 0x1001ec7# XK_Ihook* = 0x1001ec8# XK_ihook* = 0x1001ec9# XK_Ibelowdot* = 0x1001eca# XK_ibelowdot* = 0x1001ecb# XK_Obelowdot* = 0x1001ecc# XK_obelowdot* = 0x1001ecd# XK_Ohook* = 0x1001ece# XK_ohook* = 0x1001ecf# XK_Ocircumflexacute* = 0x1001ed0# XK_ocircumflexacute* = 0x1001ed1# XK_Ocircumflexgrave* = 0x1001ed2# XK_ocircumflexgrave* = 0x1001ed3# XK_Ocircumflexhook* = 0x1001ed4# XK_ocircumflexhook* = 0x1001ed5# XK_Ocircumflextilde* = 0x1001ed6# XK_ocircumflextilde* = 0x1001ed7# XK_Ocircumflexbelowdot* = 0x1001ed8# XK_ocircumflexbelowdot* = 0x1001ed9# XK_Ohornacute* = 0x1001eda# XK_ohornacute* = 0x1001edb# XK_Ohorngrave* = 0x1001edc# XK_ohorngrave* = 0x1001edd# XK_Ohornhook* = 0x1001ede# XK_ohornhook* = 0x1001edf# XK_Ohorntilde* = 0x1001ee0# XK_ohorntilde* = 0x1001ee1# XK_Ohornbelowdot* = 0x1001ee2# XK_ohornbelowdot* = 0x1001ee3# XK_Ubelowdot* = 0x1001ee4# XK_ubelowdot* = 0x1001ee5# XK_Uhook* = 0x1001ee6# XK_uhook* = 0x1001ee7# XK_Uhornacute* = 0x1001ee8# XK_uhornacute* = 0x1001ee9# XK_Uhorngrave* = 0x1001eea# XK_uhorngrave* = 0x1001eeb# XK_Uhornhook* = 0x1001eec# XK_uhornhook* = 0x1001eed# XK_Uhorntilde* = 0x1001eee# XK_uhorntilde* = 0x1001eef# XK_Uhornbelowdot* = 0x1001ef0# XK_uhornbelowdot* = 0x1001ef1# XK_Ybelowdot* = 0x1001ef4# XK_ybelowdot* = 0x1001ef5# XK_Yhook* = 0x1001ef6# XK_yhook* = 0x1001ef7# XK_Ytilde* = 0x1001ef8# XK_ytilde* = 0x1001ef9# XK_Ohorn* = 0x10001a0# XK_ohorn* = 0x10001a1# XK_Uhorn* = 0x10001af# XK_uhorn* = 0x10001b0# when defined(XK_CURRENCY):# const# XK_EcuSign* = 0x10020a0# XK_ColonSign* = 0x10020a1# XK_CruzeiroSign* = 0x10020a2# XK_FFrancSign* = 0x10020a3# XK_LiraSign* = 0x10020a4# XK_MillSign* = 0x10020a5# XK_NairaSign* = 0x10020a6# XK_PesetaSign* = 0x10020a7# XK_RupeeSign* = 0x10020a8# XK_WonSign* = 0x10020a9# XK_NewSheqelSign* = 0x10020aa# XK_DongSign* = 0x10020ab# XK_EuroSign* = 0x20ac
/** The "X11 Window System Protocol" standard defines in Appendix A the* keysym codes. These 29-bit integer values identify characters or* functions associated with each key (e.g., via the visible* engraving) of a keyboard layout. This file assigns mnemonic macro* names for these keysyms.** This file is also compiled (by xc/lib/X11/util/makekeys.c) into* hash tables that can be accessed with X11 library functions such as* XStringToKeysym() and XKeysymToString().** Where a keysym corresponds one-to-one to an ISO 10646 / Unicode* character, this is noted in a comment that provides both the U+xxxx* Unicode position, as well as the official Unicode name of the* character.** Where the correspondence is either not one-to-one or semantically* unclear, the Unicode position and name are enclosed in* parentheses. Such legacy keysyms should be considered deprecated* and are not recommended for use in future keyboard mappings.** For any future extension of the keysyms with characters already* found in ISO 10646 / Unicode, the following algorithm shall be* used. The new keysym code position will simply be the character's* Unicode number plus 0x01000000. The keysym values in the range* 0x01000100 to 0x0110ffff are reserved to represent Unicode* characters in the range U+0100 to U+10FFFF.** While most newer Unicode-based X11 clients do already accept* Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it* will remain necessary for clients -- in the interest of* compatibility with existing servers -- to also understand the* existing legacy keysym values in the range 0x0100 to 0x20ff.** Where several mnemonic names are defined for the same keysym in this* file, all but the first one listed should be considered deprecated.** Mnemonic names for keysyms are defined in this file with lines* that match one of these Perl regular expressions:** /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/* /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/* /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/** When adding new keysyms to this file, do not forget to also update the* mappings in xc/lib/X11/KeyBind.c and the protocol specification in* xc/doc/specs/XProtocol/X11.keysyms.*/#define XK_VoidSymbol 0xffffff /* Void symbol */#ifdef XK_MISCELLANY/** TTY function keys, cleverly chosen to map to ASCII, for convenience of* programming, but could have been arbitrary (at the cost of lookup* tables in client code).*/#define XK_BackSpace 0xff08 /* Back space, back char */#define XK_Tab 0xff09#define XK_Linefeed 0xff0a /* Linefeed, LF */#define XK_Clear 0xff0b#define XK_Return 0xff0d /* Return, enter */#define XK_Pause 0xff13 /* Pause, hold */#define XK_Scroll_Lock 0xff14#define XK_Sys_Req 0xff15#define XK_Escape 0xff1b#define XK_Delete 0xffff /* Delete, rubout *//* International & multi-key character composition */#define XK_Multi_key 0xff20 /* Multi-key character compose */#define XK_Codeinput 0xff37#define XK_SingleCandidate 0xff3c#define XK_MultipleCandidate 0xff3d#define XK_PreviousCandidate 0xff3e/* Japanese keyboard support */#define XK_Kanji 0xff21 /* Kanji, Kanji convert */#define XK_Muhenkan 0xff22 /* Cancel Conversion */#define XK_Henkan_Mode 0xff23 /* Start/Stop Conversion */#define XK_Henkan 0xff23 /* Alias for Henkan_Mode */#define XK_Romaji 0xff24 /* to Romaji */#define XK_Hiragana 0xff25 /* to Hiragana */#define XK_Katakana 0xff26 /* to Katakana */#define XK_Hiragana_Katakana 0xff27 /* Hiragana/Katakana toggle */#define XK_Zenkaku 0xff28 /* to Zenkaku */#define XK_Hankaku 0xff29 /* to Hankaku */#define XK_Zenkaku_Hankaku 0xff2a /* Zenkaku/Hankaku toggle */#define XK_Touroku 0xff2b /* Add to Dictionary */#define XK_Massyo 0xff2c /* Delete from Dictionary */#define XK_Kana_Lock 0xff2d /* Kana Lock */#define XK_Kana_Shift 0xff2e /* Kana Shift */#define XK_Eisu_Shift 0xff2f /* Alphanumeric Shift */#define XK_Eisu_toggle 0xff30 /* Alphanumeric toggle */#define XK_Kanji_Bangou 0xff37 /* Codeinput */#define XK_Zen_Koho 0xff3d /* Multiple/All Candidate(s) */#define XK_Mae_Koho 0xff3e /* Previous Candidate *//* 0xff31 thru 0xff3f are under XK_KOREAN *//* Cursor control & motion */#define XK_Home 0xff50#define XK_Left 0xff51 /* Move left, left arrow */#define XK_Up 0xff52 /* Move up, up arrow */#define XK_Right 0xff53 /* Move right, right arrow */#define XK_Down 0xff54 /* Move down, down arrow */#define XK_Prior 0xff55 /* Prior, previous */#define XK_Page_Up 0xff55#define XK_Next 0xff56 /* Next */#define XK_Page_Down 0xff56#define XK_End 0xff57 /* EOL */#define XK_Begin 0xff58 /* BOL *//* Misc functions */#define XK_Select 0xff60 /* Select, mark */#define XK_Print 0xff61#define XK_Execute 0xff62 /* Execute, run, do */#define XK_Insert 0xff63 /* Insert, insert here */#define XK_Undo 0xff65#define XK_Redo 0xff66 /* Redo, again */#define XK_Menu 0xff67#define XK_Find 0xff68 /* Find, search */#define XK_Cancel 0xff69 /* Cancel, stop, abort, exit */#define XK_Help 0xff6a /* Help */#define XK_Break 0xff6b#define XK_Mode_switch 0xff7e /* Character set switch */#define XK_script_switch 0xff7e /* Alias for mode_switch */#define XK_Num_Lock 0xff7f/* Keypad functions, keypad numbers cleverly chosen to map to ASCII */#define XK_KP_Space 0xff80 /* Space */#define XK_KP_Tab 0xff89#define XK_KP_Enter 0xff8d /* Enter */#define XK_KP_F1 0xff91 /* PF1, KP_A, ... */#define XK_KP_F2 0xff92#define XK_KP_F3 0xff93#define XK_KP_F4 0xff94#define XK_KP_Home 0xff95#define XK_KP_Left 0xff96#define XK_KP_Up 0xff97#define XK_KP_Right 0xff98#define XK_KP_Down 0xff99#define XK_KP_Prior 0xff9a#define XK_KP_Page_Up 0xff9a#define XK_KP_Next 0xff9b#define XK_KP_Page_Down 0xff9b#define XK_KP_End 0xff9c#define XK_KP_Begin 0xff9d#define XK_KP_Insert 0xff9e#define XK_KP_Delete 0xff9f#define XK_KP_Equal 0xffbd /* Equals */#define XK_KP_Multiply 0xffaa#define XK_KP_Add 0xffab#define XK_KP_Separator 0xffac /* Separator, often comma */#define XK_KP_Subtract 0xffad#define XK_KP_Decimal 0xffae#define XK_KP_Divide 0xffaf#define XK_KP_0 0xffb0#define XK_KP_1 0xffb1#define XK_KP_2 0xffb2#define XK_KP_3 0xffb3#define XK_KP_4 0xffb4#define XK_KP_5 0xffb5#define XK_KP_6 0xffb6#define XK_KP_7 0xffb7#define XK_KP_8 0xffb8#define XK_KP_9 0xffb9/** Auxilliary functions; note the duplicate definitions for left and right* function keys; Sun keyboards and a few other manufactures have such* function key groups on the left and/or right sides of the keyboard.* We've not found a keyboard with more than 35 function keys total.*/#define XK_F1 0xffbe#define XK_F2 0xffbf#define XK_F3 0xffc0#define XK_F4 0xffc1#define XK_F5 0xffc2#define XK_F6 0xffc3#define XK_F7 0xffc4#define XK_F8 0xffc5#define XK_F9 0xffc6#define XK_F10 0xffc7#define XK_F11 0xffc8#define XK_L1 0xffc8#define XK_F12 0xffc9#define XK_L2 0xffc9#define XK_F13 0xffca#define XK_L3 0xffca#define XK_F14 0xffcb#define XK_L4 0xffcb#define XK_F15 0xffcc#define XK_L5 0xffcc#define XK_F16 0xffcd#define XK_L6 0xffcd#define XK_F17 0xffce#define XK_L7 0xffce#define XK_F18 0xffcf#define XK_L8 0xffcf#define XK_F19 0xffd0#define XK_L9 0xffd0#define XK_F20 0xffd1#define XK_L10 0xffd1#define XK_F21 0xffd2#define XK_R1 0xffd2#define XK_F22 0xffd3#define XK_R2 0xffd3#define XK_F23 0xffd4#define XK_R3 0xffd4#define XK_F24 0xffd5#define XK_R4 0xffd5#define XK_F25 0xffd6#define XK_R5 0xffd6#define XK_F26 0xffd7#define XK_R6 0xffd7#define XK_F27 0xffd8#define XK_R7 0xffd8#define XK_F28 0xffd9#define XK_R8 0xffd9#define XK_F29 0xffda#define XK_R9 0xffda#define XK_F30 0xffdb#define XK_R10 0xffdb#define XK_F31 0xffdc#define XK_R11 0xffdc#define XK_F32 0xffdd#define XK_R12 0xffdd#define XK_F33 0xffde#define XK_R13 0xffde#define XK_F34 0xffdf#define XK_R14 0xffdf#define XK_F35 0xffe0#define XK_R15 0xffe0/* Modifiers */#define XK_Shift_L 0xffe1 /* Left shift */#define XK_Shift_R 0xffe2 /* Right shift */#define XK_Control_L 0xffe3 /* Left control */#define XK_Control_R 0xffe4 /* Right control */#define XK_Caps_Lock 0xffe5 /* Caps lock */#define XK_Shift_Lock 0xffe6 /* Shift lock */#define XK_Meta_L 0xffe7 /* Left meta */#define XK_Meta_R 0xffe8 /* Right meta */#define XK_Alt_L 0xffe9 /* Left alt */#define XK_Alt_R 0xffea /* Right alt */#define XK_Super_L 0xffeb /* Left super */#define XK_Super_R 0xffec /* Right super */#define XK_Hyper_L 0xffed /* Left hyper */#define XK_Hyper_R 0xffee /* Right hyper */#endif /* XK_MISCELLANY *//** Keyboard (XKB) Extension function and modifier keys* (from Appendix C of "The X Keyboard Extension: Protocol Specification")* Byte 3 = 0xfe*/#ifdef XK_XKB_KEYS#define XK_ISO_Lock 0xfe01#define XK_ISO_Level2_Latch 0xfe02#define XK_ISO_Level3_Shift 0xfe03#define XK_ISO_Level3_Latch 0xfe04#define XK_ISO_Level3_Lock 0xfe05#define XK_ISO_Group_Shift 0xff7e /* Alias for mode_switch */#define XK_ISO_Group_Latch 0xfe06#define XK_ISO_Group_Lock 0xfe07#define XK_ISO_Next_Group 0xfe08#define XK_ISO_Next_Group_Lock 0xfe09#define XK_ISO_Prev_Group 0xfe0a#define XK_ISO_Prev_Group_Lock 0xfe0b#define XK_ISO_First_Group 0xfe0c#define XK_ISO_First_Group_Lock 0xfe0d#define XK_ISO_Last_Group 0xfe0e#define XK_ISO_Last_Group_Lock 0xfe0f#define XK_ISO_Left_Tab 0xfe20#define XK_ISO_Move_Line_Up 0xfe21#define XK_ISO_Move_Line_Down 0xfe22#define XK_ISO_Partial_Line_Up 0xfe23#define XK_ISO_Partial_Line_Down 0xfe24#define XK_ISO_Partial_Space_Left 0xfe25#define XK_ISO_Partial_Space_Right 0xfe26#define XK_ISO_Set_Margin_Left 0xfe27#define XK_ISO_Set_Margin_Right 0xfe28#define XK_ISO_Release_Margin_Left 0xfe29#define XK_ISO_Release_Margin_Right 0xfe2a#define XK_ISO_Release_Both_Margins 0xfe2b#define XK_ISO_Fast_Cursor_Left 0xfe2c#define XK_ISO_Fast_Cursor_Right 0xfe2d#define XK_ISO_Fast_Cursor_Up 0xfe2e#define XK_ISO_Fast_Cursor_Down 0xfe2f#define XK_ISO_Continuous_Underline 0xfe30#define XK_ISO_Discontinuous_Underline 0xfe31#define XK_ISO_Emphasize 0xfe32#define XK_ISO_Center_Object 0xfe33#define XK_ISO_Enter 0xfe34#define XK_dead_grave 0xfe50#define XK_dead_acute 0xfe51#define XK_dead_circumflex 0xfe52#define XK_dead_tilde 0xfe53#define XK_dead_macron 0xfe54#define XK_dead_breve 0xfe55#define XK_dead_abovedot 0xfe56#define XK_dead_diaeresis 0xfe57#define XK_dead_abovering 0xfe58#define XK_dead_doubleacute 0xfe59#define XK_dead_caron 0xfe5a#define XK_dead_cedilla 0xfe5b#define XK_dead_ogonek 0xfe5c#define XK_dead_iota 0xfe5d#define XK_dead_voiced_sound 0xfe5e#define XK_dead_semivoiced_sound 0xfe5f#define XK_dead_belowdot 0xfe60#define XK_dead_hook 0xfe61#define XK_dead_horn 0xfe62#define XK_First_Virtual_Screen 0xfed0#define XK_Prev_Virtual_Screen 0xfed1#define XK_Next_Virtual_Screen 0xfed2#define XK_Last_Virtual_Screen 0xfed4#define XK_Terminate_Server 0xfed5#define XK_AccessX_Enable 0xfe70#define XK_AccessX_Feedback_Enable 0xfe71#define XK_RepeatKeys_Enable 0xfe72#define XK_SlowKeys_Enable 0xfe73#define XK_BounceKeys_Enable 0xfe74#define XK_StickyKeys_Enable 0xfe75#define XK_MouseKeys_Enable 0xfe76#define XK_MouseKeys_Accel_Enable 0xfe77#define XK_Overlay1_Enable 0xfe78#define XK_Overlay2_Enable 0xfe79#define XK_AudibleBell_Enable 0xfe7a#define XK_Pointer_Left 0xfee0#define XK_Pointer_Right 0xfee1#define XK_Pointer_Up 0xfee2#define XK_Pointer_Down 0xfee3#define XK_Pointer_UpLeft 0xfee4#define XK_Pointer_UpRight 0xfee5#define XK_Pointer_DownLeft 0xfee6#define XK_Pointer_DownRight 0xfee7#define XK_Pointer_Button_Dflt 0xfee8#define XK_Pointer_Button1 0xfee9#define XK_Pointer_Button2 0xfeea#define XK_Pointer_Button3 0xfeeb#define XK_Pointer_Button4 0xfeec#define XK_Pointer_Button5 0xfeed#define XK_Pointer_DblClick_Dflt 0xfeee#define XK_Pointer_DblClick1 0xfeef#define XK_Pointer_DblClick2 0xfef0#define XK_Pointer_DblClick3 0xfef1#define XK_Pointer_DblClick4 0xfef2#define XK_Pointer_DblClick5 0xfef3#define XK_Pointer_Drag_Dflt 0xfef4#define XK_Pointer_Drag1 0xfef5#define XK_Pointer_Drag2 0xfef6#define XK_Pointer_Drag3 0xfef7#define XK_Pointer_Drag4 0xfef8#define XK_Pointer_Drag5 0xfefd#define XK_Pointer_EnableKeys 0xfef9#define XK_Pointer_Accelerate 0xfefa#define XK_Pointer_DfltBtnNext 0xfefb#define XK_Pointer_DfltBtnPrev 0xfefc#endif /* XK_XKB_KEYS *//** 3270 Terminal Keys* Byte 3 = 0xfd*/#ifdef XK_3270#define XK_3270_Duplicate 0xfd01#define XK_3270_FieldMark 0xfd02#define XK_3270_Right2 0xfd03#define XK_3270_Left2 0xfd04#define XK_3270_BackTab 0xfd05#define XK_3270_EraseEOF 0xfd06#define XK_3270_EraseInput 0xfd07#define XK_3270_Reset 0xfd08#define XK_3270_Quit 0xfd09#define XK_3270_PA1 0xfd0a#define XK_3270_PA2 0xfd0b#define XK_3270_PA3 0xfd0c#define XK_3270_Test 0xfd0d#define XK_3270_Attn 0xfd0e#define XK_3270_CursorBlink 0xfd0f#define XK_3270_AltCursor 0xfd10#define XK_3270_KeyClick 0xfd11#define XK_3270_Jump 0xfd12#define XK_3270_Ident 0xfd13#define XK_3270_Rule 0xfd14#define XK_3270_Copy 0xfd15#define XK_3270_Play 0xfd16#define XK_3270_Setup 0xfd17#define XK_3270_Record 0xfd18#define XK_3270_ChangeScreen 0xfd19#define XK_3270_DeleteWord 0xfd1a#define XK_3270_ExSelect 0xfd1b#define XK_3270_CursorSelect 0xfd1c#define XK_3270_PrintScreen 0xfd1d#define XK_3270_Enter 0xfd1e#endif /* XK_3270 *//** Latin 1* (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)* Byte 3 = 0*/#ifdef XK_LATIN1#define XK_space 0x0020 /* U+0020 SPACE */#define XK_exclam 0x0021 /* U+0021 EXCLAMATION MARK */#define XK_quotedbl 0x0022 /* U+0022 QUOTATION MARK */#define XK_numbersign 0x0023 /* U+0023 NUMBER SIGN */#define XK_dollar 0x0024 /* U+0024 DOLLAR SIGN */#define XK_percent 0x0025 /* U+0025 PERCENT SIGN */#define XK_ampersand 0x0026 /* U+0026 AMPERSAND */#define XK_apostrophe 0x0027 /* U+0027 APOSTROPHE */#define XK_quoteright 0x0027 /* deprecated */#define XK_parenleft 0x0028 /* U+0028 LEFT PARENTHESIS */#define XK_parenright 0x0029 /* U+0029 RIGHT PARENTHESIS */#define XK_asterisk 0x002a /* U+002A ASTERISK */#define XK_plus 0x002b /* U+002B PLUS SIGN */#define XK_comma 0x002c /* U+002C COMMA */#define XK_minus 0x002d /* U+002D HYPHEN-MINUS */#define XK_period 0x002e /* U+002E FULL STOP */#define XK_slash 0x002f /* U+002F SOLIDUS */#define XK_0 0x0030 /* U+0030 DIGIT ZERO */#define XK_1 0x0031 /* U+0031 DIGIT ONE */#define XK_2 0x0032 /* U+0032 DIGIT TWO */#define XK_3 0x0033 /* U+0033 DIGIT THREE */#define XK_4 0x0034 /* U+0034 DIGIT FOUR */#define XK_5 0x0035 /* U+0035 DIGIT FIVE */#define XK_6 0x0036 /* U+0036 DIGIT SIX */#define XK_7 0x0037 /* U+0037 DIGIT SEVEN */#define XK_8 0x0038 /* U+0038 DIGIT EIGHT */#define XK_9 0x0039 /* U+0039 DIGIT NINE */#define XK_colon 0x003a /* U+003A COLON */#define XK_semicolon 0x003b /* U+003B SEMICOLON */#define XK_less 0x003c /* U+003C LESS-THAN SIGN */#define XK_equal 0x003d /* U+003D EQUALS SIGN */#define XK_greater 0x003e /* U+003E GREATER-THAN SIGN */#define XK_question 0x003f /* U+003F QUESTION MARK */#define XK_at 0x0040 /* U+0040 COMMERCIAL AT */#define XK_A 0x0041 /* U+0041 LATIN CAPITAL LETTER A */#define XK_B 0x0042 /* U+0042 LATIN CAPITAL LETTER B */#define XK_C 0x0043 /* U+0043 LATIN CAPITAL LETTER C */#define XK_D 0x0044 /* U+0044 LATIN CAPITAL LETTER D */#define XK_E 0x0045 /* U+0045 LATIN CAPITAL LETTER E */#define XK_F 0x0046 /* U+0046 LATIN CAPITAL LETTER F */#define XK_G 0x0047 /* U+0047 LATIN CAPITAL LETTER G */#define XK_H 0x0048 /* U+0048 LATIN CAPITAL LETTER H */#define XK_I 0x0049 /* U+0049 LATIN CAPITAL LETTER I */#define XK_J 0x004a /* U+004A LATIN CAPITAL LETTER J */#define XK_K 0x004b /* U+004B LATIN CAPITAL LETTER K */#define XK_L 0x004c /* U+004C LATIN CAPITAL LETTER L */#define XK_M 0x004d /* U+004D LATIN CAPITAL LETTER M */#define XK_N 0x004e /* U+004E LATIN CAPITAL LETTER N */#define XK_O 0x004f /* U+004F LATIN CAPITAL LETTER O */#define XK_P 0x0050 /* U+0050 LATIN CAPITAL LETTER P */#define XK_Q 0x0051 /* U+0051 LATIN CAPITAL LETTER Q */#define XK_R 0x0052 /* U+0052 LATIN CAPITAL LETTER R */#define XK_S 0x0053 /* U+0053 LATIN CAPITAL LETTER S */#define XK_T 0x0054 /* U+0054 LATIN CAPITAL LETTER T */#define XK_U 0x0055 /* U+0055 LATIN CAPITAL LETTER U */#define XK_V 0x0056 /* U+0056 LATIN CAPITAL LETTER V */#define XK_W 0x0057 /* U+0057 LATIN CAPITAL LETTER W */#define XK_X 0x0058 /* U+0058 LATIN CAPITAL LETTER X */#define XK_Y 0x0059 /* U+0059 LATIN CAPITAL LETTER Y */#define XK_Z 0x005a /* U+005A LATIN CAPITAL LETTER Z */#define XK_bracketleft 0x005b /* U+005B LEFT SQUARE BRACKET */#define XK_backslash 0x005c /* U+005C REVERSE SOLIDUS */#define XK_bracketright 0x005d /* U+005D RIGHT SQUARE BRACKET */#define XK_asciicircum 0x005e /* U+005E CIRCUMFLEX ACCENT */#define XK_underscore 0x005f /* U+005F LOW LINE */#define XK_grave 0x0060 /* U+0060 GRAVE ACCENT */#define XK_quoteleft 0x0060 /* deprecated */#define XK_a 0x0061 /* U+0061 LATIN SMALL LETTER A */#define XK_b 0x0062 /* U+0062 LATIN SMALL LETTER B */#define XK_c 0x0063 /* U+0063 LATIN SMALL LETTER C */#define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */#define XK_e 0x0065 /* U+0065 LATIN SMALL LETTER E */#define XK_f 0x0066 /* U+0066 LATIN SMALL LETTER F */#define XK_g 0x0067 /* U+0067 LATIN SMALL LETTER G */#define XK_h 0x0068 /* U+0068 LATIN SMALL LETTER H */#define XK_i 0x0069 /* U+0069 LATIN SMALL LETTER I */#define XK_j 0x006a /* U+006A LATIN SMALL LETTER J */#define XK_k 0x006b /* U+006B LATIN SMALL LETTER K */#define XK_l 0x006c /* U+006C LATIN SMALL LETTER L */#define XK_m 0x006d /* U+006D LATIN SMALL LETTER M */#define XK_n 0x006e /* U+006E LATIN SMALL LETTER N */#define XK_o 0x006f /* U+006F LATIN SMALL LETTER O */#define XK_p 0x0070 /* U+0070 LATIN SMALL LETTER P */#define XK_q 0x0071 /* U+0071 LATIN SMALL LETTER Q */#define XK_r 0x0072 /* U+0072 LATIN SMALL LETTER R */#define XK_s 0x0073 /* U+0073 LATIN SMALL LETTER S */#define XK_t 0x0074 /* U+0074 LATIN SMALL LETTER T */#define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */#define XK_v 0x0076 /* U+0076 LATIN SMALL LETTER V */#define XK_w 0x0077 /* U+0077 LATIN SMALL LETTER W */#define XK_x 0x0078 /* U+0078 LATIN SMALL LETTER X */#define XK_y 0x0079 /* U+0079 LATIN SMALL LETTER Y */#define XK_z 0x007a /* U+007A LATIN SMALL LETTER Z */#define XK_braceleft 0x007b /* U+007B LEFT CURLY BRACKET */#define XK_bar 0x007c /* U+007C VERTICAL LINE */#define XK_braceright 0x007d /* U+007D RIGHT CURLY BRACKET */#define XK_asciitilde 0x007e /* U+007E TILDE */#define XK_nobreakspace 0x00a0 /* U+00A0 NO-BREAK SPACE */#define XK_exclamdown 0x00a1 /* U+00A1 INVERTED EXCLAMATION MARK */#define XK_cent 0x00a2 /* U+00A2 CENT SIGN */#define XK_sterling 0x00a3 /* U+00A3 POUND SIGN */#define XK_currency 0x00a4 /* U+00A4 CURRENCY SIGN */#define XK_yen 0x00a5 /* U+00A5 YEN SIGN */#define XK_brokenbar 0x00a6 /* U+00A6 BROKEN BAR */#define XK_section 0x00a7 /* U+00A7 SECTION SIGN */#define XK_diaeresis 0x00a8 /* U+00A8 DIAERESIS */#define XK_copyright 0x00a9 /* U+00A9 COPYRIGHT SIGN */#define XK_ordfeminine 0x00aa /* U+00AA FEMININE ORDINAL INDICATOR */#define XK_guillemotleft 0x00ab /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */#define XK_notsign 0x00ac /* U+00AC NOT SIGN */#define XK_hyphen 0x00ad /* U+00AD SOFT HYPHEN */#define XK_registered 0x00ae /* U+00AE REGISTERED SIGN */#define XK_macron 0x00af /* U+00AF MACRON */#define XK_degree 0x00b0 /* U+00B0 DEGREE SIGN */#define XK_plusminus 0x00b1 /* U+00B1 PLUS-MINUS SIGN */#define XK_twosuperior 0x00b2 /* U+00B2 SUPERSCRIPT TWO */#define XK_threesuperior 0x00b3 /* U+00B3 SUPERSCRIPT THREE */#define XK_acute 0x00b4 /* U+00B4 ACUTE ACCENT */#define XK_mu 0x00b5 /* U+00B5 MICRO SIGN */#define XK_paragraph 0x00b6 /* U+00B6 PILCROW SIGN */#define XK_periodcentered 0x00b7 /* U+00B7 MIDDLE DOT */#define XK_cedilla 0x00b8 /* U+00B8 CEDILLA */#define XK_onesuperior 0x00b9 /* U+00B9 SUPERSCRIPT ONE */#define XK_masculine 0x00ba /* U+00BA MASCULINE ORDINAL INDICATOR */#define XK_guillemotright 0x00bb /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */#define XK_onequarter 0x00bc /* U+00BC VULGAR FRACTION ONE QUARTER */#define XK_onehalf 0x00bd /* U+00BD VULGAR FRACTION ONE HALF */#define XK_threequarters 0x00be /* U+00BE VULGAR FRACTION THREE QUARTERS */#define XK_questiondown 0x00bf /* U+00BF INVERTED QUESTION MARK */#define XK_Agrave 0x00c0 /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */#define XK_Aacute 0x00c1 /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */#define XK_Acircumflex 0x00c2 /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */#define XK_Atilde 0x00c3 /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */#define XK_Adiaeresis 0x00c4 /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */#define XK_Aring 0x00c5 /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */#define XK_AE 0x00c6 /* U+00C6 LATIN CAPITAL LETTER AE */#define XK_Ccedilla 0x00c7 /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */#define XK_Egrave 0x00c8 /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */#define XK_Eacute 0x00c9 /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */#define XK_Ecircumflex 0x00ca /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */#define XK_Ediaeresis 0x00cb /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */#define XK_Igrave 0x00cc /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */#define XK_Iacute 0x00cd /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */#define XK_Icircumflex 0x00ce /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */#define XK_Idiaeresis 0x00cf /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */#define XK_ETH 0x00d0 /* U+00D0 LATIN CAPITAL LETTER ETH */#define XK_Eth 0x00d0 /* deprecated */#define XK_Ntilde 0x00d1 /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */#define XK_Ograve 0x00d2 /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */#define XK_Oacute 0x00d3 /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */#define XK_Ocircumflex 0x00d4 /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */#define XK_Otilde 0x00d5 /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */#define XK_Odiaeresis 0x00d6 /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */#define XK_multiply 0x00d7 /* U+00D7 MULTIPLICATION SIGN */#define XK_Oslash 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */#define XK_Ooblique 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */#define XK_Ugrave 0x00d9 /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */#define XK_Uacute 0x00da /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */#define XK_Ucircumflex 0x00db /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */#define XK_Udiaeresis 0x00dc /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */#define XK_Yacute 0x00dd /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */#define XK_THORN 0x00de /* U+00DE LATIN CAPITAL LETTER THORN */#define XK_Thorn 0x00de /* deprecated */#define XK_ssharp 0x00df /* U+00DF LATIN SMALL LETTER SHARP S */#define XK_agrave 0x00e0 /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */#define XK_aacute 0x00e1 /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */#define XK_acircumflex 0x00e2 /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */#define XK_atilde 0x00e3 /* U+00E3 LATIN SMALL LETTER A WITH TILDE */#define XK_adiaeresis 0x00e4 /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */#define XK_aring 0x00e5 /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */#define XK_ae 0x00e6 /* U+00E6 LATIN SMALL LETTER AE */#define XK_ccedilla 0x00e7 /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */#define XK_egrave 0x00e8 /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */#define XK_eacute 0x00e9 /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */#define XK_ecircumflex 0x00ea /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */#define XK_ediaeresis 0x00eb /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */#define XK_igrave 0x00ec /* U+00EC LATIN SMALL LETTER I WITH GRAVE */#define XK_iacute 0x00ed /* U+00ED LATIN SMALL LETTER I WITH ACUTE */#define XK_icircumflex 0x00ee /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */#define XK_idiaeresis 0x00ef /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */#define XK_eth 0x00f0 /* U+00F0 LATIN SMALL LETTER ETH */#define XK_ntilde 0x00f1 /* U+00F1 LATIN SMALL LETTER N WITH TILDE */#define XK_ograve 0x00f2 /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */#define XK_oacute 0x00f3 /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */#define XK_ocircumflex 0x00f4 /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */#define XK_otilde 0x00f5 /* U+00F5 LATIN SMALL LETTER O WITH TILDE */#define XK_odiaeresis 0x00f6 /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */#define XK_division 0x00f7 /* U+00F7 DIVISION SIGN */#define XK_oslash 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */#define XK_ooblique 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */#define XK_ugrave 0x00f9 /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */#define XK_uacute 0x00fa /* U+00FA LATIN SMALL LETTER U WITH ACUTE */#define XK_ucircumflex 0x00fb /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */#define XK_udiaeresis 0x00fc /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */#define XK_yacute 0x00fd /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */#define XK_thorn 0x00fe /* U+00FE LATIN SMALL LETTER THORN */#define XK_ydiaeresis 0x00ff /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */#endif /* XK_LATIN1 *//** Latin 2* Byte 3 = 1*/#ifdef XK_LATIN2#define XK_Aogonek 0x01a1 /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */#define XK_breve 0x01a2 /* U+02D8 BREVE */#define XK_Lstroke 0x01a3 /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */#define XK_Lcaron 0x01a5 /* U+013D LATIN CAPITAL LETTER L WITH CARON */#define XK_Sacute 0x01a6 /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */#define XK_Scaron 0x01a9 /* U+0160 LATIN CAPITAL LETTER S WITH CARON */#define XK_Scedilla 0x01aa /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */#define XK_Tcaron 0x01ab /* U+0164 LATIN CAPITAL LETTER T WITH CARON */#define XK_Zacute 0x01ac /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */#define XK_Zcaron 0x01ae /* U+017D LATIN CAPITAL LETTER Z WITH CARON */#define XK_Zabovedot 0x01af /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */#define XK_aogonek 0x01b1 /* U+0105 LATIN SMALL LETTER A WITH OGONEK */#define XK_ogonek 0x01b2 /* U+02DB OGONEK */#define XK_lstroke 0x01b3 /* U+0142 LATIN SMALL LETTER L WITH STROKE */#define XK_lcaron 0x01b5 /* U+013E LATIN SMALL LETTER L WITH CARON */#define XK_sacute 0x01b6 /* U+015B LATIN SMALL LETTER S WITH ACUTE */#define XK_caron 0x01b7 /* U+02C7 CARON */#define XK_scaron 0x01b9 /* U+0161 LATIN SMALL LETTER S WITH CARON */#define XK_scedilla 0x01ba /* U+015F LATIN SMALL LETTER S WITH CEDILLA */#define XK_tcaron 0x01bb /* U+0165 LATIN SMALL LETTER T WITH CARON */#define XK_zacute 0x01bc /* U+017A LATIN SMALL LETTER Z WITH ACUTE */#define XK_doubleacute 0x01bd /* U+02DD DOUBLE ACUTE ACCENT */#define XK_zcaron 0x01be /* U+017E LATIN SMALL LETTER Z WITH CARON */#define XK_zabovedot 0x01bf /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */#define XK_Racute 0x01c0 /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */#define XK_Abreve 0x01c3 /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */#define XK_Lacute 0x01c5 /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */#define XK_Cacute 0x01c6 /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */#define XK_Ccaron 0x01c8 /* U+010C LATIN CAPITAL LETTER C WITH CARON */#define XK_Eogonek 0x01ca /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */#define XK_Ecaron 0x01cc /* U+011A LATIN CAPITAL LETTER E WITH CARON */#define XK_Dcaron 0x01cf /* U+010E LATIN CAPITAL LETTER D WITH CARON */#define XK_Dstroke 0x01d0 /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */#define XK_Nacute 0x01d1 /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */#define XK_Ncaron 0x01d2 /* U+0147 LATIN CAPITAL LETTER N WITH CARON */#define XK_Odoubleacute 0x01d5 /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */#define XK_Rcaron 0x01d8 /* U+0158 LATIN CAPITAL LETTER R WITH CARON */#define XK_Uring 0x01d9 /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */#define XK_Udoubleacute 0x01db /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */#define XK_Tcedilla 0x01de /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */#define XK_racute 0x01e0 /* U+0155 LATIN SMALL LETTER R WITH ACUTE */#define XK_abreve 0x01e3 /* U+0103 LATIN SMALL LETTER A WITH BREVE */#define XK_lacute 0x01e5 /* U+013A LATIN SMALL LETTER L WITH ACUTE */#define XK_cacute 0x01e6 /* U+0107 LATIN SMALL LETTER C WITH ACUTE */#define XK_ccaron 0x01e8 /* U+010D LATIN SMALL LETTER C WITH CARON */#define XK_eogonek 0x01ea /* U+0119 LATIN SMALL LETTER E WITH OGONEK */#define XK_ecaron 0x01ec /* U+011B LATIN SMALL LETTER E WITH CARON */#define XK_dcaron 0x01ef /* U+010F LATIN SMALL LETTER D WITH CARON */#define XK_dstroke 0x01f0 /* U+0111 LATIN SMALL LETTER D WITH STROKE */#define XK_nacute 0x01f1 /* U+0144 LATIN SMALL LETTER N WITH ACUTE */#define XK_ncaron 0x01f2 /* U+0148 LATIN SMALL LETTER N WITH CARON */#define XK_odoubleacute 0x01f5 /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */#define XK_udoubleacute 0x01fb /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */#define XK_rcaron 0x01f8 /* U+0159 LATIN SMALL LETTER R WITH CARON */#define XK_uring 0x01f9 /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */#define XK_tcedilla 0x01fe /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */#define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */#endif /* XK_LATIN2 *//** Latin 3* Byte 3 = 2*/#ifdef XK_LATIN3#define XK_Hstroke 0x02a1 /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */#define XK_Hcircumflex 0x02a6 /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */#define XK_Iabovedot 0x02a9 /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */#define XK_Gbreve 0x02ab /* U+011E LATIN CAPITAL LETTER G WITH BREVE */#define XK_Jcircumflex 0x02ac /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */#define XK_hstroke 0x02b1 /* U+0127 LATIN SMALL LETTER H WITH STROKE */#define XK_hcircumflex 0x02b6 /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */#define XK_idotless 0x02b9 /* U+0131 LATIN SMALL LETTER DOTLESS I */#define XK_gbreve 0x02bb /* U+011F LATIN SMALL LETTER G WITH BREVE */#define XK_jcircumflex 0x02bc /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */#define XK_Cabovedot 0x02c5 /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */#define XK_Ccircumflex 0x02c6 /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */#define XK_Gabovedot 0x02d5 /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */#define XK_Gcircumflex 0x02d8 /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */#define XK_Ubreve 0x02dd /* U+016C LATIN CAPITAL LETTER U WITH BREVE */#define XK_Scircumflex 0x02de /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */#define XK_cabovedot 0x02e5 /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */#define XK_ccircumflex 0x02e6 /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */#define XK_gabovedot 0x02f5 /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */#define XK_gcircumflex 0x02f8 /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */#define XK_ubreve 0x02fd /* U+016D LATIN SMALL LETTER U WITH BREVE */#define XK_scircumflex 0x02fe /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */#endif /* XK_LATIN3 *//** Latin 4* Byte 3 = 3*/#ifdef XK_LATIN4#define XK_kra 0x03a2 /* U+0138 LATIN SMALL LETTER KRA */#define XK_kappa 0x03a2 /* deprecated */#define XK_Rcedilla 0x03a3 /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */#define XK_Itilde 0x03a5 /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */#define XK_Lcedilla 0x03a6 /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */#define XK_Emacron 0x03aa /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */#define XK_Gcedilla 0x03ab /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */#define XK_Tslash 0x03ac /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */#define XK_rcedilla 0x03b3 /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */#define XK_itilde 0x03b5 /* U+0129 LATIN SMALL LETTER I WITH TILDE */#define XK_lcedilla 0x03b6 /* U+013C LATIN SMALL LETTER L WITH CEDILLA */#define XK_emacron 0x03ba /* U+0113 LATIN SMALL LETTER E WITH MACRON */#define XK_gcedilla 0x03bb /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */#define XK_tslash 0x03bc /* U+0167 LATIN SMALL LETTER T WITH STROKE */#define XK_ENG 0x03bd /* U+014A LATIN CAPITAL LETTER ENG */#define XK_eng 0x03bf /* U+014B LATIN SMALL LETTER ENG */#define XK_Amacron 0x03c0 /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */#define XK_Iogonek 0x03c7 /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */#define XK_Eabovedot 0x03cc /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */#define XK_Imacron 0x03cf /* U+012A LATIN CAPITAL LETTER I WITH MACRON */#define XK_Ncedilla 0x03d1 /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */#define XK_Omacron 0x03d2 /* U+014C LATIN CAPITAL LETTER O WITH MACRON */#define XK_Kcedilla 0x03d3 /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */#define XK_Uogonek 0x03d9 /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */#define XK_Utilde 0x03dd /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */#define XK_Umacron 0x03de /* U+016A LATIN CAPITAL LETTER U WITH MACRON */#define XK_amacron 0x03e0 /* U+0101 LATIN SMALL LETTER A WITH MACRON */#define XK_iogonek 0x03e7 /* U+012F LATIN SMALL LETTER I WITH OGONEK */#define XK_eabovedot 0x03ec /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */#define XK_imacron 0x03ef /* U+012B LATIN SMALL LETTER I WITH MACRON */#define XK_ncedilla 0x03f1 /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */#define XK_omacron 0x03f2 /* U+014D LATIN SMALL LETTER O WITH MACRON */#define XK_kcedilla 0x03f3 /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */#define XK_uogonek 0x03f9 /* U+0173 LATIN SMALL LETTER U WITH OGONEK */#define XK_utilde 0x03fd /* U+0169 LATIN SMALL LETTER U WITH TILDE */#define XK_umacron 0x03fe /* U+016B LATIN SMALL LETTER U WITH MACRON */#endif /* XK_LATIN4 *//** Latin 8*/#ifdef XK_LATIN8#define XK_Babovedot 0x1001e02 /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */#define XK_babovedot 0x1001e03 /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */#define XK_Dabovedot 0x1001e0a /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */#define XK_Wgrave 0x1001e80 /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */#define XK_Wacute 0x1001e82 /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */#define XK_dabovedot 0x1001e0b /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */#define XK_Ygrave 0x1001ef2 /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */#define XK_Fabovedot 0x1001e1e /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */#define XK_fabovedot 0x1001e1f /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */#define XK_Mabovedot 0x1001e40 /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */#define XK_mabovedot 0x1001e41 /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */#define XK_Pabovedot 0x1001e56 /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */#define XK_wgrave 0x1001e81 /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */#define XK_pabovedot 0x1001e57 /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */#define XK_wacute 0x1001e83 /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */#define XK_Sabovedot 0x1001e60 /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */#define XK_ygrave 0x1001ef3 /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */#define XK_Wdiaeresis 0x1001e84 /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */#define XK_wdiaeresis 0x1001e85 /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */#define XK_sabovedot 0x1001e61 /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */#define XK_Wcircumflex 0x1000174 /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */#define XK_Tabovedot 0x1001e6a /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */#define XK_Ycircumflex 0x1000176 /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */#define XK_wcircumflex 0x1000175 /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */#define XK_tabovedot 0x1001e6b /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */#define XK_ycircumflex 0x1000177 /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */#endif /* XK_LATIN8 *//** Latin 9* Byte 3 = 0x13*/#ifdef XK_LATIN9#define XK_OE 0x13bc /* U+0152 LATIN CAPITAL LIGATURE OE */#define XK_oe 0x13bd /* U+0153 LATIN SMALL LIGATURE OE */#define XK_Ydiaeresis 0x13be /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */#endif /* XK_LATIN9 *//** Katakana* Byte 3 = 4*/#ifdef XK_KATAKANA#define XK_overline 0x047e /* U+203E OVERLINE */#define XK_kana_fullstop 0x04a1 /* U+3002 IDEOGRAPHIC FULL STOP */#define XK_kana_openingbracket 0x04a2 /* U+300C LEFT CORNER BRACKET */#define XK_kana_closingbracket 0x04a3 /* U+300D RIGHT CORNER BRACKET */#define XK_kana_comma 0x04a4 /* U+3001 IDEOGRAPHIC COMMA */#define XK_kana_conjunctive 0x04a5 /* U+30FB KATAKANA MIDDLE DOT */#define XK_kana_middledot 0x04a5 /* deprecated */#define XK_kana_WO 0x04a6 /* U+30F2 KATAKANA LETTER WO */#define XK_kana_a 0x04a7 /* U+30A1 KATAKANA LETTER SMALL A */#define XK_kana_i 0x04a8 /* U+30A3 KATAKANA LETTER SMALL I */#define XK_kana_u 0x04a9 /* U+30A5 KATAKANA LETTER SMALL U */#define XK_kana_e 0x04aa /* U+30A7 KATAKANA LETTER SMALL E */#define XK_kana_o 0x04ab /* U+30A9 KATAKANA LETTER SMALL O */#define XK_kana_ya 0x04ac /* U+30E3 KATAKANA LETTER SMALL YA */#define XK_kana_yu 0x04ad /* U+30E5 KATAKANA LETTER SMALL YU */#define XK_kana_yo 0x04ae /* U+30E7 KATAKANA LETTER SMALL YO */#define XK_kana_tsu 0x04af /* U+30C3 KATAKANA LETTER SMALL TU */#define XK_kana_tu 0x04af /* deprecated */#define XK_prolongedsound 0x04b0 /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */#define XK_kana_A 0x04b1 /* U+30A2 KATAKANA LETTER A */#define XK_kana_I 0x04b2 /* U+30A4 KATAKANA LETTER I */#define XK_kana_U 0x04b3 /* U+30A6 KATAKANA LETTER U */#define XK_kana_E 0x04b4 /* U+30A8 KATAKANA LETTER E */#define XK_kana_O 0x04b5 /* U+30AA KATAKANA LETTER O */#define XK_kana_KA 0x04b6 /* U+30AB KATAKANA LETTER KA */#define XK_kana_KI 0x04b7 /* U+30AD KATAKANA LETTER KI */#define XK_kana_KU 0x04b8 /* U+30AF KATAKANA LETTER KU */#define XK_kana_KE 0x04b9 /* U+30B1 KATAKANA LETTER KE */#define XK_kana_KO 0x04ba /* U+30B3 KATAKANA LETTER KO */#define XK_kana_SA 0x04bb /* U+30B5 KATAKANA LETTER SA */#define XK_kana_SHI 0x04bc /* U+30B7 KATAKANA LETTER SI */#define XK_kana_SU 0x04bd /* U+30B9 KATAKANA LETTER SU */#define XK_kana_SE 0x04be /* U+30BB KATAKANA LETTER SE */#define XK_kana_SO 0x04bf /* U+30BD KATAKANA LETTER SO */#define XK_kana_TA 0x04c0 /* U+30BF KATAKANA LETTER TA */#define XK_kana_CHI 0x04c1 /* U+30C1 KATAKANA LETTER TI */#define XK_kana_TI 0x04c1 /* deprecated */#define XK_kana_TSU 0x04c2 /* U+30C4 KATAKANA LETTER TU */#define XK_kana_TU 0x04c2 /* deprecated */#define XK_kana_TE 0x04c3 /* U+30C6 KATAKANA LETTER TE */#define XK_kana_TO 0x04c4 /* U+30C8 KATAKANA LETTER TO */#define XK_kana_NA 0x04c5 /* U+30CA KATAKANA LETTER NA */#define XK_kana_NI 0x04c6 /* U+30CB KATAKANA LETTER NI */#define XK_kana_NU 0x04c7 /* U+30CC KATAKANA LETTER NU */#define XK_kana_NE 0x04c8 /* U+30CD KATAKANA LETTER NE */#define XK_kana_NO 0x04c9 /* U+30CE KATAKANA LETTER NO */#define XK_kana_HA 0x04ca /* U+30CF KATAKANA LETTER HA */#define XK_kana_HI 0x04cb /* U+30D2 KATAKANA LETTER HI */#define XK_kana_FU 0x04cc /* U+30D5 KATAKANA LETTER HU */#define XK_kana_HU 0x04cc /* deprecated */#define XK_kana_HE 0x04cd /* U+30D8 KATAKANA LETTER HE */#define XK_kana_HO 0x04ce /* U+30DB KATAKANA LETTER HO */#define XK_kana_MA 0x04cf /* U+30DE KATAKANA LETTER MA */#define XK_kana_MI 0x04d0 /* U+30DF KATAKANA LETTER MI */#define XK_kana_MU 0x04d1 /* U+30E0 KATAKANA LETTER MU */#define XK_kana_ME 0x04d2 /* U+30E1 KATAKANA LETTER ME */#define XK_kana_MO 0x04d3 /* U+30E2 KATAKANA LETTER MO */#define XK_kana_YA 0x04d4 /* U+30E4 KATAKANA LETTER YA */#define XK_kana_YU 0x04d5 /* U+30E6 KATAKANA LETTER YU */#define XK_kana_YO 0x04d6 /* U+30E8 KATAKANA LETTER YO */#define XK_kana_RA 0x04d7 /* U+30E9 KATAKANA LETTER RA */#define XK_kana_RI 0x04d8 /* U+30EA KATAKANA LETTER RI */#define XK_kana_RU 0x04d9 /* U+30EB KATAKANA LETTER RU */#define XK_kana_RE 0x04da /* U+30EC KATAKANA LETTER RE */#define XK_kana_RO 0x04db /* U+30ED KATAKANA LETTER RO */#define XK_kana_WA 0x04dc /* U+30EF KATAKANA LETTER WA */#define XK_kana_N 0x04dd /* U+30F3 KATAKANA LETTER N */#define XK_voicedsound 0x04de /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */#define XK_semivoicedsound 0x04df /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */#define XK_kana_switch 0xff7e /* Alias for mode_switch */#endif /* XK_KATAKANA *//** Arabic* Byte 3 = 5*/#ifdef XK_ARABIC#define XK_Farsi_0 0x10006f0 /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */#define XK_Farsi_1 0x10006f1 /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */#define XK_Farsi_2 0x10006f2 /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */#define XK_Farsi_3 0x10006f3 /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */#define XK_Farsi_4 0x10006f4 /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */#define XK_Farsi_5 0x10006f5 /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */#define XK_Farsi_6 0x10006f6 /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */#define XK_Farsi_7 0x10006f7 /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */#define XK_Farsi_8 0x10006f8 /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */#define XK_Farsi_9 0x10006f9 /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */#define XK_Arabic_percent 0x100066a /* U+066A ARABIC PERCENT SIGN */#define XK_Arabic_superscript_alef 0x1000670 /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */#define XK_Arabic_tteh 0x1000679 /* U+0679 ARABIC LETTER TTEH */#define XK_Arabic_peh 0x100067e /* U+067E ARABIC LETTER PEH */#define XK_Arabic_tcheh 0x1000686 /* U+0686 ARABIC LETTER TCHEH */#define XK_Arabic_ddal 0x1000688 /* U+0688 ARABIC LETTER DDAL */#define XK_Arabic_rreh 0x1000691 /* U+0691 ARABIC LETTER RREH */#define XK_Arabic_comma 0x05ac /* U+060C ARABIC COMMA */#define XK_Arabic_fullstop 0x10006d4 /* U+06D4 ARABIC FULL STOP */#define XK_Arabic_0 0x1000660 /* U+0660 ARABIC-INDIC DIGIT ZERO */#define XK_Arabic_1 0x1000661 /* U+0661 ARABIC-INDIC DIGIT ONE */#define XK_Arabic_2 0x1000662 /* U+0662 ARABIC-INDIC DIGIT TWO */#define XK_Arabic_3 0x1000663 /* U+0663 ARABIC-INDIC DIGIT THREE */#define XK_Arabic_4 0x1000664 /* U+0664 ARABIC-INDIC DIGIT FOUR */#define XK_Arabic_5 0x1000665 /* U+0665 ARABIC-INDIC DIGIT FIVE */#define XK_Arabic_6 0x1000666 /* U+0666 ARABIC-INDIC DIGIT SIX */#define XK_Arabic_7 0x1000667 /* U+0667 ARABIC-INDIC DIGIT SEVEN */#define XK_Arabic_8 0x1000668 /* U+0668 ARABIC-INDIC DIGIT EIGHT */#define XK_Arabic_9 0x1000669 /* U+0669 ARABIC-INDIC DIGIT NINE */#define XK_Arabic_semicolon 0x05bb /* U+061B ARABIC SEMICOLON */#define XK_Arabic_question_mark 0x05bf /* U+061F ARABIC QUESTION MARK */#define XK_Arabic_hamza 0x05c1 /* U+0621 ARABIC LETTER HAMZA */#define XK_Arabic_maddaonalef 0x05c2 /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */#define XK_Arabic_hamzaonalef 0x05c3 /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */#define XK_Arabic_hamzaonwaw 0x05c4 /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */#define XK_Arabic_hamzaunderalef 0x05c5 /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */#define XK_Arabic_hamzaonyeh 0x05c6 /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */#define XK_Arabic_alef 0x05c7 /* U+0627 ARABIC LETTER ALEF */#define XK_Arabic_beh 0x05c8 /* U+0628 ARABIC LETTER BEH */#define XK_Arabic_tehmarbuta 0x05c9 /* U+0629 ARABIC LETTER TEH MARBUTA */#define XK_Arabic_teh 0x05ca /* U+062A ARABIC LETTER TEH */#define XK_Arabic_theh 0x05cb /* U+062B ARABIC LETTER THEH */#define XK_Arabic_jeem 0x05cc /* U+062C ARABIC LETTER JEEM */#define XK_Arabic_hah 0x05cd /* U+062D ARABIC LETTER HAH */#define XK_Arabic_khah 0x05ce /* U+062E ARABIC LETTER KHAH */#define XK_Arabic_dal 0x05cf /* U+062F ARABIC LETTER DAL */#define XK_Arabic_thal 0x05d0 /* U+0630 ARABIC LETTER THAL */#define XK_Arabic_ra 0x05d1 /* U+0631 ARABIC LETTER REH */#define XK_Arabic_zain 0x05d2 /* U+0632 ARABIC LETTER ZAIN */#define XK_Arabic_seen 0x05d3 /* U+0633 ARABIC LETTER SEEN */#define XK_Arabic_sheen 0x05d4 /* U+0634 ARABIC LETTER SHEEN */#define XK_Arabic_sad 0x05d5 /* U+0635 ARABIC LETTER SAD */#define XK_Arabic_dad 0x05d6 /* U+0636 ARABIC LETTER DAD */#define XK_Arabic_tah 0x05d7 /* U+0637 ARABIC LETTER TAH */#define XK_Arabic_zah 0x05d8 /* U+0638 ARABIC LETTER ZAH */#define XK_Arabic_ain 0x05d9 /* U+0639 ARABIC LETTER AIN */#define XK_Arabic_ghain 0x05da /* U+063A ARABIC LETTER GHAIN */#define XK_Arabic_tatweel 0x05e0 /* U+0640 ARABIC TATWEEL */#define XK_Arabic_feh 0x05e1 /* U+0641 ARABIC LETTER FEH */#define XK_Arabic_qaf 0x05e2 /* U+0642 ARABIC LETTER QAF */#define XK_Arabic_kaf 0x05e3 /* U+0643 ARABIC LETTER KAF */#define XK_Arabic_lam 0x05e4 /* U+0644 ARABIC LETTER LAM */#define XK_Arabic_meem 0x05e5 /* U+0645 ARABIC LETTER MEEM */#define XK_Arabic_noon 0x05e6 /* U+0646 ARABIC LETTER NOON */#define XK_Arabic_ha 0x05e7 /* U+0647 ARABIC LETTER HEH */#define XK_Arabic_heh 0x05e7 /* deprecated */#define XK_Arabic_waw 0x05e8 /* U+0648 ARABIC LETTER WAW */#define XK_Arabic_alefmaksura 0x05e9 /* U+0649 ARABIC LETTER ALEF MAKSURA */#define XK_Arabic_yeh 0x05ea /* U+064A ARABIC LETTER YEH */#define XK_Arabic_fathatan 0x05eb /* U+064B ARABIC FATHATAN */#define XK_Arabic_dammatan 0x05ec /* U+064C ARABIC DAMMATAN */#define XK_Arabic_kasratan 0x05ed /* U+064D ARABIC KASRATAN */#define XK_Arabic_fatha 0x05ee /* U+064E ARABIC FATHA */#define XK_Arabic_damma 0x05ef /* U+064F ARABIC DAMMA */#define XK_Arabic_kasra 0x05f0 /* U+0650 ARABIC KASRA */#define XK_Arabic_shadda 0x05f1 /* U+0651 ARABIC SHADDA */#define XK_Arabic_sukun 0x05f2 /* U+0652 ARABIC SUKUN */#define XK_Arabic_madda_above 0x1000653 /* U+0653 ARABIC MADDAH ABOVE */#define XK_Arabic_hamza_above 0x1000654 /* U+0654 ARABIC HAMZA ABOVE */#define XK_Arabic_hamza_below 0x1000655 /* U+0655 ARABIC HAMZA BELOW */#define XK_Arabic_jeh 0x1000698 /* U+0698 ARABIC LETTER JEH */#define XK_Arabic_veh 0x10006a4 /* U+06A4 ARABIC LETTER VEH */#define XK_Arabic_keheh 0x10006a9 /* U+06A9 ARABIC LETTER KEHEH */#define XK_Arabic_gaf 0x10006af /* U+06AF ARABIC LETTER GAF */#define XK_Arabic_noon_ghunna 0x10006ba /* U+06BA ARABIC LETTER NOON GHUNNA */#define XK_Arabic_heh_doachashmee 0x10006be /* U+06BE ARABIC LETTER HEH DOACHASHMEE */#define XK_Farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */#define XK_Arabic_farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */#define XK_Arabic_yeh_baree 0x10006d2 /* U+06D2 ARABIC LETTER YEH BARREE */#define XK_Arabic_heh_goal 0x10006c1 /* U+06C1 ARABIC LETTER HEH GOAL */#define XK_Arabic_switch 0xff7e /* Alias for mode_switch */#endif /* XK_ARABIC *//** Cyrillic* Byte 3 = 6*/#ifdef XK_CYRILLIC#define XK_Cyrillic_GHE_bar 0x1000492 /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */#define XK_Cyrillic_ghe_bar 0x1000493 /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */#define XK_Cyrillic_ZHE_descender 0x1000496 /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */#define XK_Cyrillic_zhe_descender 0x1000497 /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */#define XK_Cyrillic_KA_descender 0x100049a /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */#define XK_Cyrillic_ka_descender 0x100049b /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */#define XK_Cyrillic_KA_vertstroke 0x100049c /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */#define XK_Cyrillic_ka_vertstroke 0x100049d /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */#define XK_Cyrillic_EN_descender 0x10004a2 /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */#define XK_Cyrillic_en_descender 0x10004a3 /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */#define XK_Cyrillic_U_straight 0x10004ae /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */#define XK_Cyrillic_u_straight 0x10004af /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */#define XK_Cyrillic_U_straight_bar 0x10004b0 /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */#define XK_Cyrillic_u_straight_bar 0x10004b1 /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */#define XK_Cyrillic_HA_descender 0x10004b2 /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */#define XK_Cyrillic_ha_descender 0x10004b3 /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */#define XK_Cyrillic_CHE_descender 0x10004b6 /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */#define XK_Cyrillic_che_descender 0x10004b7 /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */#define XK_Cyrillic_CHE_vertstroke 0x10004b8 /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */#define XK_Cyrillic_che_vertstroke 0x10004b9 /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */#define XK_Cyrillic_SHHA 0x10004ba /* U+04BA CYRILLIC CAPITAL LETTER SHHA */#define XK_Cyrillic_shha 0x10004bb /* U+04BB CYRILLIC SMALL LETTER SHHA */#define XK_Cyrillic_SCHWA 0x10004d8 /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */#define XK_Cyrillic_schwa 0x10004d9 /* U+04D9 CYRILLIC SMALL LETTER SCHWA */#define XK_Cyrillic_I_macron 0x10004e2 /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */#define XK_Cyrillic_i_macron 0x10004e3 /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */#define XK_Cyrillic_O_bar 0x10004e8 /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */#define XK_Cyrillic_o_bar 0x10004e9 /* U+04E9 CYRILLIC SMALL LETTER BARRED O */#define XK_Cyrillic_U_macron 0x10004ee /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */#define XK_Cyrillic_u_macron 0x10004ef /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */#define XK_Serbian_dje 0x06a1 /* U+0452 CYRILLIC SMALL LETTER DJE */#define XK_Macedonia_gje 0x06a2 /* U+0453 CYRILLIC SMALL LETTER GJE */#define XK_Cyrillic_io 0x06a3 /* U+0451 CYRILLIC SMALL LETTER IO */#define XK_Ukrainian_ie 0x06a4 /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */#define XK_Ukranian_je 0x06a4 /* deprecated */#define XK_Macedonia_dse 0x06a5 /* U+0455 CYRILLIC SMALL LETTER DZE */#define XK_Ukrainian_i 0x06a6 /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */#define XK_Ukranian_i 0x06a6 /* deprecated */#define XK_Ukrainian_yi 0x06a7 /* U+0457 CYRILLIC SMALL LETTER YI */#define XK_Ukranian_yi 0x06a7 /* deprecated */#define XK_Cyrillic_je 0x06a8 /* U+0458 CYRILLIC SMALL LETTER JE */#define XK_Serbian_je 0x06a8 /* deprecated */#define XK_Cyrillic_lje 0x06a9 /* U+0459 CYRILLIC SMALL LETTER LJE */#define XK_Serbian_lje 0x06a9 /* deprecated */#define XK_Cyrillic_nje 0x06aa /* U+045A CYRILLIC SMALL LETTER NJE */#define XK_Serbian_nje 0x06aa /* deprecated */#define XK_Serbian_tshe 0x06ab /* U+045B CYRILLIC SMALL LETTER TSHE */#define XK_Macedonia_kje 0x06ac /* U+045C CYRILLIC SMALL LETTER KJE */#define XK_Ukrainian_ghe_with_upturn 0x06ad /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */#define XK_Byelorussian_shortu 0x06ae /* U+045E CYRILLIC SMALL LETTER SHORT U */#define XK_Cyrillic_dzhe 0x06af /* U+045F CYRILLIC SMALL LETTER DZHE */#define XK_Serbian_dze 0x06af /* deprecated */#define XK_numerosign 0x06b0 /* U+2116 NUMERO SIGN */#define XK_Serbian_DJE 0x06b1 /* U+0402 CYRILLIC CAPITAL LETTER DJE */#define XK_Macedonia_GJE 0x06b2 /* U+0403 CYRILLIC CAPITAL LETTER GJE */#define XK_Cyrillic_IO 0x06b3 /* U+0401 CYRILLIC CAPITAL LETTER IO */#define XK_Ukrainian_IE 0x06b4 /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */#define XK_Ukranian_JE 0x06b4 /* deprecated */#define XK_Macedonia_DSE 0x06b5 /* U+0405 CYRILLIC CAPITAL LETTER DZE */#define XK_Ukrainian_I 0x06b6 /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */#define XK_Ukranian_I 0x06b6 /* deprecated */#define XK_Ukrainian_YI 0x06b7 /* U+0407 CYRILLIC CAPITAL LETTER YI */#define XK_Ukranian_YI 0x06b7 /* deprecated */#define XK_Cyrillic_JE 0x06b8 /* U+0408 CYRILLIC CAPITAL LETTER JE */#define XK_Serbian_JE 0x06b8 /* deprecated */#define XK_Cyrillic_LJE 0x06b9 /* U+0409 CYRILLIC CAPITAL LETTER LJE */#define XK_Serbian_LJE 0x06b9 /* deprecated */#define XK_Cyrillic_NJE 0x06ba /* U+040A CYRILLIC CAPITAL LETTER NJE */#define XK_Serbian_NJE 0x06ba /* deprecated */#define XK_Serbian_TSHE 0x06bb /* U+040B CYRILLIC CAPITAL LETTER TSHE */#define XK_Macedonia_KJE 0x06bc /* U+040C CYRILLIC CAPITAL LETTER KJE */#define XK_Ukrainian_GHE_WITH_UPTURN 0x06bd /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */#define XK_Byelorussian_SHORTU 0x06be /* U+040E CYRILLIC CAPITAL LETTER SHORT U */#define XK_Cyrillic_DZHE 0x06bf /* U+040F CYRILLIC CAPITAL LETTER DZHE */#define XK_Serbian_DZE 0x06bf /* deprecated */#define XK_Cyrillic_yu 0x06c0 /* U+044E CYRILLIC SMALL LETTER YU */#define XK_Cyrillic_a 0x06c1 /* U+0430 CYRILLIC SMALL LETTER A */#define XK_Cyrillic_be 0x06c2 /* U+0431 CYRILLIC SMALL LETTER BE */#define XK_Cyrillic_tse 0x06c3 /* U+0446 CYRILLIC SMALL LETTER TSE */#define XK_Cyrillic_de 0x06c4 /* U+0434 CYRILLIC SMALL LETTER DE */#define XK_Cyrillic_ie 0x06c5 /* U+0435 CYRILLIC SMALL LETTER IE */#define XK_Cyrillic_ef 0x06c6 /* U+0444 CYRILLIC SMALL LETTER EF */#define XK_Cyrillic_ghe 0x06c7 /* U+0433 CYRILLIC SMALL LETTER GHE */#define XK_Cyrillic_ha 0x06c8 /* U+0445 CYRILLIC SMALL LETTER HA */#define XK_Cyrillic_i 0x06c9 /* U+0438 CYRILLIC SMALL LETTER I */#define XK_Cyrillic_shorti 0x06ca /* U+0439 CYRILLIC SMALL LETTER SHORT I */#define XK_Cyrillic_ka 0x06cb /* U+043A CYRILLIC SMALL LETTER KA */#define XK_Cyrillic_el 0x06cc /* U+043B CYRILLIC SMALL LETTER EL */#define XK_Cyrillic_em 0x06cd /* U+043C CYRILLIC SMALL LETTER EM */#define XK_Cyrillic_en 0x06ce /* U+043D CYRILLIC SMALL LETTER EN */#define XK_Cyrillic_o 0x06cf /* U+043E CYRILLIC SMALL LETTER O */#define XK_Cyrillic_pe 0x06d0 /* U+043F CYRILLIC SMALL LETTER PE */#define XK_Cyrillic_ya 0x06d1 /* U+044F CYRILLIC SMALL LETTER YA */#define XK_Cyrillic_er 0x06d2 /* U+0440 CYRILLIC SMALL LETTER ER */#define XK_Cyrillic_es 0x06d3 /* U+0441 CYRILLIC SMALL LETTER ES */#define XK_Cyrillic_te 0x06d4 /* U+0442 CYRILLIC SMALL LETTER TE */#define XK_Cyrillic_u 0x06d5 /* U+0443 CYRILLIC SMALL LETTER U */#define XK_Cyrillic_zhe 0x06d6 /* U+0436 CYRILLIC SMALL LETTER ZHE */#define XK_Cyrillic_ve 0x06d7 /* U+0432 CYRILLIC SMALL LETTER VE */#define XK_Cyrillic_softsign 0x06d8 /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */#define XK_Cyrillic_yeru 0x06d9 /* U+044B CYRILLIC SMALL LETTER YERU */#define XK_Cyrillic_ze 0x06da /* U+0437 CYRILLIC SMALL LETTER ZE */#define XK_Cyrillic_sha 0x06db /* U+0448 CYRILLIC SMALL LETTER SHA */#define XK_Cyrillic_e 0x06dc /* U+044D CYRILLIC SMALL LETTER E */#define XK_Cyrillic_shcha 0x06dd /* U+0449 CYRILLIC SMALL LETTER SHCHA */#define XK_Cyrillic_che 0x06de /* U+0447 CYRILLIC SMALL LETTER CHE */#define XK_Cyrillic_hardsign 0x06df /* U+044A CYRILLIC SMALL LETTER HARD SIGN */#define XK_Cyrillic_YU 0x06e0 /* U+042E CYRILLIC CAPITAL LETTER YU */#define XK_Cyrillic_A 0x06e1 /* U+0410 CYRILLIC CAPITAL LETTER A */#define XK_Cyrillic_BE 0x06e2 /* U+0411 CYRILLIC CAPITAL LETTER BE */#define XK_Cyrillic_TSE 0x06e3 /* U+0426 CYRILLIC CAPITAL LETTER TSE */#define XK_Cyrillic_DE 0x06e4 /* U+0414 CYRILLIC CAPITAL LETTER DE */#define XK_Cyrillic_IE 0x06e5 /* U+0415 CYRILLIC CAPITAL LETTER IE */#define XK_Cyrillic_EF 0x06e6 /* U+0424 CYRILLIC CAPITAL LETTER EF */#define XK_Cyrillic_GHE 0x06e7 /* U+0413 CYRILLIC CAPITAL LETTER GHE */#define XK_Cyrillic_HA 0x06e8 /* U+0425 CYRILLIC CAPITAL LETTER HA */#define XK_Cyrillic_I 0x06e9 /* U+0418 CYRILLIC CAPITAL LETTER I */#define XK_Cyrillic_SHORTI 0x06ea /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */#define XK_Cyrillic_KA 0x06eb /* U+041A CYRILLIC CAPITAL LETTER KA */#define XK_Cyrillic_EL 0x06ec /* U+041B CYRILLIC CAPITAL LETTER EL */#define XK_Cyrillic_EM 0x06ed /* U+041C CYRILLIC CAPITAL LETTER EM */#define XK_Cyrillic_EN 0x06ee /* U+041D CYRILLIC CAPITAL LETTER EN */#define XK_Cyrillic_O 0x06ef /* U+041E CYRILLIC CAPITAL LETTER O */#define XK_Cyrillic_PE 0x06f0 /* U+041F CYRILLIC CAPITAL LETTER PE */#define XK_Cyrillic_YA 0x06f1 /* U+042F CYRILLIC CAPITAL LETTER YA */#define XK_Cyrillic_ER 0x06f2 /* U+0420 CYRILLIC CAPITAL LETTER ER */#define XK_Cyrillic_ES 0x06f3 /* U+0421 CYRILLIC CAPITAL LETTER ES */#define XK_Cyrillic_TE 0x06f4 /* U+0422 CYRILLIC CAPITAL LETTER TE */#define XK_Cyrillic_U 0x06f5 /* U+0423 CYRILLIC CAPITAL LETTER U */#define XK_Cyrillic_ZHE 0x06f6 /* U+0416 CYRILLIC CAPITAL LETTER ZHE */#define XK_Cyrillic_VE 0x06f7 /* U+0412 CYRILLIC CAPITAL LETTER VE */#define XK_Cyrillic_SOFTSIGN 0x06f8 /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */#define XK_Cyrillic_YERU 0x06f9 /* U+042B CYRILLIC CAPITAL LETTER YERU */#define XK_Cyrillic_ZE 0x06fa /* U+0417 CYRILLIC CAPITAL LETTER ZE */#define XK_Cyrillic_SHA 0x06fb /* U+0428 CYRILLIC CAPITAL LETTER SHA */#define XK_Cyrillic_E 0x06fc /* U+042D CYRILLIC CAPITAL LETTER E */#define XK_Cyrillic_SHCHA 0x06fd /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */#define XK_Cyrillic_CHE 0x06fe /* U+0427 CYRILLIC CAPITAL LETTER CHE */#define XK_Cyrillic_HARDSIGN 0x06ff /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */#endif /* XK_CYRILLIC *//** Greek* (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)* Byte 3 = 7*/#ifdef XK_GREEK#define XK_Greek_ALPHAaccent 0x07a1 /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */#define XK_Greek_EPSILONaccent 0x07a2 /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */#define XK_Greek_ETAaccent 0x07a3 /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */#define XK_Greek_IOTAaccent 0x07a4 /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */#define XK_Greek_IOTAdieresis 0x07a5 /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */#define XK_Greek_IOTAdiaeresis 0x07a5 /* old typo */#define XK_Greek_OMICRONaccent 0x07a7 /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */#define XK_Greek_UPSILONaccent 0x07a8 /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */#define XK_Greek_UPSILONdieresis 0x07a9 /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */#define XK_Greek_OMEGAaccent 0x07ab /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */#define XK_Greek_accentdieresis 0x07ae /* U+0385 GREEK DIALYTIKA TONOS */#define XK_Greek_horizbar 0x07af /* U+2015 HORIZONTAL BAR */#define XK_Greek_alphaaccent 0x07b1 /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */#define XK_Greek_epsilonaccent 0x07b2 /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */#define XK_Greek_etaaccent 0x07b3 /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */#define XK_Greek_iotaaccent 0x07b4 /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */#define XK_Greek_iotadieresis 0x07b5 /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */#define XK_Greek_iotaaccentdieresis 0x07b6 /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */#define XK_Greek_omicronaccent 0x07b7 /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */#define XK_Greek_upsilonaccent 0x07b8 /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */#define XK_Greek_upsilondieresis 0x07b9 /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */#define XK_Greek_upsilonaccentdieresis 0x07ba /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */#define XK_Greek_omegaaccent 0x07bb /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */#define XK_Greek_ALPHA 0x07c1 /* U+0391 GREEK CAPITAL LETTER ALPHA */#define XK_Greek_BETA 0x07c2 /* U+0392 GREEK CAPITAL LETTER BETA */#define XK_Greek_GAMMA 0x07c3 /* U+0393 GREEK CAPITAL LETTER GAMMA */#define XK_Greek_DELTA 0x07c4 /* U+0394 GREEK CAPITAL LETTER DELTA */#define XK_Greek_EPSILON 0x07c5 /* U+0395 GREEK CAPITAL LETTER EPSILON */#define XK_Greek_ZETA 0x07c6 /* U+0396 GREEK CAPITAL LETTER ZETA */#define XK_Greek_ETA 0x07c7 /* U+0397 GREEK CAPITAL LETTER ETA */#define XK_Greek_THETA 0x07c8 /* U+0398 GREEK CAPITAL LETTER THETA */#define XK_Greek_IOTA 0x07c9 /* U+0399 GREEK CAPITAL LETTER IOTA */#define XK_Greek_KAPPA 0x07ca /* U+039A GREEK CAPITAL LETTER KAPPA */#define XK_Greek_LAMDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */#define XK_Greek_LAMBDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */#define XK_Greek_MU 0x07cc /* U+039C GREEK CAPITAL LETTER MU */#define XK_Greek_NU 0x07cd /* U+039D GREEK CAPITAL LETTER NU */#define XK_Greek_XI 0x07ce /* U+039E GREEK CAPITAL LETTER XI */#define XK_Greek_OMICRON 0x07cf /* U+039F GREEK CAPITAL LETTER OMICRON */#define XK_Greek_PI 0x07d0 /* U+03A0 GREEK CAPITAL LETTER PI */#define XK_Greek_RHO 0x07d1 /* U+03A1 GREEK CAPITAL LETTER RHO */#define XK_Greek_SIGMA 0x07d2 /* U+03A3 GREEK CAPITAL LETTER SIGMA */#define XK_Greek_TAU 0x07d4 /* U+03A4 GREEK CAPITAL LETTER TAU */#define XK_Greek_UPSILON 0x07d5 /* U+03A5 GREEK CAPITAL LETTER UPSILON */#define XK_Greek_PHI 0x07d6 /* U+03A6 GREEK CAPITAL LETTER PHI */#define XK_Greek_CHI 0x07d7 /* U+03A7 GREEK CAPITAL LETTER CHI */#define XK_Greek_PSI 0x07d8 /* U+03A8 GREEK CAPITAL LETTER PSI */#define XK_Greek_OMEGA 0x07d9 /* U+03A9 GREEK CAPITAL LETTER OMEGA */#define XK_Greek_alpha 0x07e1 /* U+03B1 GREEK SMALL LETTER ALPHA */#define XK_Greek_beta 0x07e2 /* U+03B2 GREEK SMALL LETTER BETA */#define XK_Greek_gamma 0x07e3 /* U+03B3 GREEK SMALL LETTER GAMMA */#define XK_Greek_delta 0x07e4 /* U+03B4 GREEK SMALL LETTER DELTA */#define XK_Greek_epsilon 0x07e5 /* U+03B5 GREEK SMALL LETTER EPSILON */#define XK_Greek_zeta 0x07e6 /* U+03B6 GREEK SMALL LETTER ZETA */#define XK_Greek_eta 0x07e7 /* U+03B7 GREEK SMALL LETTER ETA */#define XK_Greek_theta 0x07e8 /* U+03B8 GREEK SMALL LETTER THETA */#define XK_Greek_iota 0x07e9 /* U+03B9 GREEK SMALL LETTER IOTA */#define XK_Greek_kappa 0x07ea /* U+03BA GREEK SMALL LETTER KAPPA */#define XK_Greek_lamda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */#define XK_Greek_lambda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */#define XK_Greek_mu 0x07ec /* U+03BC GREEK SMALL LETTER MU */#define XK_Greek_nu 0x07ed /* U+03BD GREEK SMALL LETTER NU */#define XK_Greek_xi 0x07ee /* U+03BE GREEK SMALL LETTER XI */#define XK_Greek_omicron 0x07ef /* U+03BF GREEK SMALL LETTER OMICRON */#define XK_Greek_pi 0x07f0 /* U+03C0 GREEK SMALL LETTER PI */#define XK_Greek_rho 0x07f1 /* U+03C1 GREEK SMALL LETTER RHO */#define XK_Greek_sigma 0x07f2 /* U+03C3 GREEK SMALL LETTER SIGMA */#define XK_Greek_finalsmallsigma 0x07f3 /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */#define XK_Greek_tau 0x07f4 /* U+03C4 GREEK SMALL LETTER TAU */#define XK_Greek_upsilon 0x07f5 /* U+03C5 GREEK SMALL LETTER UPSILON */#define XK_Greek_phi 0x07f6 /* U+03C6 GREEK SMALL LETTER PHI */#define XK_Greek_chi 0x07f7 /* U+03C7 GREEK SMALL LETTER CHI */#define XK_Greek_psi 0x07f8 /* U+03C8 GREEK SMALL LETTER PSI */#define XK_Greek_omega 0x07f9 /* U+03C9 GREEK SMALL LETTER OMEGA */#define XK_Greek_switch 0xff7e /* Alias for mode_switch */#endif /* XK_GREEK *//** Technical* (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)* Byte 3 = 8*/#ifdef XK_TECHNICAL#define XK_leftradical 0x08a1 /* U+23B7 RADICAL SYMBOL BOTTOM */#define XK_topleftradical 0x08a2 /*(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)*/#define XK_horizconnector 0x08a3 /*(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)*/#define XK_topintegral 0x08a4 /* U+2320 TOP HALF INTEGRAL */#define XK_botintegral 0x08a5 /* U+2321 BOTTOM HALF INTEGRAL */#define XK_vertconnector 0x08a6 /*(U+2502 BOX DRAWINGS LIGHT VERTICAL)*/#define XK_topleftsqbracket 0x08a7 /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */#define XK_botleftsqbracket 0x08a8 /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */#define XK_toprightsqbracket 0x08a9 /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */#define XK_botrightsqbracket 0x08aa /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */#define XK_topleftparens 0x08ab /* U+239B LEFT PARENTHESIS UPPER HOOK */#define XK_botleftparens 0x08ac /* U+239D LEFT PARENTHESIS LOWER HOOK */#define XK_toprightparens 0x08ad /* U+239E RIGHT PARENTHESIS UPPER HOOK */#define XK_botrightparens 0x08ae /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */#define XK_leftmiddlecurlybrace 0x08af /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */#define XK_rightmiddlecurlybrace 0x08b0 /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */#define XK_topleftsummation 0x08b1#define XK_botleftsummation 0x08b2#define XK_topvertsummationconnector 0x08b3#define XK_botvertsummationconnector 0x08b4#define XK_toprightsummation 0x08b5#define XK_botrightsummation 0x08b6#define XK_rightmiddlesummation 0x08b7#define XK_lessthanequal 0x08bc /* U+2264 LESS-THAN OR EQUAL TO */#define XK_notequal 0x08bd /* U+2260 NOT EQUAL TO */#define XK_greaterthanequal 0x08be /* U+2265 GREATER-THAN OR EQUAL TO */#define XK_integral 0x08bf /* U+222B INTEGRAL */#define XK_therefore 0x08c0 /* U+2234 THEREFORE */#define XK_variation 0x08c1 /* U+221D PROPORTIONAL TO */#define XK_infinity 0x08c2 /* U+221E INFINITY */#define XK_nabla 0x08c5 /* U+2207 NABLA */#define XK_approximate 0x08c8 /* U+223C TILDE OPERATOR */#define XK_similarequal 0x08c9 /* U+2243 ASYMPTOTICALLY EQUAL TO */#define XK_ifonlyif 0x08cd /* U+21D4 LEFT RIGHT DOUBLE ARROW */#define XK_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */#define XK_identical 0x08cf /* U+2261 IDENTICAL TO */#define XK_radical 0x08d6 /* U+221A SQUARE ROOT */#define XK_includedin 0x08da /* U+2282 SUBSET OF */#define XK_includes 0x08db /* U+2283 SUPERSET OF */#define XK_intersection 0x08dc /* U+2229 INTERSECTION */#define XK_union 0x08dd /* U+222A UNION */#define XK_logicaland 0x08de /* U+2227 LOGICAL AND */#define XK_logicalor 0x08df /* U+2228 LOGICAL OR */#define XK_partialderivative 0x08ef /* U+2202 PARTIAL DIFFERENTIAL */#define XK_function 0x08f6 /* U+0192 LATIN SMALL LETTER F WITH HOOK */#define XK_leftarrow 0x08fb /* U+2190 LEFTWARDS ARROW */#define XK_uparrow 0x08fc /* U+2191 UPWARDS ARROW */#define XK_rightarrow 0x08fd /* U+2192 RIGHTWARDS ARROW */#define XK_downarrow 0x08fe /* U+2193 DOWNWARDS ARROW */#endif /* XK_TECHNICAL *//** Special* (from the DEC VT100 Special Graphics Character Set)* Byte 3 = 9*/#ifdef XK_SPECIAL#define XK_blank 0x09df#define XK_soliddiamond 0x09e0 /* U+25C6 BLACK DIAMOND */#define XK_checkerboard 0x09e1 /* U+2592 MEDIUM SHADE */#define XK_ht 0x09e2 /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */#define XK_ff 0x09e3 /* U+240C SYMBOL FOR FORM FEED */#define XK_cr 0x09e4 /* U+240D SYMBOL FOR CARRIAGE RETURN */#define XK_lf 0x09e5 /* U+240A SYMBOL FOR LINE FEED */#define XK_nl 0x09e8 /* U+2424 SYMBOL FOR NEWLINE */#define XK_vt 0x09e9 /* U+240B SYMBOL FOR VERTICAL TABULATION */#define XK_lowrightcorner 0x09ea /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */#define XK_uprightcorner 0x09eb /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */#define XK_upleftcorner 0x09ec /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */#define XK_lowleftcorner 0x09ed /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */#define XK_crossinglines 0x09ee /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */#define XK_horizlinescan1 0x09ef /* U+23BA HORIZONTAL SCAN LINE-1 */#define XK_horizlinescan3 0x09f0 /* U+23BB HORIZONTAL SCAN LINE-3 */#define XK_horizlinescan5 0x09f1 /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */#define XK_horizlinescan7 0x09f2 /* U+23BC HORIZONTAL SCAN LINE-7 */#define XK_horizlinescan9 0x09f3 /* U+23BD HORIZONTAL SCAN LINE-9 */#define XK_leftt 0x09f4 /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */#define XK_rightt 0x09f5 /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */#define XK_bott 0x09f6 /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */#define XK_topt 0x09f7 /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */#define XK_vertbar 0x09f8 /* U+2502 BOX DRAWINGS LIGHT VERTICAL */#endif /* XK_SPECIAL *//** Publishing* (these are probably from a long forgotten DEC Publishing* font that once shipped with DECwrite)* Byte 3 = 0x0a*/#ifdef XK_PUBLISHING#define XK_emspace 0x0aa1 /* U+2003 EM SPACE */#define XK_enspace 0x0aa2 /* U+2002 EN SPACE */#define XK_em3space 0x0aa3 /* U+2004 THREE-PER-EM SPACE */#define XK_em4space 0x0aa4 /* U+2005 FOUR-PER-EM SPACE */#define XK_digitspace 0x0aa5 /* U+2007 FIGURE SPACE */#define XK_punctspace 0x0aa6 /* U+2008 PUNCTUATION SPACE */#define XK_thinspace 0x0aa7 /* U+2009 THIN SPACE */#define XK_hairspace 0x0aa8 /* U+200A HAIR SPACE */#define XK_emdash 0x0aa9 /* U+2014 EM DASH */#define XK_endash 0x0aaa /* U+2013 EN DASH */#define XK_signifblank 0x0aac /*(U+2423 OPEN BOX)*/#define XK_ellipsis 0x0aae /* U+2026 HORIZONTAL ELLIPSIS */#define XK_doubbaselinedot 0x0aaf /* U+2025 TWO DOT LEADER */#define XK_onethird 0x0ab0 /* U+2153 VULGAR FRACTION ONE THIRD */#define XK_twothirds 0x0ab1 /* U+2154 VULGAR FRACTION TWO THIRDS */#define XK_onefifth 0x0ab2 /* U+2155 VULGAR FRACTION ONE FIFTH */#define XK_twofifths 0x0ab3 /* U+2156 VULGAR FRACTION TWO FIFTHS */#define XK_threefifths 0x0ab4 /* U+2157 VULGAR FRACTION THREE FIFTHS */#define XK_fourfifths 0x0ab5 /* U+2158 VULGAR FRACTION FOUR FIFTHS */#define XK_onesixth 0x0ab6 /* U+2159 VULGAR FRACTION ONE SIXTH */#define XK_fivesixths 0x0ab7 /* U+215A VULGAR FRACTION FIVE SIXTHS */#define XK_careof 0x0ab8 /* U+2105 CARE OF */#define XK_figdash 0x0abb /* U+2012 FIGURE DASH */#define XK_leftanglebracket 0x0abc /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/#define XK_decimalpoint 0x0abd /*(U+002E FULL STOP)*/#define XK_rightanglebracket 0x0abe /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/#define XK_marker 0x0abf#define XK_oneeighth 0x0ac3 /* U+215B VULGAR FRACTION ONE EIGHTH */#define XK_threeeighths 0x0ac4 /* U+215C VULGAR FRACTION THREE EIGHTHS */#define XK_fiveeighths 0x0ac5 /* U+215D VULGAR FRACTION FIVE EIGHTHS */#define XK_seveneighths 0x0ac6 /* U+215E VULGAR FRACTION SEVEN EIGHTHS */#define XK_trademark 0x0ac9 /* U+2122 TRADE MARK SIGN */#define XK_signaturemark 0x0aca /*(U+2613 SALTIRE)*/#define XK_trademarkincircle 0x0acb#define XK_leftopentriangle 0x0acc /*(U+25C1 WHITE LEFT-POINTING TRIANGLE)*/#define XK_rightopentriangle 0x0acd /*(U+25B7 WHITE RIGHT-POINTING TRIANGLE)*/#define XK_emopencircle 0x0ace /*(U+25CB WHITE CIRCLE)*/#define XK_emopenrectangle 0x0acf /*(U+25AF WHITE VERTICAL RECTANGLE)*/#define XK_leftsinglequotemark 0x0ad0 /* U+2018 LEFT SINGLE QUOTATION MARK */#define XK_rightsinglequotemark 0x0ad1 /* U+2019 RIGHT SINGLE QUOTATION MARK */#define XK_leftdoublequotemark 0x0ad2 /* U+201C LEFT DOUBLE QUOTATION MARK */#define XK_rightdoublequotemark 0x0ad3 /* U+201D RIGHT DOUBLE QUOTATION MARK */#define XK_prescription 0x0ad4 /* U+211E PRESCRIPTION TAKE */#define XK_minutes 0x0ad6 /* U+2032 PRIME */#define XK_seconds 0x0ad7 /* U+2033 DOUBLE PRIME */#define XK_latincross 0x0ad9 /* U+271D LATIN CROSS */#define XK_hexagram 0x0ada#define XK_filledrectbullet 0x0adb /*(U+25AC BLACK RECTANGLE)*/#define XK_filledlefttribullet 0x0adc /*(U+25C0 BLACK LEFT-POINTING TRIANGLE)*/#define XK_filledrighttribullet 0x0add /*(U+25B6 BLACK RIGHT-POINTING TRIANGLE)*/#define XK_emfilledcircle 0x0ade /*(U+25CF BLACK CIRCLE)*/#define XK_emfilledrect 0x0adf /*(U+25AE BLACK VERTICAL RECTANGLE)*/#define XK_enopencircbullet 0x0ae0 /*(U+25E6 WHITE BULLET)*/#define XK_enopensquarebullet 0x0ae1 /*(U+25AB WHITE SMALL SQUARE)*/#define XK_openrectbullet 0x0ae2 /*(U+25AD WHITE RECTANGLE)*/#define XK_opentribulletup 0x0ae3 /*(U+25B3 WHITE UP-POINTING TRIANGLE)*/#define XK_opentribulletdown 0x0ae4 /*(U+25BD WHITE DOWN-POINTING TRIANGLE)*/#define XK_openstar 0x0ae5 /*(U+2606 WHITE STAR)*/#define XK_enfilledcircbullet 0x0ae6 /*(U+2022 BULLET)*/#define XK_enfilledsqbullet 0x0ae7 /*(U+25AA BLACK SMALL SQUARE)*/#define XK_filledtribulletup 0x0ae8 /*(U+25B2 BLACK UP-POINTING TRIANGLE)*/#define XK_filledtribulletdown 0x0ae9 /*(U+25BC BLACK DOWN-POINTING TRIANGLE)*/#define XK_leftpointer 0x0aea /*(U+261C WHITE LEFT POINTING INDEX)*/#define XK_rightpointer 0x0aeb /*(U+261E WHITE RIGHT POINTING INDEX)*/#define XK_club 0x0aec /* U+2663 BLACK CLUB SUIT */#define XK_diamond 0x0aed /* U+2666 BLACK DIAMOND SUIT */#define XK_heart 0x0aee /* U+2665 BLACK HEART SUIT */#define XK_maltesecross 0x0af0 /* U+2720 MALTESE CROSS */#define XK_dagger 0x0af1 /* U+2020 DAGGER */#define XK_doubledagger 0x0af2 /* U+2021 DOUBLE DAGGER */#define XK_checkmark 0x0af3 /* U+2713 CHECK MARK */#define XK_ballotcross 0x0af4 /* U+2717 BALLOT X */#define XK_musicalsharp 0x0af5 /* U+266F MUSIC SHARP SIGN */#define XK_musicalflat 0x0af6 /* U+266D MUSIC FLAT SIGN */#define XK_malesymbol 0x0af7 /* U+2642 MALE SIGN */#define XK_femalesymbol 0x0af8 /* U+2640 FEMALE SIGN */#define XK_telephone 0x0af9 /* U+260E BLACK TELEPHONE */#define XK_telephonerecorder 0x0afa /* U+2315 TELEPHONE RECORDER */#define XK_phonographcopyright 0x0afb /* U+2117 SOUND RECORDING COPYRIGHT */#define XK_caret 0x0afc /* U+2038 CARET */#define XK_singlelowquotemark 0x0afd /* U+201A SINGLE LOW-9 QUOTATION MARK */#define XK_doublelowquotemark 0x0afe /* U+201E DOUBLE LOW-9 QUOTATION MARK */#define XK_cursor 0x0aff#endif /* XK_PUBLISHING *//** APL* Byte 3 = 0x0b*/#ifdef XK_APL#define XK_leftcaret 0x0ba3 /*(U+003C LESS-THAN SIGN)*/#define XK_rightcaret 0x0ba6 /*(U+003E GREATER-THAN SIGN)*/#define XK_downcaret 0x0ba8 /*(U+2228 LOGICAL OR)*/#define XK_upcaret 0x0ba9 /*(U+2227 LOGICAL AND)*/#define XK_overbar 0x0bc0 /*(U+00AF MACRON)*/#define XK_downtack 0x0bc2 /* U+22A5 UP TACK */#define XK_upshoe 0x0bc3 /*(U+2229 INTERSECTION)*/#define XK_downstile 0x0bc4 /* U+230A LEFT FLOOR */#define XK_underbar 0x0bc6 /*(U+005F LOW LINE)*/#define XK_jot 0x0bca /* U+2218 RING OPERATOR */#define XK_quad 0x0bcc /* U+2395 APL FUNCTIONAL SYMBOL QUAD */#define XK_uptack 0x0bce /* U+22A4 DOWN TACK */#define XK_circle 0x0bcf /* U+25CB WHITE CIRCLE */#define XK_upstile 0x0bd3 /* U+2308 LEFT CEILING */#define XK_downshoe 0x0bd6 /*(U+222A UNION)*/#define XK_rightshoe 0x0bd8 /*(U+2283 SUPERSET OF)*/#define XK_leftshoe 0x0bda /*(U+2282 SUBSET OF)*/#define XK_lefttack 0x0bdc /* U+22A2 RIGHT TACK */#define XK_righttack 0x0bfc /* U+22A3 LEFT TACK */#endif /* XK_APL *//** Hebrew* Byte 3 = 0x0c*/#ifdef XK_HEBREW#define XK_hebrew_doublelowline 0x0cdf /* U+2017 DOUBLE LOW LINE */#define XK_hebrew_aleph 0x0ce0 /* U+05D0 HEBREW LETTER ALEF */#define XK_hebrew_bet 0x0ce1 /* U+05D1 HEBREW LETTER BET */#define XK_hebrew_beth 0x0ce1 /* deprecated */#define XK_hebrew_gimel 0x0ce2 /* U+05D2 HEBREW LETTER GIMEL */#define XK_hebrew_gimmel 0x0ce2 /* deprecated */#define XK_hebrew_dalet 0x0ce3 /* U+05D3 HEBREW LETTER DALET */#define XK_hebrew_daleth 0x0ce3 /* deprecated */#define XK_hebrew_he 0x0ce4 /* U+05D4 HEBREW LETTER HE */#define XK_hebrew_waw 0x0ce5 /* U+05D5 HEBREW LETTER VAV */#define XK_hebrew_zain 0x0ce6 /* U+05D6 HEBREW LETTER ZAYIN */#define XK_hebrew_zayin 0x0ce6 /* deprecated */#define XK_hebrew_chet 0x0ce7 /* U+05D7 HEBREW LETTER HET */#define XK_hebrew_het 0x0ce7 /* deprecated */#define XK_hebrew_tet 0x0ce8 /* U+05D8 HEBREW LETTER TET */#define XK_hebrew_teth 0x0ce8 /* deprecated */#define XK_hebrew_yod 0x0ce9 /* U+05D9 HEBREW LETTER YOD */#define XK_hebrew_finalkaph 0x0cea /* U+05DA HEBREW LETTER FINAL KAF */#define XK_hebrew_kaph 0x0ceb /* U+05DB HEBREW LETTER KAF */#define XK_hebrew_lamed 0x0cec /* U+05DC HEBREW LETTER LAMED */#define XK_hebrew_finalmem 0x0ced /* U+05DD HEBREW LETTER FINAL MEM */#define XK_hebrew_mem 0x0cee /* U+05DE HEBREW LETTER MEM */#define XK_hebrew_finalnun 0x0cef /* U+05DF HEBREW LETTER FINAL NUN */#define XK_hebrew_nun 0x0cf0 /* U+05E0 HEBREW LETTER NUN */#define XK_hebrew_samech 0x0cf1 /* U+05E1 HEBREW LETTER SAMEKH */#define XK_hebrew_samekh 0x0cf1 /* deprecated */#define XK_hebrew_ayin 0x0cf2 /* U+05E2 HEBREW LETTER AYIN */#define XK_hebrew_finalpe 0x0cf3 /* U+05E3 HEBREW LETTER FINAL PE */#define XK_hebrew_pe 0x0cf4 /* U+05E4 HEBREW LETTER PE */#define XK_hebrew_finalzade 0x0cf5 /* U+05E5 HEBREW LETTER FINAL TSADI */#define XK_hebrew_finalzadi 0x0cf5 /* deprecated */#define XK_hebrew_zade 0x0cf6 /* U+05E6 HEBREW LETTER TSADI */#define XK_hebrew_zadi 0x0cf6 /* deprecated */#define XK_hebrew_qoph 0x0cf7 /* U+05E7 HEBREW LETTER QOF */#define XK_hebrew_kuf 0x0cf7 /* deprecated */#define XK_hebrew_resh 0x0cf8 /* U+05E8 HEBREW LETTER RESH */#define XK_hebrew_shin 0x0cf9 /* U+05E9 HEBREW LETTER SHIN */#define XK_hebrew_taw 0x0cfa /* U+05EA HEBREW LETTER TAV */#define XK_hebrew_taf 0x0cfa /* deprecated */#define XK_Hebrew_switch 0xff7e /* Alias for mode_switch */#endif /* XK_HEBREW *//** Thai* Byte 3 = 0x0d*/#ifdef XK_THAI#define XK_Thai_kokai 0x0da1 /* U+0E01 THAI CHARACTER KO KAI */#define XK_Thai_khokhai 0x0da2 /* U+0E02 THAI CHARACTER KHO KHAI */#define XK_Thai_khokhuat 0x0da3 /* U+0E03 THAI CHARACTER KHO KHUAT */#define XK_Thai_khokhwai 0x0da4 /* U+0E04 THAI CHARACTER KHO KHWAI */#define XK_Thai_khokhon 0x0da5 /* U+0E05 THAI CHARACTER KHO KHON */#define XK_Thai_khorakhang 0x0da6 /* U+0E06 THAI CHARACTER KHO RAKHANG */#define XK_Thai_ngongu 0x0da7 /* U+0E07 THAI CHARACTER NGO NGU */#define XK_Thai_chochan 0x0da8 /* U+0E08 THAI CHARACTER CHO CHAN */#define XK_Thai_choching 0x0da9 /* U+0E09 THAI CHARACTER CHO CHING */#define XK_Thai_chochang 0x0daa /* U+0E0A THAI CHARACTER CHO CHANG */#define XK_Thai_soso 0x0dab /* U+0E0B THAI CHARACTER SO SO */#define XK_Thai_chochoe 0x0dac /* U+0E0C THAI CHARACTER CHO CHOE */#define XK_Thai_yoying 0x0dad /* U+0E0D THAI CHARACTER YO YING */#define XK_Thai_dochada 0x0dae /* U+0E0E THAI CHARACTER DO CHADA */#define XK_Thai_topatak 0x0daf /* U+0E0F THAI CHARACTER TO PATAK */#define XK_Thai_thothan 0x0db0 /* U+0E10 THAI CHARACTER THO THAN */#define XK_Thai_thonangmontho 0x0db1 /* U+0E11 THAI CHARACTER THO NANGMONTHO */#define XK_Thai_thophuthao 0x0db2 /* U+0E12 THAI CHARACTER THO PHUTHAO */#define XK_Thai_nonen 0x0db3 /* U+0E13 THAI CHARACTER NO NEN */#define XK_Thai_dodek 0x0db4 /* U+0E14 THAI CHARACTER DO DEK */#define XK_Thai_totao 0x0db5 /* U+0E15 THAI CHARACTER TO TAO */#define XK_Thai_thothung 0x0db6 /* U+0E16 THAI CHARACTER THO THUNG */#define XK_Thai_thothahan 0x0db7 /* U+0E17 THAI CHARACTER THO THAHAN */#define XK_Thai_thothong 0x0db8 /* U+0E18 THAI CHARACTER THO THONG */#define XK_Thai_nonu 0x0db9 /* U+0E19 THAI CHARACTER NO NU */#define XK_Thai_bobaimai 0x0dba /* U+0E1A THAI CHARACTER BO BAIMAI */#define XK_Thai_popla 0x0dbb /* U+0E1B THAI CHARACTER PO PLA */#define XK_Thai_phophung 0x0dbc /* U+0E1C THAI CHARACTER PHO PHUNG */#define XK_Thai_fofa 0x0dbd /* U+0E1D THAI CHARACTER FO FA */#define XK_Thai_phophan 0x0dbe /* U+0E1E THAI CHARACTER PHO PHAN */#define XK_Thai_fofan 0x0dbf /* U+0E1F THAI CHARACTER FO FAN */#define XK_Thai_phosamphao 0x0dc0 /* U+0E20 THAI CHARACTER PHO SAMPHAO */#define XK_Thai_moma 0x0dc1 /* U+0E21 THAI CHARACTER MO MA */#define XK_Thai_yoyak 0x0dc2 /* U+0E22 THAI CHARACTER YO YAK */#define XK_Thai_rorua 0x0dc3 /* U+0E23 THAI CHARACTER RO RUA */#define XK_Thai_ru 0x0dc4 /* U+0E24 THAI CHARACTER RU */#define XK_Thai_loling 0x0dc5 /* U+0E25 THAI CHARACTER LO LING */#define XK_Thai_lu 0x0dc6 /* U+0E26 THAI CHARACTER LU */#define XK_Thai_wowaen 0x0dc7 /* U+0E27 THAI CHARACTER WO WAEN */#define XK_Thai_sosala 0x0dc8 /* U+0E28 THAI CHARACTER SO SALA */#define XK_Thai_sorusi 0x0dc9 /* U+0E29 THAI CHARACTER SO RUSI */#define XK_Thai_sosua 0x0dca /* U+0E2A THAI CHARACTER SO SUA */#define XK_Thai_hohip 0x0dcb /* U+0E2B THAI CHARACTER HO HIP */#define XK_Thai_lochula 0x0dcc /* U+0E2C THAI CHARACTER LO CHULA */#define XK_Thai_oang 0x0dcd /* U+0E2D THAI CHARACTER O ANG */#define XK_Thai_honokhuk 0x0dce /* U+0E2E THAI CHARACTER HO NOKHUK */#define XK_Thai_paiyannoi 0x0dcf /* U+0E2F THAI CHARACTER PAIYANNOI */#define XK_Thai_saraa 0x0dd0 /* U+0E30 THAI CHARACTER SARA A */#define XK_Thai_maihanakat 0x0dd1 /* U+0E31 THAI CHARACTER MAI HAN-AKAT */#define XK_Thai_saraaa 0x0dd2 /* U+0E32 THAI CHARACTER SARA AA */#define XK_Thai_saraam 0x0dd3 /* U+0E33 THAI CHARACTER SARA AM */#define XK_Thai_sarai 0x0dd4 /* U+0E34 THAI CHARACTER SARA I */#define XK_Thai_saraii 0x0dd5 /* U+0E35 THAI CHARACTER SARA II */#define XK_Thai_saraue 0x0dd6 /* U+0E36 THAI CHARACTER SARA UE */#define XK_Thai_sarauee 0x0dd7 /* U+0E37 THAI CHARACTER SARA UEE */#define XK_Thai_sarau 0x0dd8 /* U+0E38 THAI CHARACTER SARA U */#define XK_Thai_sarauu 0x0dd9 /* U+0E39 THAI CHARACTER SARA UU */#define XK_Thai_phinthu 0x0dda /* U+0E3A THAI CHARACTER PHINTHU */#define XK_Thai_maihanakat_maitho 0x0dde#define XK_Thai_baht 0x0ddf /* U+0E3F THAI CURRENCY SYMBOL BAHT */#define XK_Thai_sarae 0x0de0 /* U+0E40 THAI CHARACTER SARA E */#define XK_Thai_saraae 0x0de1 /* U+0E41 THAI CHARACTER SARA AE */#define XK_Thai_sarao 0x0de2 /* U+0E42 THAI CHARACTER SARA O */#define XK_Thai_saraaimaimuan 0x0de3 /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */#define XK_Thai_saraaimaimalai 0x0de4 /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */#define XK_Thai_lakkhangyao 0x0de5 /* U+0E45 THAI CHARACTER LAKKHANGYAO */#define XK_Thai_maiyamok 0x0de6 /* U+0E46 THAI CHARACTER MAIYAMOK */#define XK_Thai_maitaikhu 0x0de7 /* U+0E47 THAI CHARACTER MAITAIKHU */#define XK_Thai_maiek 0x0de8 /* U+0E48 THAI CHARACTER MAI EK */#define XK_Thai_maitho 0x0de9 /* U+0E49 THAI CHARACTER MAI THO */#define XK_Thai_maitri 0x0dea /* U+0E4A THAI CHARACTER MAI TRI */#define XK_Thai_maichattawa 0x0deb /* U+0E4B THAI CHARACTER MAI CHATTAWA */#define XK_Thai_thanthakhat 0x0dec /* U+0E4C THAI CHARACTER THANTHAKHAT */#define XK_Thai_nikhahit 0x0ded /* U+0E4D THAI CHARACTER NIKHAHIT */#define XK_Thai_leksun 0x0df0 /* U+0E50 THAI DIGIT ZERO */#define XK_Thai_leknung 0x0df1 /* U+0E51 THAI DIGIT ONE */#define XK_Thai_leksong 0x0df2 /* U+0E52 THAI DIGIT TWO */#define XK_Thai_leksam 0x0df3 /* U+0E53 THAI DIGIT THREE */#define XK_Thai_leksi 0x0df4 /* U+0E54 THAI DIGIT FOUR */#define XK_Thai_lekha 0x0df5 /* U+0E55 THAI DIGIT FIVE */#define XK_Thai_lekhok 0x0df6 /* U+0E56 THAI DIGIT SIX */#define XK_Thai_lekchet 0x0df7 /* U+0E57 THAI DIGIT SEVEN */#define XK_Thai_lekpaet 0x0df8 /* U+0E58 THAI DIGIT EIGHT */#define XK_Thai_lekkao 0x0df9 /* U+0E59 THAI DIGIT NINE */#endif /* XK_THAI *//** Korean* Byte 3 = 0x0e*/#ifdef XK_KOREAN#define XK_Hangul 0xff31 /* Hangul start/stop(toggle) */#define XK_Hangul_Start 0xff32 /* Hangul start */#define XK_Hangul_End 0xff33 /* Hangul end, English start */#define XK_Hangul_Hanja 0xff34 /* Start Hangul->Hanja Conversion */#define XK_Hangul_Jamo 0xff35 /* Hangul Jamo mode */#define XK_Hangul_Romaja 0xff36 /* Hangul Romaja mode */#define XK_Hangul_Codeinput 0xff37 /* Hangul code input mode */#define XK_Hangul_Jeonja 0xff38 /* Jeonja mode */#define XK_Hangul_Banja 0xff39 /* Banja mode */#define XK_Hangul_PreHanja 0xff3a /* Pre Hanja conversion */#define XK_Hangul_PostHanja 0xff3b /* Post Hanja conversion */#define XK_Hangul_SingleCandidate 0xff3c /* Single candidate */#define XK_Hangul_MultipleCandidate 0xff3d /* Multiple candidate */#define XK_Hangul_PreviousCandidate 0xff3e /* Previous candidate */#define XK_Hangul_Special 0xff3f /* Special symbols */#define XK_Hangul_switch 0xff7e /* Alias for mode_switch *//* Hangul Consonant Characters */#define XK_Hangul_Kiyeog 0x0ea1#define XK_Hangul_SsangKiyeog 0x0ea2#define XK_Hangul_KiyeogSios 0x0ea3#define XK_Hangul_Nieun 0x0ea4#define XK_Hangul_NieunJieuj 0x0ea5#define XK_Hangul_NieunHieuh 0x0ea6#define XK_Hangul_Dikeud 0x0ea7#define XK_Hangul_SsangDikeud 0x0ea8#define XK_Hangul_Rieul 0x0ea9#define XK_Hangul_RieulKiyeog 0x0eaa#define XK_Hangul_RieulMieum 0x0eab#define XK_Hangul_RieulPieub 0x0eac#define XK_Hangul_RieulSios 0x0ead#define XK_Hangul_RieulTieut 0x0eae#define XK_Hangul_RieulPhieuf 0x0eaf#define XK_Hangul_RieulHieuh 0x0eb0#define XK_Hangul_Mieum 0x0eb1#define XK_Hangul_Pieub 0x0eb2#define XK_Hangul_SsangPieub 0x0eb3#define XK_Hangul_PieubSios 0x0eb4#define XK_Hangul_Sios 0x0eb5#define XK_Hangul_SsangSios 0x0eb6#define XK_Hangul_Ieung 0x0eb7#define XK_Hangul_Jieuj 0x0eb8#define XK_Hangul_SsangJieuj 0x0eb9#define XK_Hangul_Cieuc 0x0eba#define XK_Hangul_Khieuq 0x0ebb#define XK_Hangul_Tieut 0x0ebc#define XK_Hangul_Phieuf 0x0ebd#define XK_Hangul_Hieuh 0x0ebe/* Hangul Vowel Characters */#define XK_Hangul_A 0x0ebf#define XK_Hangul_AE 0x0ec0#define XK_Hangul_YA 0x0ec1#define XK_Hangul_YAE 0x0ec2#define XK_Hangul_EO 0x0ec3#define XK_Hangul_E 0x0ec4#define XK_Hangul_YEO 0x0ec5#define XK_Hangul_YE 0x0ec6#define XK_Hangul_O 0x0ec7#define XK_Hangul_WA 0x0ec8#define XK_Hangul_WAE 0x0ec9#define XK_Hangul_OE 0x0eca#define XK_Hangul_YO 0x0ecb#define XK_Hangul_U 0x0ecc#define XK_Hangul_WEO 0x0ecd#define XK_Hangul_WE 0x0ece#define XK_Hangul_WI 0x0ecf#define XK_Hangul_YU 0x0ed0#define XK_Hangul_EU 0x0ed1#define XK_Hangul_YI 0x0ed2#define XK_Hangul_I 0x0ed3/* Hangul syllable-final (JongSeong) Characters */#define XK_Hangul_J_Kiyeog 0x0ed4#define XK_Hangul_J_SsangKiyeog 0x0ed5#define XK_Hangul_J_KiyeogSios 0x0ed6#define XK_Hangul_J_Nieun 0x0ed7#define XK_Hangul_J_NieunJieuj 0x0ed8#define XK_Hangul_J_NieunHieuh 0x0ed9#define XK_Hangul_J_Dikeud 0x0eda#define XK_Hangul_J_Rieul 0x0edb#define XK_Hangul_J_RieulKiyeog 0x0edc#define XK_Hangul_J_RieulMieum 0x0edd#define XK_Hangul_J_RieulPieub 0x0ede#define XK_Hangul_J_RieulSios 0x0edf#define XK_Hangul_J_RieulTieut 0x0ee0#define XK_Hangul_J_RieulPhieuf 0x0ee1#define XK_Hangul_J_RieulHieuh 0x0ee2#define XK_Hangul_J_Mieum 0x0ee3#define XK_Hangul_J_Pieub 0x0ee4#define XK_Hangul_J_PieubSios 0x0ee5#define XK_Hangul_J_Sios 0x0ee6#define XK_Hangul_J_SsangSios 0x0ee7#define XK_Hangul_J_Ieung 0x0ee8#define XK_Hangul_J_Jieuj 0x0ee9#define XK_Hangul_J_Cieuc 0x0eea#define XK_Hangul_J_Khieuq 0x0eeb#define XK_Hangul_J_Tieut 0x0eec#define XK_Hangul_J_Phieuf 0x0eed#define XK_Hangul_J_Hieuh 0x0eee/* Ancient Hangul Consonant Characters */#define XK_Hangul_RieulYeorinHieuh 0x0eef#define XK_Hangul_SunkyeongeumMieum 0x0ef0#define XK_Hangul_SunkyeongeumPieub 0x0ef1#define XK_Hangul_PanSios 0x0ef2#define XK_Hangul_KkogjiDalrinIeung 0x0ef3#define XK_Hangul_SunkyeongeumPhieuf 0x0ef4#define XK_Hangul_YeorinHieuh 0x0ef5/* Ancient Hangul Vowel Characters */#define XK_Hangul_AraeA 0x0ef6#define XK_Hangul_AraeAE 0x0ef7/* Ancient Hangul syllable-final (JongSeong) Characters */#define XK_Hangul_J_PanSios 0x0ef8#define XK_Hangul_J_KkogjiDalrinIeung 0x0ef9#define XK_Hangul_J_YeorinHieuh 0x0efa/* Korean currency symbol */#define XK_Korean_Won 0x0eff /*(U+20A9 WON SIGN)*/#endif /* XK_KOREAN *//** Armenian*/#ifdef XK_ARMENIAN#define XK_Armenian_ligature_ew 0x1000587 /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */#define XK_Armenian_full_stop 0x1000589 /* U+0589 ARMENIAN FULL STOP */#define XK_Armenian_verjaket 0x1000589 /* U+0589 ARMENIAN FULL STOP */#define XK_Armenian_separation_mark 0x100055d /* U+055D ARMENIAN COMMA */#define XK_Armenian_but 0x100055d /* U+055D ARMENIAN COMMA */#define XK_Armenian_hyphen 0x100058a /* U+058A ARMENIAN HYPHEN */#define XK_Armenian_yentamna 0x100058a /* U+058A ARMENIAN HYPHEN */#define XK_Armenian_exclam 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */#define XK_Armenian_amanak 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */#define XK_Armenian_accent 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */#define XK_Armenian_shesht 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */#define XK_Armenian_question 0x100055e /* U+055E ARMENIAN QUESTION MARK */#define XK_Armenian_paruyk 0x100055e /* U+055E ARMENIAN QUESTION MARK */#define XK_Armenian_AYB 0x1000531 /* U+0531 ARMENIAN CAPITAL LETTER AYB */#define XK_Armenian_ayb 0x1000561 /* U+0561 ARMENIAN SMALL LETTER AYB */#define XK_Armenian_BEN 0x1000532 /* U+0532 ARMENIAN CAPITAL LETTER BEN */#define XK_Armenian_ben 0x1000562 /* U+0562 ARMENIAN SMALL LETTER BEN */#define XK_Armenian_GIM 0x1000533 /* U+0533 ARMENIAN CAPITAL LETTER GIM */#define XK_Armenian_gim 0x1000563 /* U+0563 ARMENIAN SMALL LETTER GIM */#define XK_Armenian_DA 0x1000534 /* U+0534 ARMENIAN CAPITAL LETTER DA */#define XK_Armenian_da 0x1000564 /* U+0564 ARMENIAN SMALL LETTER DA */#define XK_Armenian_YECH 0x1000535 /* U+0535 ARMENIAN CAPITAL LETTER ECH */#define XK_Armenian_yech 0x1000565 /* U+0565 ARMENIAN SMALL LETTER ECH */#define XK_Armenian_ZA 0x1000536 /* U+0536 ARMENIAN CAPITAL LETTER ZA */#define XK_Armenian_za 0x1000566 /* U+0566 ARMENIAN SMALL LETTER ZA */#define XK_Armenian_E 0x1000537 /* U+0537 ARMENIAN CAPITAL LETTER EH */#define XK_Armenian_e 0x1000567 /* U+0567 ARMENIAN SMALL LETTER EH */#define XK_Armenian_AT 0x1000538 /* U+0538 ARMENIAN CAPITAL LETTER ET */#define XK_Armenian_at 0x1000568 /* U+0568 ARMENIAN SMALL LETTER ET */#define XK_Armenian_TO 0x1000539 /* U+0539 ARMENIAN CAPITAL LETTER TO */#define XK_Armenian_to 0x1000569 /* U+0569 ARMENIAN SMALL LETTER TO */#define XK_Armenian_ZHE 0x100053a /* U+053A ARMENIAN CAPITAL LETTER ZHE */#define XK_Armenian_zhe 0x100056a /* U+056A ARMENIAN SMALL LETTER ZHE */#define XK_Armenian_INI 0x100053b /* U+053B ARMENIAN CAPITAL LETTER INI */#define XK_Armenian_ini 0x100056b /* U+056B ARMENIAN SMALL LETTER INI */#define XK_Armenian_LYUN 0x100053c /* U+053C ARMENIAN CAPITAL LETTER LIWN */#define XK_Armenian_lyun 0x100056c /* U+056C ARMENIAN SMALL LETTER LIWN */#define XK_Armenian_KHE 0x100053d /* U+053D ARMENIAN CAPITAL LETTER XEH */#define XK_Armenian_khe 0x100056d /* U+056D ARMENIAN SMALL LETTER XEH */#define XK_Armenian_TSA 0x100053e /* U+053E ARMENIAN CAPITAL LETTER CA */#define XK_Armenian_tsa 0x100056e /* U+056E ARMENIAN SMALL LETTER CA */#define XK_Armenian_KEN 0x100053f /* U+053F ARMENIAN CAPITAL LETTER KEN */#define XK_Armenian_ken 0x100056f /* U+056F ARMENIAN SMALL LETTER KEN */#define XK_Armenian_HO 0x1000540 /* U+0540 ARMENIAN CAPITAL LETTER HO */#define XK_Armenian_ho 0x1000570 /* U+0570 ARMENIAN SMALL LETTER HO */#define XK_Armenian_DZA 0x1000541 /* U+0541 ARMENIAN CAPITAL LETTER JA */#define XK_Armenian_dza 0x1000571 /* U+0571 ARMENIAN SMALL LETTER JA */#define XK_Armenian_GHAT 0x1000542 /* U+0542 ARMENIAN CAPITAL LETTER GHAD */#define XK_Armenian_ghat 0x1000572 /* U+0572 ARMENIAN SMALL LETTER GHAD */#define XK_Armenian_TCHE 0x1000543 /* U+0543 ARMENIAN CAPITAL LETTER CHEH */#define XK_Armenian_tche 0x1000573 /* U+0573 ARMENIAN SMALL LETTER CHEH */#define XK_Armenian_MEN 0x1000544 /* U+0544 ARMENIAN CAPITAL LETTER MEN */#define XK_Armenian_men 0x1000574 /* U+0574 ARMENIAN SMALL LETTER MEN */#define XK_Armenian_HI 0x1000545 /* U+0545 ARMENIAN CAPITAL LETTER YI */#define XK_Armenian_hi 0x1000575 /* U+0575 ARMENIAN SMALL LETTER YI */#define XK_Armenian_NU 0x1000546 /* U+0546 ARMENIAN CAPITAL LETTER NOW */#define XK_Armenian_nu 0x1000576 /* U+0576 ARMENIAN SMALL LETTER NOW */#define XK_Armenian_SHA 0x1000547 /* U+0547 ARMENIAN CAPITAL LETTER SHA */#define XK_Armenian_sha 0x1000577 /* U+0577 ARMENIAN SMALL LETTER SHA */#define XK_Armenian_VO 0x1000548 /* U+0548 ARMENIAN CAPITAL LETTER VO */#define XK_Armenian_vo 0x1000578 /* U+0578 ARMENIAN SMALL LETTER VO */#define XK_Armenian_CHA 0x1000549 /* U+0549 ARMENIAN CAPITAL LETTER CHA */#define XK_Armenian_cha 0x1000579 /* U+0579 ARMENIAN SMALL LETTER CHA */#define XK_Armenian_PE 0x100054a /* U+054A ARMENIAN CAPITAL LETTER PEH */#define XK_Armenian_pe 0x100057a /* U+057A ARMENIAN SMALL LETTER PEH */#define XK_Armenian_JE 0x100054b /* U+054B ARMENIAN CAPITAL LETTER JHEH */#define XK_Armenian_je 0x100057b /* U+057B ARMENIAN SMALL LETTER JHEH */#define XK_Armenian_RA 0x100054c /* U+054C ARMENIAN CAPITAL LETTER RA */#define XK_Armenian_ra 0x100057c /* U+057C ARMENIAN SMALL LETTER RA */#define XK_Armenian_SE 0x100054d /* U+054D ARMENIAN CAPITAL LETTER SEH */#define XK_Armenian_se 0x100057d /* U+057D ARMENIAN SMALL LETTER SEH */#define XK_Armenian_VEV 0x100054e /* U+054E ARMENIAN CAPITAL LETTER VEW */#define XK_Armenian_vev 0x100057e /* U+057E ARMENIAN SMALL LETTER VEW */#define XK_Armenian_TYUN 0x100054f /* U+054F ARMENIAN CAPITAL LETTER TIWN */#define XK_Armenian_tyun 0x100057f /* U+057F ARMENIAN SMALL LETTER TIWN */#define XK_Armenian_RE 0x1000550 /* U+0550 ARMENIAN CAPITAL LETTER REH */#define XK_Armenian_re 0x1000580 /* U+0580 ARMENIAN SMALL LETTER REH */#define XK_Armenian_TSO 0x1000551 /* U+0551 ARMENIAN CAPITAL LETTER CO */#define XK_Armenian_tso 0x1000581 /* U+0581 ARMENIAN SMALL LETTER CO */#define XK_Armenian_VYUN 0x1000552 /* U+0552 ARMENIAN CAPITAL LETTER YIWN */#define XK_Armenian_vyun 0x1000582 /* U+0582 ARMENIAN SMALL LETTER YIWN */#define XK_Armenian_PYUR 0x1000553 /* U+0553 ARMENIAN CAPITAL LETTER PIWR */#define XK_Armenian_pyur 0x1000583 /* U+0583 ARMENIAN SMALL LETTER PIWR */#define XK_Armenian_KE 0x1000554 /* U+0554 ARMENIAN CAPITAL LETTER KEH */#define XK_Armenian_ke 0x1000584 /* U+0584 ARMENIAN SMALL LETTER KEH */#define XK_Armenian_O 0x1000555 /* U+0555 ARMENIAN CAPITAL LETTER OH */#define XK_Armenian_o 0x1000585 /* U+0585 ARMENIAN SMALL LETTER OH */#define XK_Armenian_FE 0x1000556 /* U+0556 ARMENIAN CAPITAL LETTER FEH */#define XK_Armenian_fe 0x1000586 /* U+0586 ARMENIAN SMALL LETTER FEH */#define XK_Armenian_apostrophe 0x100055a /* U+055A ARMENIAN APOSTROPHE */#endif /* XK_ARMENIAN *//** Georgian*/#ifdef XK_GEORGIAN#define XK_Georgian_an 0x10010d0 /* U+10D0 GEORGIAN LETTER AN */#define XK_Georgian_ban 0x10010d1 /* U+10D1 GEORGIAN LETTER BAN */#define XK_Georgian_gan 0x10010d2 /* U+10D2 GEORGIAN LETTER GAN */#define XK_Georgian_don 0x10010d3 /* U+10D3 GEORGIAN LETTER DON */#define XK_Georgian_en 0x10010d4 /* U+10D4 GEORGIAN LETTER EN */#define XK_Georgian_vin 0x10010d5 /* U+10D5 GEORGIAN LETTER VIN */#define XK_Georgian_zen 0x10010d6 /* U+10D6 GEORGIAN LETTER ZEN */#define XK_Georgian_tan 0x10010d7 /* U+10D7 GEORGIAN LETTER TAN */#define XK_Georgian_in 0x10010d8 /* U+10D8 GEORGIAN LETTER IN */#define XK_Georgian_kan 0x10010d9 /* U+10D9 GEORGIAN LETTER KAN */#define XK_Georgian_las 0x10010da /* U+10DA GEORGIAN LETTER LAS */#define XK_Georgian_man 0x10010db /* U+10DB GEORGIAN LETTER MAN */#define XK_Georgian_nar 0x10010dc /* U+10DC GEORGIAN LETTER NAR */#define XK_Georgian_on 0x10010dd /* U+10DD GEORGIAN LETTER ON */#define XK_Georgian_par 0x10010de /* U+10DE GEORGIAN LETTER PAR */#define XK_Georgian_zhar 0x10010df /* U+10DF GEORGIAN LETTER ZHAR */#define XK_Georgian_rae 0x10010e0 /* U+10E0 GEORGIAN LETTER RAE */#define XK_Georgian_san 0x10010e1 /* U+10E1 GEORGIAN LETTER SAN */#define XK_Georgian_tar 0x10010e2 /* U+10E2 GEORGIAN LETTER TAR */#define XK_Georgian_un 0x10010e3 /* U+10E3 GEORGIAN LETTER UN */#define XK_Georgian_phar 0x10010e4 /* U+10E4 GEORGIAN LETTER PHAR */#define XK_Georgian_khar 0x10010e5 /* U+10E5 GEORGIAN LETTER KHAR */#define XK_Georgian_ghan 0x10010e6 /* U+10E6 GEORGIAN LETTER GHAN */#define XK_Georgian_qar 0x10010e7 /* U+10E7 GEORGIAN LETTER QAR */#define XK_Georgian_shin 0x10010e8 /* U+10E8 GEORGIAN LETTER SHIN */#define XK_Georgian_chin 0x10010e9 /* U+10E9 GEORGIAN LETTER CHIN */#define XK_Georgian_can 0x10010ea /* U+10EA GEORGIAN LETTER CAN */#define XK_Georgian_jil 0x10010eb /* U+10EB GEORGIAN LETTER JIL */#define XK_Georgian_cil 0x10010ec /* U+10EC GEORGIAN LETTER CIL */#define XK_Georgian_char 0x10010ed /* U+10ED GEORGIAN LETTER CHAR */#define XK_Georgian_xan 0x10010ee /* U+10EE GEORGIAN LETTER XAN */#define XK_Georgian_jhan 0x10010ef /* U+10EF GEORGIAN LETTER JHAN */#define XK_Georgian_hae 0x10010f0 /* U+10F0 GEORGIAN LETTER HAE */#define XK_Georgian_he 0x10010f1 /* U+10F1 GEORGIAN LETTER HE */#define XK_Georgian_hie 0x10010f2 /* U+10F2 GEORGIAN LETTER HIE */#define XK_Georgian_we 0x10010f3 /* U+10F3 GEORGIAN LETTER WE */#define XK_Georgian_har 0x10010f4 /* U+10F4 GEORGIAN LETTER HAR */#define XK_Georgian_hoe 0x10010f5 /* U+10F5 GEORGIAN LETTER HOE */#define XK_Georgian_fi 0x10010f6 /* U+10F6 GEORGIAN LETTER FI */#endif /* XK_GEORGIAN *//** Azeri (and other Turkic or Caucasian languages)*/#ifdef XK_CAUCASUS/* latin */#define XK_Xabovedot 0x1001e8a /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */#define XK_Ibreve 0x100012c /* U+012C LATIN CAPITAL LETTER I WITH BREVE */#define XK_Zstroke 0x10001b5 /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */#define XK_Gcaron 0x10001e6 /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */#define XK_Ocaron 0x10001d1 /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */#define XK_Obarred 0x100019f /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */#define XK_xabovedot 0x1001e8b /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */#define XK_ibreve 0x100012d /* U+012D LATIN SMALL LETTER I WITH BREVE */#define XK_zstroke 0x10001b6 /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */#define XK_gcaron 0x10001e7 /* U+01E7 LATIN SMALL LETTER G WITH CARON */#define XK_ocaron 0x10001d2 /* U+01D2 LATIN SMALL LETTER O WITH CARON */#define XK_obarred 0x1000275 /* U+0275 LATIN SMALL LETTER BARRED O */#define XK_SCHWA 0x100018f /* U+018F LATIN CAPITAL LETTER SCHWA */#define XK_schwa 0x1000259 /* U+0259 LATIN SMALL LETTER SCHWA *//* those are not really Caucasus *//* For Inupiak */#define XK_Lbelowdot 0x1001e36 /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */#define XK_lbelowdot 0x1001e37 /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */#endif /* XK_CAUCASUS *//** Vietnamese*/#ifdef XK_VIETNAMESE#define XK_Abelowdot 0x1001ea0 /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */#define XK_abelowdot 0x1001ea1 /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */#define XK_Ahook 0x1001ea2 /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */#define XK_ahook 0x1001ea3 /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */#define XK_Acircumflexacute 0x1001ea4 /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */#define XK_acircumflexacute 0x1001ea5 /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */#define XK_Acircumflexgrave 0x1001ea6 /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */#define XK_acircumflexgrave 0x1001ea7 /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */#define XK_Acircumflexhook 0x1001ea8 /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */#define XK_acircumflexhook 0x1001ea9 /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */#define XK_Acircumflextilde 0x1001eaa /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */#define XK_acircumflextilde 0x1001eab /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */#define XK_Acircumflexbelowdot 0x1001eac /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */#define XK_acircumflexbelowdot 0x1001ead /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */#define XK_Abreveacute 0x1001eae /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */#define XK_abreveacute 0x1001eaf /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */#define XK_Abrevegrave 0x1001eb0 /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */#define XK_abrevegrave 0x1001eb1 /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */#define XK_Abrevehook 0x1001eb2 /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */#define XK_abrevehook 0x1001eb3 /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */#define XK_Abrevetilde 0x1001eb4 /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */#define XK_abrevetilde 0x1001eb5 /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */#define XK_Abrevebelowdot 0x1001eb6 /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */#define XK_abrevebelowdot 0x1001eb7 /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */#define XK_Ebelowdot 0x1001eb8 /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */#define XK_ebelowdot 0x1001eb9 /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */#define XK_Ehook 0x1001eba /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */#define XK_ehook 0x1001ebb /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */#define XK_Etilde 0x1001ebc /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */#define XK_etilde 0x1001ebd /* U+1EBD LATIN SMALL LETTER E WITH TILDE */#define XK_Ecircumflexacute 0x1001ebe /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */#define XK_ecircumflexacute 0x1001ebf /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */#define XK_Ecircumflexgrave 0x1001ec0 /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */#define XK_ecircumflexgrave 0x1001ec1 /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */#define XK_Ecircumflexhook 0x1001ec2 /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */#define XK_ecircumflexhook 0x1001ec3 /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */#define XK_Ecircumflextilde 0x1001ec4 /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */#define XK_ecircumflextilde 0x1001ec5 /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */#define XK_Ecircumflexbelowdot 0x1001ec6 /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */#define XK_ecircumflexbelowdot 0x1001ec7 /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */#define XK_Ihook 0x1001ec8 /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */#define XK_ihook 0x1001ec9 /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */#define XK_Ibelowdot 0x1001eca /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */#define XK_ibelowdot 0x1001ecb /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */#define XK_Obelowdot 0x1001ecc /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */#define XK_obelowdot 0x1001ecd /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */#define XK_Ohook 0x1001ece /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */#define XK_ohook 0x1001ecf /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */#define XK_Ocircumflexacute 0x1001ed0 /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */#define XK_ocircumflexacute 0x1001ed1 /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */#define XK_Ocircumflexgrave 0x1001ed2 /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */#define XK_ocircumflexgrave 0x1001ed3 /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */#define XK_Ocircumflexhook 0x1001ed4 /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */#define XK_ocircumflexhook 0x1001ed5 /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */#define XK_Ocircumflextilde 0x1001ed6 /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */#define XK_ocircumflextilde 0x1001ed7 /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */#define XK_Ocircumflexbelowdot 0x1001ed8 /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */#define XK_ocircumflexbelowdot 0x1001ed9 /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */#define XK_Ohornacute 0x1001eda /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */#define XK_ohornacute 0x1001edb /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */#define XK_Ohorngrave 0x1001edc /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */#define XK_ohorngrave 0x1001edd /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */#define XK_Ohornhook 0x1001ede /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */#define XK_ohornhook 0x1001edf /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */#define XK_Ohorntilde 0x1001ee0 /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */#define XK_ohorntilde 0x1001ee1 /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */#define XK_Ohornbelowdot 0x1001ee2 /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */#define XK_ohornbelowdot 0x1001ee3 /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */#define XK_Ubelowdot 0x1001ee4 /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */#define XK_ubelowdot 0x1001ee5 /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */#define XK_Uhook 0x1001ee6 /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */#define XK_uhook 0x1001ee7 /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */#define XK_Uhornacute 0x1001ee8 /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */#define XK_uhornacute 0x1001ee9 /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */#define XK_Uhorngrave 0x1001eea /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */#define XK_uhorngrave 0x1001eeb /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */#define XK_Uhornhook 0x1001eec /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */#define XK_uhornhook 0x1001eed /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */#define XK_Uhorntilde 0x1001eee /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */#define XK_uhorntilde 0x1001eef /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */#define XK_Uhornbelowdot 0x1001ef0 /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */#define XK_uhornbelowdot 0x1001ef1 /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */#define XK_Ybelowdot 0x1001ef4 /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */#define XK_ybelowdot 0x1001ef5 /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */#define XK_Yhook 0x1001ef6 /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */#define XK_yhook 0x1001ef7 /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */#define XK_Ytilde 0x1001ef8 /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */#define XK_ytilde 0x1001ef9 /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */#define XK_Ohorn 0x10001a0 /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */#define XK_ohorn 0x10001a1 /* U+01A1 LATIN SMALL LETTER O WITH HORN */#define XK_Uhorn 0x10001af /* U+01AF LATIN CAPITAL LETTER U WITH HORN */#define XK_uhorn 0x10001b0 /* U+01B0 LATIN SMALL LETTER U WITH HORN */#endif /* XK_VIETNAMESE */#ifdef XK_CURRENCY#define XK_EcuSign 0x10020a0 /* U+20A0 EURO-CURRENCY SIGN */#define XK_ColonSign 0x10020a1 /* U+20A1 COLON SIGN */#define XK_CruzeiroSign 0x10020a2 /* U+20A2 CRUZEIRO SIGN */#define XK_FFrancSign 0x10020a3 /* U+20A3 FRENCH FRANC SIGN */#define XK_LiraSign 0x10020a4 /* U+20A4 LIRA SIGN */#define XK_MillSign 0x10020a5 /* U+20A5 MILL SIGN */#define XK_NairaSign 0x10020a6 /* U+20A6 NAIRA SIGN */#define XK_PesetaSign 0x10020a7 /* U+20A7 PESETA SIGN */#define XK_RupeeSign 0x10020a8 /* U+20A8 RUPEE SIGN */#define XK_WonSign 0x10020a9 /* U+20A9 WON SIGN */#define XK_NewSheqelSign 0x10020aa /* U+20AA NEW SHEQEL SIGN */#define XK_DongSign 0x10020ab /* U+20AB DONG SIGN */#define XK_EuroSign 0x20ac /* U+20AC EURO SIGN */#endif /* XK_CURRENCY */
{.deadCodeElim: on.}##Converted from X11/keysym.h and X11/keysymdef.h##Capital letter consts renamed from XK_... to XKc_...# (since Pascal isn't case-sensitive)##i.e.#C Pascal#XK_a XK_a#XK_A XKc_A##* default keysyms *import xconstXK_VoidSymbol*: KeySym = 0x00FFFFFF # void symbolwhen defined(XK_MISCELLANY) or true:const#*# * TTY Functions, cleverly chosen to map to ascii, for convenience of# * programming, but could have been arbitrary (at the cost of lookup# * tables in client code.# *XK_BackSpace*: KeySym = 0x0000FF08 # back space, back charXK_Tab*: KeySym = 0x0000FF09XK_Linefeed*: KeySym = 0x0000FF0A # Linefeed, LFXK_Clear*: KeySym = 0x0000FF0BXK_Return*: KeySym = 0x0000FF0D # Return, enterXK_Pause*: KeySym = 0x0000FF13 # Pause, holdXK_Scroll_Lock*: KeySym = 0x0000FF14XK_Sys_Req*: KeySym = 0x0000FF15XK_Escape*: KeySym = 0x0000FF1BXK_Delete*: KeySym = 0x0000FFFF # Delete, rubout \# International & multi-key character compositionXK_Multi_key*: KeySym = 0x0000FF20 # Multi-key character composeXK_Codeinput*: KeySym = 0x0000FF37XK_SingleCandidate*: KeySym = 0x0000FF3CXK_MultipleCandidate*: KeySym = 0x0000FF3DXK_PreviousCandidate*: KeySym = 0x0000FF3E # Japanese keyboard supportXK_Kanji*: KeySym = 0x0000FF21 # Kanji, Kanji convertXK_Muhenkan*: KeySym = 0x0000FF22 # Cancel ConversionXK_Henkan_Mode*: KeySym = 0x0000FF23 # Start/Stop ConversionXK_Henkan*: KeySym = 0x0000FF23 # Alias for Henkan_ModeXK_Romaji*: KeySym = 0x0000FF24 # to RomajiXK_Hiragana*: KeySym = 0x0000FF25 # to HiraganaXK_Katakana*: KeySym = 0x0000FF26 # to KatakanaXK_Hiragana_Katakana*: KeySym = 0x0000FF27 # Hiragana/Katakana toggleXK_Zenkaku*: KeySym = 0x0000FF28 # to ZenkakuXK_Hankaku*: KeySym = 0x0000FF29 # to HankakuXK_Zenkaku_Hankaku*: KeySym = 0x0000FF2A # Zenkaku/Hankaku toggleXK_Touroku*: KeySym = 0x0000FF2B # Add to DictionaryXK_Massyo*: KeySym = 0x0000FF2C # Delete from DictionaryXK_Kana_Lock*: KeySym = 0x0000FF2D # Kana LockXK_Kana_Shift*: KeySym = 0x0000FF2E # Kana ShiftXK_Eisu_Shift*: KeySym = 0x0000FF2F # Alphanumeric ShiftXK_Eisu_toggle*: KeySym = 0x0000FF30 # Alphanumeric toggleXK_Kanji_Bangou*: KeySym = 0x0000FF37 # CodeinputXK_Zen_Koho*: KeySym = 0x0000FF3D # Multiple/All Candidate(s)XK_Mae_Koho*: KeySym = 0x0000FF3E # Previous Candidate \# = $FF31 thru = $FF3F are under XK_KOREAN# Cursor control & motionXK_Home*: KeySym = 0x0000FF50XK_Left*: KeySym = 0x0000FF51 # Move left, left arrowXK_Up*: KeySym = 0x0000FF52 # Move up, up arrowXK_Right*: KeySym = 0x0000FF53 # Move right, right arrowXK_Down*: KeySym = 0x0000FF54 # Move down, down arrowXK_Prior*: KeySym = 0x0000FF55 # Prior, previousXK_Page_Up*: KeySym = 0x0000FF55XK_Next*: KeySym = 0x0000FF56 # NextXK_Page_Down*: KeySym = 0x0000FF56XK_End*: KeySym = 0x0000FF57 # EOLXK_Begin*: KeySym = 0x0000FF58 # BOL \# Misc FunctionsXK_Select*: KeySym = 0x0000FF60 # Select, markXK_Print*: KeySym = 0x0000FF61XK_Execute*: KeySym = 0x0000FF62 # Execute, run, doXK_Insert*: KeySym = 0x0000FF63 # Insert, insert hereXK_Undo*: KeySym = 0x0000FF65 # Undo, oopsXK_Redo*: KeySym = 0x0000FF66 # redo, againXK_Menu*: KeySym = 0x0000FF67XK_Find*: KeySym = 0x0000FF68 # Find, searchXK_Cancel*: KeySym = 0x0000FF69 # Cancel, stop, abort, exitXK_Help*: KeySym = 0x0000FF6A # HelpXK_Break*: KeySym = 0x0000FF6BXK_Mode_switch*: KeySym = 0x0000FF7E # Character set switchXK_script_switch*: KeySym = 0x0000FF7E # Alias for mode_switchXK_Num_Lock*: KeySym = 0x0000FF7F # Keypad Functions, keypad numbers cleverly chosen to map to asciiXK_KP_Space*: KeySym = 0x0000FF80 # spaceXK_KP_Tab*: KeySym = 0x0000FF89XK_KP_Enter*: KeySym = 0x0000FF8D # enterXK_KP_F1*: KeySym = 0x0000FF91 # PF1, KP_A, ...XK_KP_F2*: KeySym = 0x0000FF92XK_KP_F3*: KeySym = 0x0000FF93XK_KP_F4*: KeySym = 0x0000FF94XK_KP_Home*: KeySym = 0x0000FF95XK_KP_Left*: KeySym = 0x0000FF96XK_KP_Up*: KeySym = 0x0000FF97XK_KP_Right*: KeySym = 0x0000FF98XK_KP_Down*: KeySym = 0x0000FF99XK_KP_Prior*: KeySym = 0x0000FF9AXK_KP_Page_Up*: KeySym = 0x0000FF9AXK_KP_Next*: KeySym = 0x0000FF9BXK_KP_Page_Down*: KeySym = 0x0000FF9BXK_KP_End*: KeySym = 0x0000FF9CXK_KP_Begin*: KeySym = 0x0000FF9DXK_KP_Insert*: KeySym = 0x0000FF9EXK_KP_Delete*: KeySym = 0x0000FF9FXK_KP_Equal*: KeySym = 0x0000FFBD # equalsXK_KP_Multiply*: KeySym = 0x0000FFAAXK_KP_Add*: KeySym = 0x0000FFABXK_KP_Separator*: KeySym = 0x0000FFAC # separator, often commaXK_KP_Subtract*: KeySym = 0x0000FFADXK_KP_Decimal*: KeySym = 0x0000FFAEXK_KP_Divide*: KeySym = 0x0000FFAFXK_KP_0*: KeySym = 0x0000FFB0XK_KP_1*: KeySym = 0x0000FFB1XK_KP_2*: KeySym = 0x0000FFB2XK_KP_3*: KeySym = 0x0000FFB3XK_KP_4*: KeySym = 0x0000FFB4XK_KP_5*: KeySym = 0x0000FFB5XK_KP_6*: KeySym = 0x0000FFB6XK_KP_7*: KeySym = 0x0000FFB7XK_KP_8*: KeySym = 0x0000FFB8XK_KP_9*: KeySym = 0x0000FFB9 #*\# * Auxilliary Functions; note the duplicate definitions for left and right# * function keys; Sun keyboards and a few other manufactures have such# * function key groups on the left and/or right sides of the keyboard.# * We've not found a keyboard with more than 35 function keys total.# *XK_F1*: KeySym = 0x0000FFBEXK_F2*: KeySym = 0x0000FFBFXK_F3*: KeySym = 0x0000FFC0XK_F4*: KeySym = 0x0000FFC1XK_F5*: KeySym = 0x0000FFC2XK_F6*: KeySym = 0x0000FFC3XK_F7*: KeySym = 0x0000FFC4XK_F8*: KeySym = 0x0000FFC5XK_F9*: KeySym = 0x0000FFC6XK_F10*: KeySym = 0x0000FFC7XK_F11*: KeySym = 0x0000FFC8XK_L1*: KeySym = 0x0000FFC8XK_F12*: KeySym = 0x0000FFC9XK_L2*: KeySym = 0x0000FFC9XK_F13*: KeySym = 0x0000FFCAXK_L3*: KeySym = 0x0000FFCAXK_F14*: KeySym = 0x0000FFCBXK_L4*: KeySym = 0x0000FFCBXK_F15*: KeySym = 0x0000FFCCXK_L5*: KeySym = 0x0000FFCCXK_F16*: KeySym = 0x0000FFCDXK_L6*: KeySym = 0x0000FFCDXK_F17*: KeySym = 0x0000FFCEXK_L7*: KeySym = 0x0000FFCEXK_F18*: KeySym = 0x0000FFCFXK_L8*: KeySym = 0x0000FFCFXK_F19*: KeySym = 0x0000FFD0XK_L9*: KeySym = 0x0000FFD0XK_F20*: KeySym = 0x0000FFD1XK_L10*: KeySym = 0x0000FFD1XK_F21*: KeySym = 0x0000FFD2XK_R1*: KeySym = 0x0000FFD2XK_F22*: KeySym = 0x0000FFD3XK_R2*: KeySym = 0x0000FFD3XK_F23*: KeySym = 0x0000FFD4XK_R3*: KeySym = 0x0000FFD4XK_F24*: KeySym = 0x0000FFD5XK_R4*: KeySym = 0x0000FFD5XK_F25*: KeySym = 0x0000FFD6XK_R5*: KeySym = 0x0000FFD6XK_F26*: KeySym = 0x0000FFD7XK_R6*: KeySym = 0x0000FFD7XK_F27*: KeySym = 0x0000FFD8XK_R7*: KeySym = 0x0000FFD8XK_F28*: KeySym = 0x0000FFD9XK_R8*: KeySym = 0x0000FFD9XK_F29*: KeySym = 0x0000FFDAXK_R9*: KeySym = 0x0000FFDAXK_F30*: KeySym = 0x0000FFDBXK_R10*: KeySym = 0x0000FFDBXK_F31*: KeySym = 0x0000FFDCXK_R11*: KeySym = 0x0000FFDCXK_F32*: KeySym = 0x0000FFDDXK_R12*: KeySym = 0x0000FFDDXK_F33*: KeySym = 0x0000FFDEXK_R13*: KeySym = 0x0000FFDEXK_F34*: KeySym = 0x0000FFDFXK_R14*: KeySym = 0x0000FFDFXK_F35*: KeySym = 0x0000FFE0XK_R15*: KeySym = 0x0000FFE0 # ModifiersXK_Shift_L*: KeySym = 0x0000FFE1 # Left shiftXK_Shift_R*: KeySym = 0x0000FFE2 # Right shiftXK_Control_L*: KeySym = 0x0000FFE3 # Left controlXK_Control_R*: KeySym = 0x0000FFE4 # Right controlXK_Caps_Lock*: KeySym = 0x0000FFE5 # Caps lockXK_Shift_Lock*: KeySym = 0x0000FFE6 # Shift lockXK_Meta_L*: KeySym = 0x0000FFE7 # Left metaXK_Meta_R*: KeySym = 0x0000FFE8 # Right metaXK_Alt_L*: KeySym = 0x0000FFE9 # Left altXK_Alt_R*: KeySym = 0x0000FFEA # Right altXK_Super_L*: KeySym = 0x0000FFEB # Left superXK_Super_R*: KeySym = 0x0000FFEC # Right superXK_Hyper_L*: KeySym = 0x0000FFED # Left hyperXK_Hyper_R*: KeySym = 0x0000FFEE # Right hyper# XK_MISCELLANY#*# * ISO 9995 Function and Modifier Keys# * Byte 3 = = $FE# *when defined(XK_XKB_KEYS) or true:constXK_ISO_Lock*: KeySym = 0x0000FE01XK_ISO_Level2_Latch*: KeySym = 0x0000FE02XK_ISO_Level3_Shift*: KeySym = 0x0000FE03XK_ISO_Level3_Latch*: KeySym = 0x0000FE04XK_ISO_Level3_Lock*: KeySym = 0x0000FE05XK_ISO_Group_Shift*: KeySym = 0x0000FF7E # Alias for mode_switchXK_ISO_Group_Latch*: KeySym = 0x0000FE06XK_ISO_Group_Lock*: KeySym = 0x0000FE07XK_ISO_Next_Group*: KeySym = 0x0000FE08XK_ISO_Next_Group_Lock*: KeySym = 0x0000FE09XK_ISO_Prev_Group*: KeySym = 0x0000FE0AXK_ISO_Prev_Group_Lock*: KeySym = 0x0000FE0BXK_ISO_First_Group*: KeySym = 0x0000FE0CXK_ISO_First_Group_Lock*: KeySym = 0x0000FE0DXK_ISO_Last_Group*: KeySym = 0x0000FE0EXK_ISO_Last_Group_Lock*: KeySym = 0x0000FE0FXK_ISO_Left_Tab*: KeySym = 0x0000FE20XK_ISO_Move_Line_Up*: KeySym = 0x0000FE21XK_ISO_Move_Line_Down*: KeySym = 0x0000FE22XK_ISO_Partial_Line_Up*: KeySym = 0x0000FE23XK_ISO_Partial_Line_Down*: KeySym = 0x0000FE24XK_ISO_Partial_Space_Left*: KeySym = 0x0000FE25XK_ISO_Partial_Space_Right*: KeySym = 0x0000FE26XK_ISO_Set_Margin_Left*: KeySym = 0x0000FE27XK_ISO_Set_Margin_Right*: KeySym = 0x0000FE28XK_ISO_Release_Margin_Left*: KeySym = 0x0000FE29XK_ISO_Release_Margin_Right*: KeySym = 0x0000FE2AXK_ISO_Release_Both_Margins*: KeySym = 0x0000FE2BXK_ISO_Fast_Cursor_Left*: KeySym = 0x0000FE2CXK_ISO_Fast_Cursor_Right*: KeySym = 0x0000FE2DXK_ISO_Fast_Cursor_Up*: KeySym = 0x0000FE2EXK_ISO_Fast_Cursor_Down*: KeySym = 0x0000FE2FXK_ISO_Continuous_Underline*: KeySym = 0x0000FE30XK_ISO_Discontinuous_Underline*: KeySym = 0x0000FE31XK_ISO_Emphasize*: KeySym = 0x0000FE32XK_ISO_Center_Object*: KeySym = 0x0000FE33XK_ISO_Enter*: KeySym = 0x0000FE34XK_dead_grave*: KeySym = 0x0000FE50XK_dead_acute*: KeySym = 0x0000FE51XK_dead_circumflex*: KeySym = 0x0000FE52XK_dead_tilde*: KeySym = 0x0000FE53XK_dead_macron*: KeySym = 0x0000FE54XK_dead_breve*: KeySym = 0x0000FE55XK_dead_abovedot*: KeySym = 0x0000FE56XK_dead_diaeresis*: KeySym = 0x0000FE57XK_dead_abovering*: KeySym = 0x0000FE58XK_dead_doubleacute*: KeySym = 0x0000FE59XK_dead_caron*: KeySym = 0x0000FE5AXK_dead_cedilla*: KeySym = 0x0000FE5BXK_dead_ogonek*: KeySym = 0x0000FE5CXK_dead_iota*: KeySym = 0x0000FE5DXK_dead_voiced_sound*: KeySym = 0x0000FE5EXK_dead_semivoiced_sound*: KeySym = 0x0000FE5FXK_dead_belowdot*: KeySym = 0x0000FE60XK_dead_hook*: KeySym = 0x0000FE61XK_dead_horn*: KeySym = 0x0000FE62XK_First_Virtual_Screen*: KeySym = 0x0000FED0XK_Prev_Virtual_Screen*: KeySym = 0x0000FED1XK_Next_Virtual_Screen*: KeySym = 0x0000FED2XK_Last_Virtual_Screen*: KeySym = 0x0000FED4XK_Terminate_Server*: KeySym = 0x0000FED5XK_AccessX_Enable*: KeySym = 0x0000FE70XK_AccessX_Feedback_Enable*: KeySym = 0x0000FE71XK_RepeatKeys_Enable*: KeySym = 0x0000FE72XK_SlowKeys_Enable*: KeySym = 0x0000FE73XK_BounceKeys_Enable*: KeySym = 0x0000FE74XK_StickyKeys_Enable*: KeySym = 0x0000FE75XK_MouseKeys_Enable*: KeySym = 0x0000FE76XK_MouseKeys_Accel_Enable*: KeySym = 0x0000FE77XK_Overlay1_Enable*: KeySym = 0x0000FE78XK_Overlay2_Enable*: KeySym = 0x0000FE79XK_AudibleBell_Enable*: KeySym = 0x0000FE7AXK_Pointer_Left*: KeySym = 0x0000FEE0XK_Pointer_Right*: KeySym = 0x0000FEE1XK_Pointer_Up*: KeySym = 0x0000FEE2XK_Pointer_Down*: KeySym = 0x0000FEE3XK_Pointer_UpLeft*: KeySym = 0x0000FEE4XK_Pointer_UpRight*: KeySym = 0x0000FEE5XK_Pointer_DownLeft*: KeySym = 0x0000FEE6XK_Pointer_DownRight*: KeySym = 0x0000FEE7XK_Pointer_Button_Dflt*: KeySym = 0x0000FEE8XK_Pointer_Button1*: KeySym = 0x0000FEE9XK_Pointer_Button2*: KeySym = 0x0000FEEAXK_Pointer_Button3*: KeySym = 0x0000FEEBXK_Pointer_Button4*: KeySym = 0x0000FEECXK_Pointer_Button5*: KeySym = 0x0000FEEDXK_Pointer_DblClick_Dflt*: KeySym = 0x0000FEEEXK_Pointer_DblClick1*: KeySym = 0x0000FEEFXK_Pointer_DblClick2*: KeySym = 0x0000FEF0XK_Pointer_DblClick3*: KeySym = 0x0000FEF1XK_Pointer_DblClick4*: KeySym = 0x0000FEF2XK_Pointer_DblClick5*: KeySym = 0x0000FEF3XK_Pointer_Drag_Dflt*: KeySym = 0x0000FEF4XK_Pointer_Drag1*: KeySym = 0x0000FEF5XK_Pointer_Drag2*: KeySym = 0x0000FEF6XK_Pointer_Drag3*: KeySym = 0x0000FEF7XK_Pointer_Drag4*: KeySym = 0x0000FEF8XK_Pointer_Drag5*: KeySym = 0x0000FEFDXK_Pointer_EnableKeys*: KeySym = 0x0000FEF9XK_Pointer_Accelerate*: KeySym = 0x0000FEFAXK_Pointer_DfltBtnNext*: KeySym = 0x0000FEFBXK_Pointer_DfltBtnPrev*: KeySym = 0x0000FEFC#*# * 3270 Terminal Keys# * Byte 3 = = $FD# *when defined(XK_3270) or true:constXK_3270_Duplicate*: KeySym = 0x0000FD01XK_3270_FieldMark*: KeySym = 0x0000FD02XK_3270_Right2*: KeySym = 0x0000FD03XK_3270_Left2*: KeySym = 0x0000FD04XK_3270_BackTab*: KeySym = 0x0000FD05XK_3270_EraseEOF*: KeySym = 0x0000FD06XK_3270_EraseInput*: KeySym = 0x0000FD07XK_3270_Reset*: KeySym = 0x0000FD08XK_3270_Quit*: KeySym = 0x0000FD09XK_3270_PA1*: KeySym = 0x0000FD0AXK_3270_PA2*: KeySym = 0x0000FD0BXK_3270_PA3*: KeySym = 0x0000FD0CXK_3270_Test*: KeySym = 0x0000FD0DXK_3270_Attn*: KeySym = 0x0000FD0EXK_3270_CursorBlink*: KeySym = 0x0000FD0FXK_3270_AltCursor*: KeySym = 0x0000FD10XK_3270_KeyClick*: KeySym = 0x0000FD11XK_3270_Jump*: KeySym = 0x0000FD12XK_3270_Ident*: KeySym = 0x0000FD13XK_3270_Rule*: KeySym = 0x0000FD14XK_3270_Copy*: KeySym = 0x0000FD15XK_3270_Play*: KeySym = 0x0000FD16XK_3270_Setup*: KeySym = 0x0000FD17XK_3270_Record*: KeySym = 0x0000FD18XK_3270_ChangeScreen*: KeySym = 0x0000FD19XK_3270_DeleteWord*: KeySym = 0x0000FD1AXK_3270_ExSelect*: KeySym = 0x0000FD1BXK_3270_CursorSelect*: KeySym = 0x0000FD1CXK_3270_PrintScreen*: KeySym = 0x0000FD1DXK_3270_Enter*: KeySym = 0x0000FD1E#*# * Latin 1# * Byte 3 = 0# *when defined(XK_LATIN1) or true:constXK_space*: KeySym = 0x00000020XK_exclam*: KeySym = 0x00000021XK_quotedbl*: KeySym = 0x00000022XK_numbersign*: KeySym = 0x00000023XK_dollar*: KeySym = 0x00000024XK_percent*: KeySym = 0x00000025XK_ampersand*: KeySym = 0x00000026XK_apostrophe*: KeySym = 0x00000027XK_quoteright*: KeySym = 0x00000027 # deprecatedXK_parenleft*: KeySym = 0x00000028XK_parenright*: KeySym = 0x00000029XK_asterisk*: KeySym = 0x0000002AXK_plus*: KeySym = 0x0000002BXK_comma*: KeySym = 0x0000002CXK_minus*: KeySym = 0x0000002DXK_period*: KeySym = 0x0000002EXK_slash*: KeySym = 0x0000002FXK_0*: KeySym = 0x00000030XK_1*: KeySym = 0x00000031XK_2*: KeySym = 0x00000032XK_3*: KeySym = 0x00000033XK_4*: KeySym = 0x00000034XK_5*: KeySym = 0x00000035XK_6*: KeySym = 0x00000036XK_7*: KeySym = 0x00000037XK_8*: KeySym = 0x00000038XK_9*: KeySym = 0x00000039XK_colon*: KeySym = 0x0000003AXK_semicolon*: KeySym = 0x0000003BXK_less*: KeySym = 0x0000003CXK_equal*: KeySym = 0x0000003DXK_greater*: KeySym = 0x0000003EXK_question*: KeySym = 0x0000003FXK_at*: KeySym = 0x00000040XKc_A*: KeySym = 0x00000041XKc_B*: KeySym = 0x00000042XKc_C*: KeySym = 0x00000043XKc_D*: KeySym = 0x00000044XKc_E*: KeySym = 0x00000045XKc_F*: KeySym = 0x00000046XKc_G*: KeySym = 0x00000047XKc_H*: KeySym = 0x00000048XKc_I*: KeySym = 0x00000049XKc_J*: KeySym = 0x0000004AXKc_K*: KeySym = 0x0000004BXKc_L*: KeySym = 0x0000004CXKc_M*: KeySym = 0x0000004DXKc_N*: KeySym = 0x0000004EXKc_O*: KeySym = 0x0000004FXKc_P*: KeySym = 0x00000050XKc_Q*: KeySym = 0x00000051XKc_R*: KeySym = 0x00000052XKc_S*: KeySym = 0x00000053XKc_T*: KeySym = 0x00000054XKc_U*: KeySym = 0x00000055XKc_V*: KeySym = 0x00000056XKc_W*: KeySym = 0x00000057XKc_X*: KeySym = 0x00000058XKc_Y*: KeySym = 0x00000059XKc_Z*: KeySym = 0x0000005AXK_bracketleft*: KeySym = 0x0000005BXK_backslash*: KeySym = 0x0000005CXK_bracketright*: KeySym = 0x0000005DXK_asciicircum*: KeySym = 0x0000005EXK_underscore*: KeySym = 0x0000005FXK_grave*: KeySym = 0x00000060XK_quoteleft*: KeySym = 0x00000060 # deprecatedXK_a*: KeySym = 0x00000061XK_b*: KeySym = 0x00000062XK_c*: KeySym = 0x00000063XK_d*: KeySym = 0x00000064XK_e*: KeySym = 0x00000065XK_f*: KeySym = 0x00000066XK_g*: KeySym = 0x00000067XK_h*: KeySym = 0x00000068XK_i*: KeySym = 0x00000069XK_j*: KeySym = 0x0000006AXK_k*: KeySym = 0x0000006BXK_l*: KeySym = 0x0000006CXK_m*: KeySym = 0x0000006DXK_n*: KeySym = 0x0000006EXK_o*: KeySym = 0x0000006FXK_p*: KeySym = 0x00000070XK_q*: KeySym = 0x00000071XK_r*: KeySym = 0x00000072XK_s*: KeySym = 0x00000073XK_t*: KeySym = 0x00000074XK_u*: KeySym = 0x00000075XK_v*: KeySym = 0x00000076XK_w*: KeySym = 0x00000077XK_x*: KeySym = 0x00000078XK_y*: KeySym = 0x00000079XK_z*: KeySym = 0x0000007AXK_braceleft*: KeySym = 0x0000007BXK_bar*: KeySym = 0x0000007CXK_braceright*: KeySym = 0x0000007DXK_asciitilde*: KeySym = 0x0000007EXK_nobreakspace*: KeySym = 0x000000A0XK_exclamdown*: KeySym = 0x000000A1XK_cent*: KeySym = 0x000000A2XK_sterling*: KeySym = 0x000000A3XK_currency*: KeySym = 0x000000A4XK_yen*: KeySym = 0x000000A5XK_brokenbar*: KeySym = 0x000000A6XK_section*: KeySym = 0x000000A7XK_diaeresis*: KeySym = 0x000000A8XK_copyright*: KeySym = 0x000000A9XK_ordfeminine*: KeySym = 0x000000AAXK_guillemotleft*: KeySym = 0x000000AB # left angle quotation markXK_notsign*: KeySym = 0x000000ACXK_hyphen*: KeySym = 0x000000ADXK_registered*: KeySym = 0x000000AEXK_macron*: KeySym = 0x000000AFXK_degree*: KeySym = 0x000000B0XK_plusminus*: KeySym = 0x000000B1XK_twosuperior*: KeySym = 0x000000B2XK_threesuperior*: KeySym = 0x000000B3XK_acute*: KeySym = 0x000000B4XK_mu*: KeySym = 0x000000B5XK_paragraph*: KeySym = 0x000000B6XK_periodcentered*: KeySym = 0x000000B7XK_cedilla*: KeySym = 0x000000B8XK_onesuperior*: KeySym = 0x000000B9XK_masculine*: KeySym = 0x000000BAXK_guillemotright*: KeySym = 0x000000BB # right angle quotation markXK_onequarter*: KeySym = 0x000000BCXK_onehalf*: KeySym = 0x000000BDXK_threequarters*: KeySym = 0x000000BEXK_questiondown*: KeySym = 0x000000BFXKc_Agrave*: KeySym = 0x000000C0XKc_Aacute*: KeySym = 0x000000C1XKc_Acircumflex*: KeySym = 0x000000C2XKc_Atilde*: KeySym = 0x000000C3XKc_Adiaeresis*: KeySym = 0x000000C4XKc_Aring*: KeySym = 0x000000C5XKc_AE*: KeySym = 0x000000C6XKc_Ccedilla*: KeySym = 0x000000C7XKc_Egrave*: KeySym = 0x000000C8XKc_Eacute*: KeySym = 0x000000C9XKc_Ecircumflex*: KeySym = 0x000000CAXKc_Ediaeresis*: KeySym = 0x000000CBXKc_Igrave*: KeySym = 0x000000CCXKc_Iacute*: KeySym = 0x000000CDXKc_Icircumflex*: KeySym = 0x000000CEXKc_Idiaeresis*: KeySym = 0x000000CFXKc_ETH*: KeySym = 0x000000D0XKc_Ntilde*: KeySym = 0x000000D1XKc_Ograve*: KeySym = 0x000000D2XKc_Oacute*: KeySym = 0x000000D3XKc_Ocircumflex*: KeySym = 0x000000D4XKc_Otilde*: KeySym = 0x000000D5XKc_Odiaeresis*: KeySym = 0x000000D6XK_multiply*: KeySym = 0x000000D7XKc_Ooblique*: KeySym = 0x000000D8XKc_Oslash*: KeySym = XKc_OobliqueXKc_Ugrave*: KeySym = 0x000000D9XKc_Uacute*: KeySym = 0x000000DAXKc_Ucircumflex*: KeySym = 0x000000DBXKc_Udiaeresis*: KeySym = 0x000000DCXKc_Yacute*: KeySym = 0x000000DDXKc_THORN*: KeySym = 0x000000DEXK_ssharp*: KeySym = 0x000000DFXK_agrave*: KeySym = 0x000000E0XK_aacute*: KeySym = 0x000000E1XK_acircumflex*: KeySym = 0x000000E2XK_atilde*: KeySym = 0x000000E3XK_adiaeresis*: KeySym = 0x000000E4XK_aring*: KeySym = 0x000000E5XK_ae*: KeySym = 0x000000E6XK_ccedilla*: KeySym = 0x000000E7XK_egrave*: KeySym = 0x000000E8XK_eacute*: KeySym = 0x000000E9XK_ecircumflex*: KeySym = 0x000000EAXK_ediaeresis*: KeySym = 0x000000EBXK_igrave*: KeySym = 0x000000ECXK_iacute*: KeySym = 0x000000EDXK_icircumflex*: KeySym = 0x000000EEXK_idiaeresis*: KeySym = 0x000000EFXK_eth*: KeySym = 0x000000F0XK_ntilde*: KeySym = 0x000000F1XK_ograve*: KeySym = 0x000000F2XK_oacute*: KeySym = 0x000000F3XK_ocircumflex*: KeySym = 0x000000F4XK_otilde*: KeySym = 0x000000F5XK_odiaeresis*: KeySym = 0x000000F6XK_division*: KeySym = 0x000000F7XK_oslash*: KeySym = 0x000000F8XK_ooblique*: KeySym = XK_oslashXK_ugrave*: KeySym = 0x000000F9XK_uacute*: KeySym = 0x000000FAXK_ucircumflex*: KeySym = 0x000000FBXK_udiaeresis*: KeySym = 0x000000FCXK_yacute*: KeySym = 0x000000FDXK_thorn*: KeySym = 0x000000FEXK_ydiaeresis*: KeySym = 0x000000FF# XK_LATIN1#*# * Latin 2# * Byte 3 = 1# *when defined(XK_LATIN2) or true:constXKc_Aogonek*: KeySym = 0x000001A1XK_breve*: KeySym = 0x000001A2XKc_Lstroke*: KeySym = 0x000001A3XKc_Lcaron*: KeySym = 0x000001A5XKc_Sacute*: KeySym = 0x000001A6XKc_Scaron*: KeySym = 0x000001A9XKc_Scedilla*: KeySym = 0x000001AAXKc_Tcaron*: KeySym = 0x000001ABXKc_Zacute*: KeySym = 0x000001ACXKc_Zcaron*: KeySym = 0x000001AEXKc_Zabovedot*: KeySym = 0x000001AFXK_aogonek*: KeySym = 0x000001B1XK_ogonek*: KeySym = 0x000001B2XK_lstroke*: KeySym = 0x000001B3XK_lcaron*: KeySym = 0x000001B5XK_sacute*: KeySym = 0x000001B6XK_caron*: KeySym = 0x000001B7XK_scaron*: KeySym = 0x000001B9XK_scedilla*: KeySym = 0x000001BAXK_tcaron*: KeySym = 0x000001BBXK_zacute*: KeySym = 0x000001BCXK_doubleacute*: KeySym = 0x000001BDXK_zcaron*: KeySym = 0x000001BEXK_zabovedot*: KeySym = 0x000001BFXKc_Racute*: KeySym = 0x000001C0XKc_Abreve*: KeySym = 0x000001C3XKc_Lacute*: KeySym = 0x000001C5XKc_Cacute*: KeySym = 0x000001C6XKc_Ccaron*: KeySym = 0x000001C8XKc_Eogonek*: KeySym = 0x000001CAXKc_Ecaron*: KeySym = 0x000001CCXKc_Dcaron*: KeySym = 0x000001CFXKc_Dstroke*: KeySym = 0x000001D0XKc_Nacute*: KeySym = 0x000001D1XKc_Ncaron*: KeySym = 0x000001D2XKc_Odoubleacute*: KeySym = 0x000001D5XKc_Rcaron*: KeySym = 0x000001D8XKc_Uring*: KeySym = 0x000001D9XKc_Udoubleacute*: KeySym = 0x000001DBXKc_Tcedilla*: KeySym = 0x000001DEXK_racute*: KeySym = 0x000001E0XK_abreve*: KeySym = 0x000001E3XK_lacute*: KeySym = 0x000001E5XK_cacute*: KeySym = 0x000001E6XK_ccaron*: KeySym = 0x000001E8XK_eogonek*: KeySym = 0x000001EAXK_ecaron*: KeySym = 0x000001ECXK_dcaron*: KeySym = 0x000001EFXK_dstroke*: KeySym = 0x000001F0XK_nacute*: KeySym = 0x000001F1XK_ncaron*: KeySym = 0x000001F2XK_odoubleacute*: KeySym = 0x000001F5XK_udoubleacute*: KeySym = 0x000001FBXK_rcaron*: KeySym = 0x000001F8XK_uring*: KeySym = 0x000001F9XK_tcedilla*: KeySym = 0x000001FEXK_abovedot*: KeySym = 0x000001FF# XK_LATIN2#*# * Latin 3# * Byte 3 = 2# *when defined(XK_LATIN3) or true:constXKc_Hstroke*: KeySym = 0x000002A1XKc_Hcircumflex*: KeySym = 0x000002A6XKc_Iabovedot*: KeySym = 0x000002A9XKc_Gbreve*: KeySym = 0x000002ABXKc_Jcircumflex*: KeySym = 0x000002ACXK_hstroke*: KeySym = 0x000002B1XK_hcircumflex*: KeySym = 0x000002B6XK_idotless*: KeySym = 0x000002B9XK_gbreve*: KeySym = 0x000002BBXK_jcircumflex*: KeySym = 0x000002BCXKc_Cabovedot*: KeySym = 0x000002C5XKc_Ccircumflex*: KeySym = 0x000002C6XKc_Gabovedot*: KeySym = 0x000002D5XKc_Gcircumflex*: KeySym = 0x000002D8XKc_Ubreve*: KeySym = 0x000002DDXKc_Scircumflex*: KeySym = 0x000002DEXK_cabovedot*: KeySym = 0x000002E5XK_ccircumflex*: KeySym = 0x000002E6XK_gabovedot*: KeySym = 0x000002F5XK_gcircumflex*: KeySym = 0x000002F8XK_ubreve*: KeySym = 0x000002FDXK_scircumflex*: KeySym = 0x000002FE# XK_LATIN3#*# * Latin 4# * Byte 3 = 3# *when defined(XK_LATIN4) or true:constXK_kra*: KeySym = 0x000003A2XK_kappa*: KeySym = 0x000003A2 # deprecatedXKc_Rcedilla*: KeySym = 0x000003A3XKc_Itilde*: KeySym = 0x000003A5XKc_Lcedilla*: KeySym = 0x000003A6XKc_Emacron*: KeySym = 0x000003AAXKc_Gcedilla*: KeySym = 0x000003ABXKc_Tslash*: KeySym = 0x000003ACXK_rcedilla*: KeySym = 0x000003B3XK_itilde*: KeySym = 0x000003B5XK_lcedilla*: KeySym = 0x000003B6XK_emacron*: KeySym = 0x000003BAXK_gcedilla*: KeySym = 0x000003BBXK_tslash*: KeySym = 0x000003BCXKc_ENG*: KeySym = 0x000003BDXK_eng*: KeySym = 0x000003BFXKc_Amacron*: KeySym = 0x000003C0XKc_Iogonek*: KeySym = 0x000003C7XKc_Eabovedot*: KeySym = 0x000003CCXKc_Imacron*: KeySym = 0x000003CFXKc_Ncedilla*: KeySym = 0x000003D1XKc_Omacron*: KeySym = 0x000003D2XKc_Kcedilla*: KeySym = 0x000003D3XKc_Uogonek*: KeySym = 0x000003D9XKc_Utilde*: KeySym = 0x000003DDXKc_Umacron*: KeySym = 0x000003DEXK_amacron*: KeySym = 0x000003E0XK_iogonek*: KeySym = 0x000003E7XK_eabovedot*: KeySym = 0x000003ECXK_imacron*: KeySym = 0x000003EFXK_ncedilla*: KeySym = 0x000003F1XK_omacron*: KeySym = 0x000003F2XK_kcedilla*: KeySym = 0x000003F3XK_uogonek*: KeySym = 0x000003F9XK_utilde*: KeySym = 0x000003FDXK_umacron*: KeySym = 0x000003FE# XK_LATIN4#*# * Latin-8# * Byte 3 = 18# *when defined(XK_LATIN8) or true:constXKc_Babovedot*: KeySym = 0x000012A1XK_babovedot*: KeySym = 0x000012A2XKc_Dabovedot*: KeySym = 0x000012A6XKc_Wgrave*: KeySym = 0x000012A8XKc_Wacute*: KeySym = 0x000012AAXK_dabovedot*: KeySym = 0x000012ABXKc_Ygrave*: KeySym = 0x000012ACXKc_Fabovedot*: KeySym = 0x000012B0XK_fabovedot*: KeySym = 0x000012B1XKc_Mabovedot*: KeySym = 0x000012B4XK_mabovedot*: KeySym = 0x000012B5XKc_Pabovedot*: KeySym = 0x000012B7XK_wgrave*: KeySym = 0x000012B8XK_pabovedot*: KeySym = 0x000012B9XK_wacute*: KeySym = 0x000012BAXKc_Sabovedot*: KeySym = 0x000012BBXK_ygrave*: KeySym = 0x000012BCXKc_Wdiaeresis*: KeySym = 0x000012BDXK_wdiaeresis*: KeySym = 0x000012BEXK_sabovedot*: KeySym = 0x000012BFXKc_Wcircumflex*: KeySym = 0x000012D0XKc_Tabovedot*: KeySym = 0x000012D7XKc_Ycircumflex*: KeySym = 0x000012DEXK_wcircumflex*: KeySym = 0x000012F0XK_tabovedot*: KeySym = 0x000012F7XK_ycircumflex*: KeySym = 0x000012FE# XK_LATIN8#*# * Latin-9 (a.k.a. Latin-0)# * Byte 3 = 19# *when defined(XK_LATIN9) or true:constXKc_OE*: KeySym = 0x000013BCXK_oe*: KeySym = 0x000013BDXKc_Ydiaeresis*: KeySym = 0x000013BE# XK_LATIN9#*# * Katakana# * Byte 3 = 4# *when defined(XK_KATAKANA) or true:constXK_overline*: KeySym = 0x0000047EXK_kana_fullstop*: KeySym = 0x000004A1XK_kana_openingbracket*: KeySym = 0x000004A2XK_kana_closingbracket*: KeySym = 0x000004A3XK_kana_comma*: KeySym = 0x000004A4XK_kana_conjunctive*: KeySym = 0x000004A5XK_kana_middledot*: KeySym = 0x000004A5 # deprecatedXKc_kana_WO*: KeySym = 0x000004A6XK_kana_a*: KeySym = 0x000004A7XK_kana_i*: KeySym = 0x000004A8XK_kana_u*: KeySym = 0x000004A9XK_kana_e*: KeySym = 0x000004AAXK_kana_o*: KeySym = 0x000004ABXK_kana_ya*: KeySym = 0x000004ACXK_kana_yu*: KeySym = 0x000004ADXK_kana_yo*: KeySym = 0x000004AEXK_kana_tsu*: KeySym = 0x000004AFXK_kana_tu*: KeySym = 0x000004AF # deprecatedXK_prolongedsound*: KeySym = 0x000004B0XKc_kana_A*: KeySym = 0x000004B1XKc_kana_I*: KeySym = 0x000004B2XKc_kana_U*: KeySym = 0x000004B3XKc_kana_E*: KeySym = 0x000004B4XKc_kana_O*: KeySym = 0x000004B5XKc_kana_KA*: KeySym = 0x000004B6XKc_kana_KI*: KeySym = 0x000004B7XKc_kana_KU*: KeySym = 0x000004B8XKc_kana_KE*: KeySym = 0x000004B9XKc_kana_KO*: KeySym = 0x000004BAXKc_kana_SA*: KeySym = 0x000004BBXKc_kana_SHI*: KeySym = 0x000004BCXKc_kana_SU*: KeySym = 0x000004BDXKc_kana_SE*: KeySym = 0x000004BEXKc_kana_SO*: KeySym = 0x000004BFXKc_kana_TA*: KeySym = 0x000004C0XKc_kana_CHI*: KeySym = 0x000004C1XKc_kana_TI*: KeySym = 0x000004C1 # deprecatedXKc_kana_TSU*: KeySym = 0x000004C2XKc_kana_TU*: KeySym = 0x000004C2 # deprecatedXKc_kana_TE*: KeySym = 0x000004C3XKc_kana_TO*: KeySym = 0x000004C4XKc_kana_NA*: KeySym = 0x000004C5XKc_kana_NI*: KeySym = 0x000004C6XKc_kana_NU*: KeySym = 0x000004C7XKc_kana_NE*: KeySym = 0x000004C8XKc_kana_NO*: KeySym = 0x000004C9XKc_kana_HA*: KeySym = 0x000004CAXKc_kana_HI*: KeySym = 0x000004CBXKc_kana_FU*: KeySym = 0x000004CCXKc_kana_HU*: KeySym = 0x000004CC # deprecatedXKc_kana_HE*: KeySym = 0x000004CDXKc_kana_HO*: KeySym = 0x000004CEXKc_kana_MA*: KeySym = 0x000004CFXKc_kana_MI*: KeySym = 0x000004D0XKc_kana_MU*: KeySym = 0x000004D1XKc_kana_ME*: KeySym = 0x000004D2XKc_kana_MO*: KeySym = 0x000004D3XKc_kana_YA*: KeySym = 0x000004D4XKc_kana_YU*: KeySym = 0x000004D5XKc_kana_YO*: KeySym = 0x000004D6XKc_kana_RA*: KeySym = 0x000004D7XKc_kana_RI*: KeySym = 0x000004D8XKc_kana_RU*: KeySym = 0x000004D9XKc_kana_RE*: KeySym = 0x000004DAXKc_kana_RO*: KeySym = 0x000004DBXKc_kana_WA*: KeySym = 0x000004DCXKc_kana_N*: KeySym = 0x000004DDXK_voicedsound*: KeySym = 0x000004DEXK_semivoicedsound*: KeySym = 0x000004DFXK_kana_switch*: KeySym = 0x0000FF7E # Alias for mode_switch# XK_KATAKANA#*# * Arabic# * Byte 3 = 5# *when defined(XK_ARABIC) or true:constXK_Farsi_0*: KeySym = 0x00000590XK_Farsi_1*: KeySym = 0x00000591XK_Farsi_2*: KeySym = 0x00000592XK_Farsi_3*: KeySym = 0x00000593XK_Farsi_4*: KeySym = 0x00000594XK_Farsi_5*: KeySym = 0x00000595XK_Farsi_6*: KeySym = 0x00000596XK_Farsi_7*: KeySym = 0x00000597XK_Farsi_8*: KeySym = 0x00000598XK_Farsi_9*: KeySym = 0x00000599XK_Arabic_percent*: KeySym = 0x000005A5XK_Arabic_superscript_alef*: KeySym = 0x000005A6XK_Arabic_tteh*: KeySym = 0x000005A7XK_Arabic_peh*: KeySym = 0x000005A8XK_Arabic_tcheh*: KeySym = 0x000005A9XK_Arabic_ddal*: KeySym = 0x000005AAXK_Arabic_rreh*: KeySym = 0x000005ABXK_Arabic_comma*: KeySym = 0x000005ACXK_Arabic_fullstop*: KeySym = 0x000005AEXK_Arabic_0*: KeySym = 0x000005B0XK_Arabic_1*: KeySym = 0x000005B1XK_Arabic_2*: KeySym = 0x000005B2XK_Arabic_3*: KeySym = 0x000005B3XK_Arabic_4*: KeySym = 0x000005B4XK_Arabic_5*: KeySym = 0x000005B5XK_Arabic_6*: KeySym = 0x000005B6XK_Arabic_7*: KeySym = 0x000005B7XK_Arabic_8*: KeySym = 0x000005B8XK_Arabic_9*: KeySym = 0x000005B9XK_Arabic_semicolon*: KeySym = 0x000005BBXK_Arabic_question_mark*: KeySym = 0x000005BFXK_Arabic_hamza*: KeySym = 0x000005C1XK_Arabic_maddaonalef*: KeySym = 0x000005C2XK_Arabic_hamzaonalef*: KeySym = 0x000005C3XK_Arabic_hamzaonwaw*: KeySym = 0x000005C4XK_Arabic_hamzaunderalef*: KeySym = 0x000005C5XK_Arabic_hamzaonyeh*: KeySym = 0x000005C6XK_Arabic_alef*: KeySym = 0x000005C7XK_Arabic_beh*: KeySym = 0x000005C8XK_Arabic_tehmarbuta*: KeySym = 0x000005C9XK_Arabic_teh*: KeySym = 0x000005CAXK_Arabic_theh*: KeySym = 0x000005CBXK_Arabic_jeem*: KeySym = 0x000005CCXK_Arabic_hah*: KeySym = 0x000005CDXK_Arabic_khah*: KeySym = 0x000005CEXK_Arabic_dal*: KeySym = 0x000005CFXK_Arabic_thal*: KeySym = 0x000005D0XK_Arabic_ra*: KeySym = 0x000005D1XK_Arabic_zain*: KeySym = 0x000005D2XK_Arabic_seen*: KeySym = 0x000005D3XK_Arabic_sheen*: KeySym = 0x000005D4XK_Arabic_sad*: KeySym = 0x000005D5XK_Arabic_dad*: KeySym = 0x000005D6XK_Arabic_tah*: KeySym = 0x000005D7XK_Arabic_zah*: KeySym = 0x000005D8XK_Arabic_ain*: KeySym = 0x000005D9XK_Arabic_ghain*: KeySym = 0x000005DAXK_Arabic_tatweel*: KeySym = 0x000005E0XK_Arabic_feh*: KeySym = 0x000005E1XK_Arabic_qaf*: KeySym = 0x000005E2XK_Arabic_kaf*: KeySym = 0x000005E3XK_Arabic_lam*: KeySym = 0x000005E4XK_Arabic_meem*: KeySym = 0x000005E5XK_Arabic_noon*: KeySym = 0x000005E6XK_Arabic_ha*: KeySym = 0x000005E7XK_Arabic_heh*: KeySym = 0x000005E7 # deprecatedXK_Arabic_waw*: KeySym = 0x000005E8XK_Arabic_alefmaksura*: KeySym = 0x000005E9XK_Arabic_yeh*: KeySym = 0x000005EAXK_Arabic_fathatan*: KeySym = 0x000005EBXK_Arabic_dammatan*: KeySym = 0x000005ECXK_Arabic_kasratan*: KeySym = 0x000005EDXK_Arabic_fatha*: KeySym = 0x000005EEXK_Arabic_damma*: KeySym = 0x000005EFXK_Arabic_kasra*: KeySym = 0x000005F0XK_Arabic_shadda*: KeySym = 0x000005F1XK_Arabic_sukun*: KeySym = 0x000005F2XK_Arabic_madda_above*: KeySym = 0x000005F3XK_Arabic_hamza_above*: KeySym = 0x000005F4XK_Arabic_hamza_below*: KeySym = 0x000005F5XK_Arabic_jeh*: KeySym = 0x000005F6XK_Arabic_veh*: KeySym = 0x000005F7XK_Arabic_keheh*: KeySym = 0x000005F8XK_Arabic_gaf*: KeySym = 0x000005F9XK_Arabic_noon_ghunna*: KeySym = 0x000005FAXK_Arabic_heh_doachashmee*: KeySym = 0x000005FBXK_Farsi_yeh*: KeySym = 0x000005FCXK_Arabic_farsi_yeh*: KeySym = XK_Farsi_yehXK_Arabic_yeh_baree*: KeySym = 0x000005FDXK_Arabic_heh_goal*: KeySym = 0x000005FEXK_Arabic_switch*: KeySym = 0x0000FF7E # Alias for mode_switch# XK_ARABIC#*# * Cyrillic# * Byte 3 = 6# *when defined(XK_CYRILLIC) or true:constXKc_Cyrillic_GHE_bar*: KeySym = 0x00000680XK_Cyrillic_ghe_bar*: KeySym = 0x00000690XKc_Cyrillic_ZHE_descender*: KeySym = 0x00000681XK_Cyrillic_zhe_descender*: KeySym = 0x00000691XKc_Cyrillic_KA_descender*: KeySym = 0x00000682XK_Cyrillic_ka_descender*: KeySym = 0x00000692XKc_Cyrillic_KA_vertstroke*: KeySym = 0x00000683XK_Cyrillic_ka_vertstroke*: KeySym = 0x00000693XKc_Cyrillic_EN_descender*: KeySym = 0x00000684XK_Cyrillic_en_descender*: KeySym = 0x00000694XKc_Cyrillic_U_straight*: KeySym = 0x00000685XK_Cyrillic_u_straight*: KeySym = 0x00000695XKc_Cyrillic_U_straight_bar*: KeySym = 0x00000686XK_Cyrillic_u_straight_bar*: KeySym = 0x00000696XKc_Cyrillic_HA_descender*: KeySym = 0x00000687XK_Cyrillic_ha_descender*: KeySym = 0x00000697XKc_Cyrillic_CHE_descender*: KeySym = 0x00000688XK_Cyrillic_che_descender*: KeySym = 0x00000698XKc_Cyrillic_CHE_vertstroke*: KeySym = 0x00000689XK_Cyrillic_che_vertstroke*: KeySym = 0x00000699XKc_Cyrillic_SHHA*: KeySym = 0x0000068AXK_Cyrillic_shha*: KeySym = 0x0000069AXKc_Cyrillic_SCHWA*: KeySym = 0x0000068CXK_Cyrillic_schwa*: KeySym = 0x0000069CXKc_Cyrillic_I_macron*: KeySym = 0x0000068DXK_Cyrillic_i_macron*: KeySym = 0x0000069DXKc_Cyrillic_O_bar*: KeySym = 0x0000068EXK_Cyrillic_o_bar*: KeySym = 0x0000069EXKc_Cyrillic_U_macron*: KeySym = 0x0000068FXK_Cyrillic_u_macron*: KeySym = 0x0000069FXK_Serbian_dje*: KeySym = 0x000006A1XK_Macedonia_gje*: KeySym = 0x000006A2XK_Cyrillic_io*: KeySym = 0x000006A3XK_Ukrainian_ie*: KeySym = 0x000006A4XK_Ukranian_je*: KeySym = 0x000006A4 # deprecatedXK_Macedonia_dse*: KeySym = 0x000006A5XK_Ukrainian_i*: KeySym = 0x000006A6XK_Ukranian_i*: KeySym = 0x000006A6 # deprecatedXK_Ukrainian_yi*: KeySym = 0x000006A7XK_Ukranian_yi*: KeySym = 0x000006A7 # deprecatedXK_Cyrillic_je*: KeySym = 0x000006A8XK_Serbian_je*: KeySym = 0x000006A8 # deprecatedXK_Cyrillic_lje*: KeySym = 0x000006A9XK_Serbian_lje*: KeySym = 0x000006A9 # deprecatedXK_Cyrillic_nje*: KeySym = 0x000006AAXK_Serbian_nje*: KeySym = 0x000006AA # deprecatedXK_Serbian_tshe*: KeySym = 0x000006ABXK_Macedonia_kje*: KeySym = 0x000006ACXK_Ukrainian_ghe_with_upturn*: KeySym = 0x000006ADXK_Byelorussian_shortu*: KeySym = 0x000006AEXK_Cyrillic_dzhe*: KeySym = 0x000006AFXK_Serbian_dze*: KeySym = 0x000006AF # deprecatedXK_numerosign*: KeySym = 0x000006B0XKc_Serbian_DJE*: KeySym = 0x000006B1XKc_Macedonia_GJE*: KeySym = 0x000006B2XKc_Cyrillic_IO*: KeySym = 0x000006B3XKc_Ukrainian_IE*: KeySym = 0x000006B4XKc_Ukranian_JE*: KeySym = 0x000006B4 # deprecatedXKc_Macedonia_DSE*: KeySym = 0x000006B5XKc_Ukrainian_I*: KeySym = 0x000006B6XKc_Ukranian_I*: KeySym = 0x000006B6 # deprecatedXKc_Ukrainian_YI*: KeySym = 0x000006B7XKc_Ukranian_YI*: KeySym = 0x000006B7 # deprecatedXKc_Cyrillic_JE*: KeySym = 0x000006B8XKc_Serbian_JE*: KeySym = 0x000006B8 # deprecatedXKc_Cyrillic_LJE*: KeySym = 0x000006B9XKc_Serbian_LJE*: KeySym = 0x000006B9 # deprecatedXKc_Cyrillic_NJE*: KeySym = 0x000006BAXKc_Serbian_NJE*: KeySym = 0x000006BA # deprecatedXKc_Serbian_TSHE*: KeySym = 0x000006BBXKc_Macedonia_KJE*: KeySym = 0x000006BCXKc_Ukrainian_GHE_WITH_UPTURN*: KeySym = 0x000006BDXKc_Byelorussian_SHORTU*: KeySym = 0x000006BEXKc_Cyrillic_DZHE*: KeySym = 0x000006BFXKc_Serbian_DZE*: KeySym = 0x000006BF # deprecatedXK_Cyrillic_yu*: KeySym = 0x000006C0XK_Cyrillic_a*: KeySym = 0x000006C1XK_Cyrillic_be*: KeySym = 0x000006C2XK_Cyrillic_tse*: KeySym = 0x000006C3XK_Cyrillic_de*: KeySym = 0x000006C4XK_Cyrillic_ie*: KeySym = 0x000006C5XK_Cyrillic_ef*: KeySym = 0x000006C6XK_Cyrillic_ghe*: KeySym = 0x000006C7XK_Cyrillic_ha*: KeySym = 0x000006C8XK_Cyrillic_i*: KeySym = 0x000006C9XK_Cyrillic_shorti*: KeySym = 0x000006CAXK_Cyrillic_ka*: KeySym = 0x000006CBXK_Cyrillic_el*: KeySym = 0x000006CCXK_Cyrillic_em*: KeySym = 0x000006CDXK_Cyrillic_en*: KeySym = 0x000006CEXK_Cyrillic_o*: KeySym = 0x000006CFXK_Cyrillic_pe*: KeySym = 0x000006D0XK_Cyrillic_ya*: KeySym = 0x000006D1XK_Cyrillic_er*: KeySym = 0x000006D2XK_Cyrillic_es*: KeySym = 0x000006D3XK_Cyrillic_te*: KeySym = 0x000006D4XK_Cyrillic_u*: KeySym = 0x000006D5XK_Cyrillic_zhe*: KeySym = 0x000006D6XK_Cyrillic_ve*: KeySym = 0x000006D7XK_Cyrillic_softsign*: KeySym = 0x000006D8XK_Cyrillic_yeru*: KeySym = 0x000006D9XK_Cyrillic_ze*: KeySym = 0x000006DAXK_Cyrillic_sha*: KeySym = 0x000006DBXK_Cyrillic_e*: KeySym = 0x000006DCXK_Cyrillic_shcha*: KeySym = 0x000006DDXK_Cyrillic_che*: KeySym = 0x000006DEXK_Cyrillic_hardsign*: KeySym = 0x000006DFXKc_Cyrillic_YU*: KeySym = 0x000006E0XKc_Cyrillic_A*: KeySym = 0x000006E1XKc_Cyrillic_BE*: KeySym = 0x000006E2XKc_Cyrillic_TSE*: KeySym = 0x000006E3XKc_Cyrillic_DE*: KeySym = 0x000006E4XKc_Cyrillic_IE*: KeySym = 0x000006E5XKc_Cyrillic_EF*: KeySym = 0x000006E6XKc_Cyrillic_GHE*: KeySym = 0x000006E7XKc_Cyrillic_HA*: KeySym = 0x000006E8XKc_Cyrillic_I*: KeySym = 0x000006E9XKc_Cyrillic_SHORTI*: KeySym = 0x000006EAXKc_Cyrillic_KA*: KeySym = 0x000006EBXKc_Cyrillic_EL*: KeySym = 0x000006ECXKc_Cyrillic_EM*: KeySym = 0x000006EDXKc_Cyrillic_EN*: KeySym = 0x000006EEXKc_Cyrillic_O*: KeySym = 0x000006EFXKc_Cyrillic_PE*: KeySym = 0x000006F0XKc_Cyrillic_YA*: KeySym = 0x000006F1XKc_Cyrillic_ER*: KeySym = 0x000006F2XKc_Cyrillic_ES*: KeySym = 0x000006F3XKc_Cyrillic_TE*: KeySym = 0x000006F4XKc_Cyrillic_U*: KeySym = 0x000006F5XKc_Cyrillic_ZHE*: KeySym = 0x000006F6XKc_Cyrillic_VE*: KeySym = 0x000006F7XKc_Cyrillic_SOFTSIGN*: KeySym = 0x000006F8XKc_Cyrillic_YERU*: KeySym = 0x000006F9XKc_Cyrillic_ZE*: KeySym = 0x000006FAXKc_Cyrillic_SHA*: KeySym = 0x000006FBXKc_Cyrillic_E*: KeySym = 0x000006FCXKc_Cyrillic_SHCHA*: KeySym = 0x000006FDXKc_Cyrillic_CHE*: KeySym = 0x000006FEXKc_Cyrillic_HARDSIGN*: KeySym = 0x000006FF# XK_CYRILLIC#*# * Greek# * Byte 3 = 7# *when defined(XK_GREEK) or true:constXKc_Greek_ALPHAaccent*: KeySym = 0x000007A1XKc_Greek_EPSILONaccent*: KeySym = 0x000007A2XKc_Greek_ETAaccent*: KeySym = 0x000007A3XKc_Greek_IOTAaccent*: KeySym = 0x000007A4XKc_Greek_IOTAdieresis*: KeySym = 0x000007A5XKc_Greek_IOTAdiaeresis*: KeySym = XKc_Greek_IOTAdieresis # old typoXKc_Greek_OMICRONaccent*: KeySym = 0x000007A7XKc_Greek_UPSILONaccent*: KeySym = 0x000007A8XKc_Greek_UPSILONdieresis*: KeySym = 0x000007A9XKc_Greek_OMEGAaccent*: KeySym = 0x000007ABXK_Greek_accentdieresis*: KeySym = 0x000007AEXK_Greek_horizbar*: KeySym = 0x000007AFXK_Greek_alphaaccent*: KeySym = 0x000007B1XK_Greek_epsilonaccent*: KeySym = 0x000007B2XK_Greek_etaaccent*: KeySym = 0x000007B3XK_Greek_iotaaccent*: KeySym = 0x000007B4XK_Greek_iotadieresis*: KeySym = 0x000007B5XK_Greek_iotaaccentdieresis*: KeySym = 0x000007B6XK_Greek_omicronaccent*: KeySym = 0x000007B7XK_Greek_upsilonaccent*: KeySym = 0x000007B8XK_Greek_upsilondieresis*: KeySym = 0x000007B9XK_Greek_upsilonaccentdieresis*: KeySym = 0x000007BAXK_Greek_omegaaccent*: KeySym = 0x000007BBXKc_Greek_ALPHA*: KeySym = 0x000007C1XKc_Greek_BETA*: KeySym = 0x000007C2XKc_Greek_GAMMA*: KeySym = 0x000007C3XKc_Greek_DELTA*: KeySym = 0x000007C4XKc_Greek_EPSILON*: KeySym = 0x000007C5XKc_Greek_ZETA*: KeySym = 0x000007C6XKc_Greek_ETA*: KeySym = 0x000007C7XKc_Greek_THETA*: KeySym = 0x000007C8XKc_Greek_IOTA*: KeySym = 0x000007C9XKc_Greek_KAPPA*: KeySym = 0x000007CAXKc_Greek_LAMDA*: KeySym = 0x000007CBXKc_Greek_LAMBDA*: KeySym = 0x000007CBXKc_Greek_MU*: KeySym = 0x000007CCXKc_Greek_NU*: KeySym = 0x000007CDXKc_Greek_XI*: KeySym = 0x000007CEXKc_Greek_OMICRON*: KeySym = 0x000007CFXKc_Greek_PI*: KeySym = 0x000007D0XKc_Greek_RHO*: KeySym = 0x000007D1XKc_Greek_SIGMA*: KeySym = 0x000007D2XKc_Greek_TAU*: KeySym = 0x000007D4XKc_Greek_UPSILON*: KeySym = 0x000007D5XKc_Greek_PHI*: KeySym = 0x000007D6XKc_Greek_CHI*: KeySym = 0x000007D7XKc_Greek_PSI*: KeySym = 0x000007D8XKc_Greek_OMEGA*: KeySym = 0x000007D9XK_Greek_alpha*: KeySym = 0x000007E1XK_Greek_beta*: KeySym = 0x000007E2XK_Greek_gamma*: KeySym = 0x000007E3XK_Greek_delta*: KeySym = 0x000007E4XK_Greek_epsilon*: KeySym = 0x000007E5XK_Greek_zeta*: KeySym = 0x000007E6XK_Greek_eta*: KeySym = 0x000007E7XK_Greek_theta*: KeySym = 0x000007E8XK_Greek_iota*: KeySym = 0x000007E9XK_Greek_kappa*: KeySym = 0x000007EAXK_Greek_lamda*: KeySym = 0x000007EBXK_Greek_lambda*: KeySym = 0x000007EBXK_Greek_mu*: KeySym = 0x000007ECXK_Greek_nu*: KeySym = 0x000007EDXK_Greek_xi*: KeySym = 0x000007EEXK_Greek_omicron*: KeySym = 0x000007EFXK_Greek_pi*: KeySym = 0x000007F0XK_Greek_rho*: KeySym = 0x000007F1XK_Greek_sigma*: KeySym = 0x000007F2XK_Greek_finalsmallsigma*: KeySym = 0x000007F3XK_Greek_tau*: KeySym = 0x000007F4XK_Greek_upsilon*: KeySym = 0x000007F5XK_Greek_phi*: KeySym = 0x000007F6XK_Greek_chi*: KeySym = 0x000007F7XK_Greek_psi*: KeySym = 0x000007F8XK_Greek_omega*: KeySym = 0x000007F9XK_Greek_switch*: KeySym = 0x0000FF7E # Alias for mode_switch# XK_GREEK#*# * Technical# * Byte 3 = 8# *when defined(XK_TECHNICAL) or true:constXK_leftradical*: KeySym = 0x000008A1XK_topleftradical*: KeySym = 0x000008A2XK_horizconnector*: KeySym = 0x000008A3XK_topintegral*: KeySym = 0x000008A4XK_botintegral*: KeySym = 0x000008A5XK_vertconnector*: KeySym = 0x000008A6XK_topleftsqbracket*: KeySym = 0x000008A7XK_botleftsqbracket*: KeySym = 0x000008A8XK_toprightsqbracket*: KeySym = 0x000008A9XK_botrightsqbracket*: KeySym = 0x000008AAXK_topleftparens*: KeySym = 0x000008ABXK_botleftparens*: KeySym = 0x000008ACXK_toprightparens*: KeySym = 0x000008ADXK_botrightparens*: KeySym = 0x000008AEXK_leftmiddlecurlybrace*: KeySym = 0x000008AFXK_rightmiddlecurlybrace*: KeySym = 0x000008B0XK_topleftsummation*: KeySym = 0x000008B1XK_botleftsummation*: KeySym = 0x000008B2XK_topvertsummationconnector*: KeySym = 0x000008B3XK_botvertsummationconnector*: KeySym = 0x000008B4XK_toprightsummation*: KeySym = 0x000008B5XK_botrightsummation*: KeySym = 0x000008B6XK_rightmiddlesummation*: KeySym = 0x000008B7XK_lessthanequal*: KeySym = 0x000008BCXK_notequal*: KeySym = 0x000008BDXK_greaterthanequal*: KeySym = 0x000008BEXK_integral*: KeySym = 0x000008BFXK_therefore*: KeySym = 0x000008C0XK_variation*: KeySym = 0x000008C1XK_infinity*: KeySym = 0x000008C2XK_nabla*: KeySym = 0x000008C5XK_approximate*: KeySym = 0x000008C8XK_similarequal*: KeySym = 0x000008C9XK_ifonlyif*: KeySym = 0x000008CDXK_implies*: KeySym = 0x000008CEXK_identical*: KeySym = 0x000008CFXK_radical*: KeySym = 0x000008D6XK_includedin*: KeySym = 0x000008DAXK_includes*: KeySym = 0x000008DBXK_intersection*: KeySym = 0x000008DCXK_union*: KeySym = 0x000008DDXK_logicaland*: KeySym = 0x000008DEXK_logicalor*: KeySym = 0x000008DFXK_partialderivative*: KeySym = 0x000008EFXK_function*: KeySym = 0x000008F6XK_leftarrow*: KeySym = 0x000008FBXK_uparrow*: KeySym = 0x000008FCXK_rightarrow*: KeySym = 0x000008FDXK_downarrow*: KeySym = 0x000008FE# XK_TECHNICAL#*# * Special# * Byte 3 = 9# *when defined(XK_SPECIAL):constXK_blank*: KeySym = 0x000009DFXK_soliddiamond*: KeySym = 0x000009E0XK_checkerboard*: KeySym = 0x000009E1XK_ht*: KeySym = 0x000009E2XK_ff*: KeySym = 0x000009E3XK_cr*: KeySym = 0x000009E4XK_lf*: KeySym = 0x000009E5XK_nl*: KeySym = 0x000009E8XK_vt*: KeySym = 0x000009E9XK_lowrightcorner*: KeySym = 0x000009EAXK_uprightcorner*: KeySym = 0x000009EBXK_upleftcorner*: KeySym = 0x000009ECXK_lowleftcorner*: KeySym = 0x000009EDXK_crossinglines*: KeySym = 0x000009EEXK_horizlinescan1*: KeySym = 0x000009EFXK_horizlinescan3*: KeySym = 0x000009F0XK_horizlinescan5*: KeySym = 0x000009F1XK_horizlinescan7*: KeySym = 0x000009F2XK_horizlinescan9*: KeySym = 0x000009F3XK_leftt*: KeySym = 0x000009F4XK_rightt*: KeySym = 0x000009F5XK_bott*: KeySym = 0x000009F6XK_topt*: KeySym = 0x000009F7XK_vertbar*: KeySym = 0x000009F8# XK_SPECIAL#*# * Publishing# * Byte 3 = a# *when defined(XK_PUBLISHING) or true:constXK_emspace*: KeySym = 0x00000AA1XK_enspace*: KeySym = 0x00000AA2XK_em3space*: KeySym = 0x00000AA3XK_em4space*: KeySym = 0x00000AA4XK_digitspace*: KeySym = 0x00000AA5XK_punctspace*: KeySym = 0x00000AA6XK_thinspace*: KeySym = 0x00000AA7XK_hairspace*: KeySym = 0x00000AA8XK_emdash*: KeySym = 0x00000AA9XK_endash*: KeySym = 0x00000AAAXK_signifblank*: KeySym = 0x00000AACXK_ellipsis*: KeySym = 0x00000AAEXK_doubbaselinedot*: KeySym = 0x00000AAFXK_onethird*: KeySym = 0x00000AB0XK_twothirds*: KeySym = 0x00000AB1XK_onefifth*: KeySym = 0x00000AB2XK_twofifths*: KeySym = 0x00000AB3XK_threefifths*: KeySym = 0x00000AB4XK_fourfifths*: KeySym = 0x00000AB5XK_onesixth*: KeySym = 0x00000AB6XK_fivesixths*: KeySym = 0x00000AB7XK_careof*: KeySym = 0x00000AB8XK_figdash*: KeySym = 0x00000ABBXK_leftanglebracket*: KeySym = 0x00000ABCXK_decimalpoint*: KeySym = 0x00000ABDXK_rightanglebracket*: KeySym = 0x00000ABEXK_marker*: KeySym = 0x00000ABFXK_oneeighth*: KeySym = 0x00000AC3XK_threeeighths*: KeySym = 0x00000AC4XK_fiveeighths*: KeySym = 0x00000AC5XK_seveneighths*: KeySym = 0x00000AC6XK_trademark*: KeySym = 0x00000AC9XK_signaturemark*: KeySym = 0x00000ACAXK_trademarkincircle*: KeySym = 0x00000ACBXK_leftopentriangle*: KeySym = 0x00000ACCXK_rightopentriangle*: KeySym = 0x00000ACDXK_emopencircle*: KeySym = 0x00000ACEXK_emopenrectangle*: KeySym = 0x00000ACFXK_leftsinglequotemark*: KeySym = 0x00000AD0XK_rightsinglequotemark*: KeySym = 0x00000AD1XK_leftdoublequotemark*: KeySym = 0x00000AD2XK_rightdoublequotemark*: KeySym = 0x00000AD3XK_prescription*: KeySym = 0x00000AD4XK_minutes*: KeySym = 0x00000AD6XK_seconds*: KeySym = 0x00000AD7XK_latincross*: KeySym = 0x00000AD9XK_hexagram*: KeySym = 0x00000ADAXK_filledrectbullet*: KeySym = 0x00000ADBXK_filledlefttribullet*: KeySym = 0x00000ADCXK_filledrighttribullet*: KeySym = 0x00000ADDXK_emfilledcircle*: KeySym = 0x00000ADEXK_emfilledrect*: KeySym = 0x00000ADFXK_enopencircbullet*: KeySym = 0x00000AE0XK_enopensquarebullet*: KeySym = 0x00000AE1XK_openrectbullet*: KeySym = 0x00000AE2XK_opentribulletup*: KeySym = 0x00000AE3XK_opentribulletdown*: KeySym = 0x00000AE4XK_openstar*: KeySym = 0x00000AE5XK_enfilledcircbullet*: KeySym = 0x00000AE6XK_enfilledsqbullet*: KeySym = 0x00000AE7XK_filledtribulletup*: KeySym = 0x00000AE8XK_filledtribulletdown*: KeySym = 0x00000AE9XK_leftpointer*: KeySym = 0x00000AEAXK_rightpointer*: KeySym = 0x00000AEBXK_club*: KeySym = 0x00000AECXK_diamond*: KeySym = 0x00000AEDXK_heart*: KeySym = 0x00000AEEXK_maltesecross*: KeySym = 0x00000AF0XK_dagger*: KeySym = 0x00000AF1XK_doubledagger*: KeySym = 0x00000AF2XK_checkmark*: KeySym = 0x00000AF3XK_ballotcross*: KeySym = 0x00000AF4XK_musicalsharp*: KeySym = 0x00000AF5XK_musicalflat*: KeySym = 0x00000AF6XK_malesymbol*: KeySym = 0x00000AF7XK_femalesymbol*: KeySym = 0x00000AF8XK_telephone*: KeySym = 0x00000AF9XK_telephonerecorder*: KeySym = 0x00000AFAXK_phonographcopyright*: KeySym = 0x00000AFBXK_caret*: KeySym = 0x00000AFCXK_singlelowquotemark*: KeySym = 0x00000AFDXK_doublelowquotemark*: KeySym = 0x00000AFEXK_cursor*: KeySym = 0x00000AFF# XK_PUBLISHING#*# * APL# * Byte 3 = b# *when defined(XK_APL) or true:constXK_leftcaret*: KeySym = 0x00000BA3XK_rightcaret*: KeySym = 0x00000BA6XK_downcaret*: KeySym = 0x00000BA8XK_upcaret*: KeySym = 0x00000BA9XK_overbar*: KeySym = 0x00000BC0XK_downtack*: KeySym = 0x00000BC2XK_upshoe*: KeySym = 0x00000BC3XK_downstile*: KeySym = 0x00000BC4XK_underbar*: KeySym = 0x00000BC6XK_jot*: KeySym = 0x00000BCAXK_quad*: KeySym = 0x00000BCCXK_uptack*: KeySym = 0x00000BCEXK_circle*: KeySym = 0x00000BCFXK_upstile*: KeySym = 0x00000BD3XK_downshoe*: KeySym = 0x00000BD6XK_rightshoe*: KeySym = 0x00000BD8XK_leftshoe*: KeySym = 0x00000BDAXK_lefttack*: KeySym = 0x00000BDCXK_righttack*: KeySym = 0x00000BFC# XK_APL#*# * Hebrew# * Byte 3 = c# *when defined(XK_HEBREW) or true:constXK_hebrew_doublelowline*: KeySym = 0x00000CDFXK_hebrew_aleph*: KeySym = 0x00000CE0XK_hebrew_bet*: KeySym = 0x00000CE1XK_hebrew_beth*: KeySym = 0x00000CE1 # deprecatedXK_hebrew_gimel*: KeySym = 0x00000CE2XK_hebrew_gimmel*: KeySym = 0x00000CE2 # deprecatedXK_hebrew_dalet*: KeySym = 0x00000CE3XK_hebrew_daleth*: KeySym = 0x00000CE3 # deprecatedXK_hebrew_he*: KeySym = 0x00000CE4XK_hebrew_waw*: KeySym = 0x00000CE5XK_hebrew_zain*: KeySym = 0x00000CE6XK_hebrew_zayin*: KeySym = 0x00000CE6 # deprecatedXK_hebrew_chet*: KeySym = 0x00000CE7XK_hebrew_het*: KeySym = 0x00000CE7 # deprecatedXK_hebrew_tet*: KeySym = 0x00000CE8XK_hebrew_teth*: KeySym = 0x00000CE8 # deprecatedXK_hebrew_yod*: KeySym = 0x00000CE9XK_hebrew_finalkaph*: KeySym = 0x00000CEAXK_hebrew_kaph*: KeySym = 0x00000CEBXK_hebrew_lamed*: KeySym = 0x00000CECXK_hebrew_finalmem*: KeySym = 0x00000CEDXK_hebrew_mem*: KeySym = 0x00000CEEXK_hebrew_finalnun*: KeySym = 0x00000CEFXK_hebrew_nun*: KeySym = 0x00000CF0XK_hebrew_samech*: KeySym = 0x00000CF1XK_hebrew_samekh*: KeySym = 0x00000CF1 # deprecatedXK_hebrew_ayin*: KeySym = 0x00000CF2XK_hebrew_finalpe*: KeySym = 0x00000CF3XK_hebrew_pe*: KeySym = 0x00000CF4XK_hebrew_finalzade*: KeySym = 0x00000CF5XK_hebrew_finalzadi*: KeySym = 0x00000CF5 # deprecatedXK_hebrew_zade*: KeySym = 0x00000CF6XK_hebrew_zadi*: KeySym = 0x00000CF6 # deprecatedXK_hebrew_qoph*: KeySym = 0x00000CF7XK_hebrew_kuf*: KeySym = 0x00000CF7 # deprecatedXK_hebrew_resh*: KeySym = 0x00000CF8XK_hebrew_shin*: KeySym = 0x00000CF9XK_hebrew_taw*: KeySym = 0x00000CFAXK_hebrew_taf*: KeySym = 0x00000CFA # deprecatedXK_Hebrew_switch*: KeySym = 0x0000FF7E # Alias for mode_switch# XK_HEBREW#*# * Thai# * Byte 3 = d# *when defined(XK_THAI) or true:constXK_Thai_kokai*: KeySym = 0x00000DA1XK_Thai_khokhai*: KeySym = 0x00000DA2XK_Thai_khokhuat*: KeySym = 0x00000DA3XK_Thai_khokhwai*: KeySym = 0x00000DA4XK_Thai_khokhon*: KeySym = 0x00000DA5XK_Thai_khorakhang*: KeySym = 0x00000DA6XK_Thai_ngongu*: KeySym = 0x00000DA7XK_Thai_chochan*: KeySym = 0x00000DA8XK_Thai_choching*: KeySym = 0x00000DA9XK_Thai_chochang*: KeySym = 0x00000DAAXK_Thai_soso*: KeySym = 0x00000DABXK_Thai_chochoe*: KeySym = 0x00000DACXK_Thai_yoying*: KeySym = 0x00000DADXK_Thai_dochada*: KeySym = 0x00000DAEXK_Thai_topatak*: KeySym = 0x00000DAFXK_Thai_thothan*: KeySym = 0x00000DB0XK_Thai_thonangmontho*: KeySym = 0x00000DB1XK_Thai_thophuthao*: KeySym = 0x00000DB2XK_Thai_nonen*: KeySym = 0x00000DB3XK_Thai_dodek*: KeySym = 0x00000DB4XK_Thai_totao*: KeySym = 0x00000DB5XK_Thai_thothung*: KeySym = 0x00000DB6XK_Thai_thothahan*: KeySym = 0x00000DB7XK_Thai_thothong*: KeySym = 0x00000DB8XK_Thai_nonu*: KeySym = 0x00000DB9XK_Thai_bobaimai*: KeySym = 0x00000DBAXK_Thai_popla*: KeySym = 0x00000DBBXK_Thai_phophung*: KeySym = 0x00000DBCXK_Thai_fofa*: KeySym = 0x00000DBDXK_Thai_phophan*: KeySym = 0x00000DBEXK_Thai_fofan*: KeySym = 0x00000DBFXK_Thai_phosamphao*: KeySym = 0x00000DC0XK_Thai_moma*: KeySym = 0x00000DC1XK_Thai_yoyak*: KeySym = 0x00000DC2XK_Thai_rorua*: KeySym = 0x00000DC3XK_Thai_ru*: KeySym = 0x00000DC4XK_Thai_loling*: KeySym = 0x00000DC5XK_Thai_lu*: KeySym = 0x00000DC6XK_Thai_wowaen*: KeySym = 0x00000DC7XK_Thai_sosala*: KeySym = 0x00000DC8XK_Thai_sorusi*: KeySym = 0x00000DC9XK_Thai_sosua*: KeySym = 0x00000DCAXK_Thai_hohip*: KeySym = 0x00000DCBXK_Thai_lochula*: KeySym = 0x00000DCCXK_Thai_oang*: KeySym = 0x00000DCDXK_Thai_honokhuk*: KeySym = 0x00000DCEXK_Thai_paiyannoi*: KeySym = 0x00000DCFXK_Thai_saraa*: KeySym = 0x00000DD0XK_Thai_maihanakat*: KeySym = 0x00000DD1XK_Thai_saraaa*: KeySym = 0x00000DD2XK_Thai_saraam*: KeySym = 0x00000DD3XK_Thai_sarai*: KeySym = 0x00000DD4XK_Thai_saraii*: KeySym = 0x00000DD5XK_Thai_saraue*: KeySym = 0x00000DD6XK_Thai_sarauee*: KeySym = 0x00000DD7XK_Thai_sarau*: KeySym = 0x00000DD8XK_Thai_sarauu*: KeySym = 0x00000DD9XK_Thai_phinthu*: KeySym = 0x00000DDAXK_Thai_maihanakat_maitho*: KeySym = 0x00000DDEXK_Thai_baht*: KeySym = 0x00000DDFXK_Thai_sarae*: KeySym = 0x00000DE0XK_Thai_saraae*: KeySym = 0x00000DE1XK_Thai_sarao*: KeySym = 0x00000DE2XK_Thai_saraaimaimuan*: KeySym = 0x00000DE3XK_Thai_saraaimaimalai*: KeySym = 0x00000DE4XK_Thai_lakkhangyao*: KeySym = 0x00000DE5XK_Thai_maiyamok*: KeySym = 0x00000DE6XK_Thai_maitaikhu*: KeySym = 0x00000DE7XK_Thai_maiek*: KeySym = 0x00000DE8XK_Thai_maitho*: KeySym = 0x00000DE9XK_Thai_maitri*: KeySym = 0x00000DEAXK_Thai_maichattawa*: KeySym = 0x00000DEBXK_Thai_thanthakhat*: KeySym = 0x00000DECXK_Thai_nikhahit*: KeySym = 0x00000DEDXK_Thai_leksun*: KeySym = 0x00000DF0XK_Thai_leknung*: KeySym = 0x00000DF1XK_Thai_leksong*: KeySym = 0x00000DF2XK_Thai_leksam*: KeySym = 0x00000DF3XK_Thai_leksi*: KeySym = 0x00000DF4XK_Thai_lekha*: KeySym = 0x00000DF5XK_Thai_lekhok*: KeySym = 0x00000DF6XK_Thai_lekchet*: KeySym = 0x00000DF7XK_Thai_lekpaet*: KeySym = 0x00000DF8XK_Thai_lekkao*: KeySym = 0x00000DF9# XK_THAI#*# * Korean# * Byte 3 = e# *when defined(XK_KOREAN) or true:constXK_Hangul*: KeySym = 0x0000FF31 # Hangul start/stop(toggle)XK_Hangul_Start*: KeySym = 0x0000FF32 # Hangul startXK_Hangul_End*: KeySym = 0x0000FF33 # Hangul end, English startXK_Hangul_Hanja*: KeySym = 0x0000FF34 # Start Hangul->Hanja ConversionXK_Hangul_Jamo*: KeySym = 0x0000FF35 # Hangul Jamo modeXK_Hangul_Romaja*: KeySym = 0x0000FF36 # Hangul Romaja modeXK_Hangul_Codeinput*: KeySym = 0x0000FF37 # Hangul code input modeXK_Hangul_Jeonja*: KeySym = 0x0000FF38 # Jeonja modeXK_Hangul_Banja*: KeySym = 0x0000FF39 # Banja modeXK_Hangul_PreHanja*: KeySym = 0x0000FF3A # Pre Hanja conversionXK_Hangul_PostHanja*: KeySym = 0x0000FF3B # Post Hanja conversionXK_Hangul_SingleCandidate*: KeySym = 0x0000FF3C # Single candidateXK_Hangul_MultipleCandidate*: KeySym = 0x0000FF3D # Multiple candidateXK_Hangul_PreviousCandidate*: KeySym = 0x0000FF3E # Previous candidateXK_Hangul_Special*: KeySym = 0x0000FF3F # Special symbolsXK_Hangul_switch*: KeySym = 0x0000FF7E # Alias for mode_switch \# Hangul Consonant CharactersXK_Hangul_Kiyeog*: KeySym = 0x00000EA1XK_Hangul_SsangKiyeog*: KeySym = 0x00000EA2XK_Hangul_KiyeogSios*: KeySym = 0x00000EA3XK_Hangul_Nieun*: KeySym = 0x00000EA4XK_Hangul_NieunJieuj*: KeySym = 0x00000EA5XK_Hangul_NieunHieuh*: KeySym = 0x00000EA6XK_Hangul_Dikeud*: KeySym = 0x00000EA7XK_Hangul_SsangDikeud*: KeySym = 0x00000EA8XK_Hangul_Rieul*: KeySym = 0x00000EA9XK_Hangul_RieulKiyeog*: KeySym = 0x00000EAAXK_Hangul_RieulMieum*: KeySym = 0x00000EABXK_Hangul_RieulPieub*: KeySym = 0x00000EACXK_Hangul_RieulSios*: KeySym = 0x00000EADXK_Hangul_RieulTieut*: KeySym = 0x00000EAEXK_Hangul_RieulPhieuf*: KeySym = 0x00000EAFXK_Hangul_RieulHieuh*: KeySym = 0x00000EB0XK_Hangul_Mieum*: KeySym = 0x00000EB1XK_Hangul_Pieub*: KeySym = 0x00000EB2XK_Hangul_SsangPieub*: KeySym = 0x00000EB3XK_Hangul_PieubSios*: KeySym = 0x00000EB4XK_Hangul_Sios*: KeySym = 0x00000EB5XK_Hangul_SsangSios*: KeySym = 0x00000EB6XK_Hangul_Ieung*: KeySym = 0x00000EB7XK_Hangul_Jieuj*: KeySym = 0x00000EB8XK_Hangul_SsangJieuj*: KeySym = 0x00000EB9XK_Hangul_Cieuc*: KeySym = 0x00000EBAXK_Hangul_Khieuq*: KeySym = 0x00000EBBXK_Hangul_Tieut*: KeySym = 0x00000EBCXK_Hangul_Phieuf*: KeySym = 0x00000EBDXK_Hangul_Hieuh*: KeySym = 0x00000EBE # Hangul Vowel CharactersXK_Hangul_A*: KeySym = 0x00000EBFXK_Hangul_AE*: KeySym = 0x00000EC0XK_Hangul_YA*: KeySym = 0x00000EC1XK_Hangul_YAE*: KeySym = 0x00000EC2XK_Hangul_EO*: KeySym = 0x00000EC3XK_Hangul_E*: KeySym = 0x00000EC4XK_Hangul_YEO*: KeySym = 0x00000EC5XK_Hangul_YE*: KeySym = 0x00000EC6XK_Hangul_O*: KeySym = 0x00000EC7XK_Hangul_WA*: KeySym = 0x00000EC8XK_Hangul_WAE*: KeySym = 0x00000EC9XK_Hangul_OE*: KeySym = 0x00000ECAXK_Hangul_YO*: KeySym = 0x00000ECBXK_Hangul_U*: KeySym = 0x00000ECCXK_Hangul_WEO*: KeySym = 0x00000ECDXK_Hangul_WE*: KeySym = 0x00000ECEXK_Hangul_WI*: KeySym = 0x00000ECFXK_Hangul_YU*: KeySym = 0x00000ED0XK_Hangul_EU*: KeySym = 0x00000ED1XK_Hangul_YI*: KeySym = 0x00000ED2XK_Hangul_I*: KeySym = 0x00000ED3 # Hangul syllable-final (JongSeong) CharactersXK_Hangul_J_Kiyeog*: KeySym = 0x00000ED4XK_Hangul_J_SsangKiyeog*: KeySym = 0x00000ED5XK_Hangul_J_KiyeogSios*: KeySym = 0x00000ED6XK_Hangul_J_Nieun*: KeySym = 0x00000ED7XK_Hangul_J_NieunJieuj*: KeySym = 0x00000ED8XK_Hangul_J_NieunHieuh*: KeySym = 0x00000ED9XK_Hangul_J_Dikeud*: KeySym = 0x00000EDAXK_Hangul_J_Rieul*: KeySym = 0x00000EDBXK_Hangul_J_RieulKiyeog*: KeySym = 0x00000EDCXK_Hangul_J_RieulMieum*: KeySym = 0x00000EDDXK_Hangul_J_RieulPieub*: KeySym = 0x00000EDEXK_Hangul_J_RieulSios*: KeySym = 0x00000EDFXK_Hangul_J_RieulTieut*: KeySym = 0x00000EE0XK_Hangul_J_RieulPhieuf*: KeySym = 0x00000EE1XK_Hangul_J_RieulHieuh*: KeySym = 0x00000EE2XK_Hangul_J_Mieum*: KeySym = 0x00000EE3XK_Hangul_J_Pieub*: KeySym = 0x00000EE4XK_Hangul_J_PieubSios*: KeySym = 0x00000EE5XK_Hangul_J_Sios*: KeySym = 0x00000EE6XK_Hangul_J_SsangSios*: KeySym = 0x00000EE7XK_Hangul_J_Ieung*: KeySym = 0x00000EE8XK_Hangul_J_Jieuj*: KeySym = 0x00000EE9XK_Hangul_J_Cieuc*: KeySym = 0x00000EEAXK_Hangul_J_Khieuq*: KeySym = 0x00000EEBXK_Hangul_J_Tieut*: KeySym = 0x00000EECXK_Hangul_J_Phieuf*: KeySym = 0x00000EEDXK_Hangul_J_Hieuh*: KeySym = 0x00000EEE # Ancient Hangul Consonant CharactersXK_Hangul_RieulYeorinHieuh*: KeySym = 0x00000EEFXK_Hangul_SunkyeongeumMieum*: KeySym = 0x00000EF0XK_Hangul_SunkyeongeumPieub*: KeySym = 0x00000EF1XK_Hangul_PanSios*: KeySym = 0x00000EF2XK_Hangul_KkogjiDalrinIeung*: KeySym = 0x00000EF3XK_Hangul_SunkyeongeumPhieuf*: KeySym = 0x00000EF4XK_Hangul_YeorinHieuh*: KeySym = 0x00000EF5 # Ancient Hangul Vowel CharactersXK_Hangul_AraeA*: KeySym = 0x00000EF6XK_Hangul_AraeAE*: KeySym = 0x00000EF7 # Ancient Hangul syllable-final (JongSeong) CharactersXK_Hangul_J_PanSios*: KeySym = 0x00000EF8XK_Hangul_J_KkogjiDalrinIeung*: KeySym = 0x00000EF9XK_Hangul_J_YeorinHieuh*: KeySym = 0x00000EFA # Korean currency symbolXK_Korean_Won*: KeySym = 0x00000EFF# XK_KOREAN#*# * Armenian# * Byte 3 = = $14# *when defined(XK_ARMENIAN) or true:constXK_Armenian_eternity*: KeySym = 0x000014A1XK_Armenian_ligature_ew*: KeySym = 0x000014A2XK_Armenian_full_stop*: KeySym = 0x000014A3XK_Armenian_verjaket*: KeySym = 0x000014A3XK_Armenian_parenright*: KeySym = 0x000014A4XK_Armenian_parenleft*: KeySym = 0x000014A5XK_Armenian_guillemotright*: KeySym = 0x000014A6XK_Armenian_guillemotleft*: KeySym = 0x000014A7XK_Armenian_em_dash*: KeySym = 0x000014A8XK_Armenian_dot*: KeySym = 0x000014A9XK_Armenian_mijaket*: KeySym = 0x000014A9XK_Armenian_separation_mark*: KeySym = 0x000014AAXK_Armenian_but*: KeySym = 0x000014AAXK_Armenian_comma*: KeySym = 0x000014ABXK_Armenian_en_dash*: KeySym = 0x000014ACXK_Armenian_hyphen*: KeySym = 0x000014ADXK_Armenian_yentamna*: KeySym = 0x000014ADXK_Armenian_ellipsis*: KeySym = 0x000014AEXK_Armenian_exclam*: KeySym = 0x000014AFXK_Armenian_amanak*: KeySym = 0x000014AFXK_Armenian_accent*: KeySym = 0x000014B0XK_Armenian_shesht*: KeySym = 0x000014B0XK_Armenian_question*: KeySym = 0x000014B1XK_Armenian_paruyk*: KeySym = 0x000014B1XKc_Armenian_AYB*: KeySym = 0x000014B2XK_Armenian_ayb*: KeySym = 0x000014B3XKc_Armenian_BEN*: KeySym = 0x000014B4XK_Armenian_ben*: KeySym = 0x000014B5XKc_Armenian_GIM*: KeySym = 0x000014B6XK_Armenian_gim*: KeySym = 0x000014B7XKc_Armenian_DA*: KeySym = 0x000014B8XK_Armenian_da*: KeySym = 0x000014B9XKc_Armenian_YECH*: KeySym = 0x000014BAXK_Armenian_yech*: KeySym = 0x000014BBXKc_Armenian_ZA*: KeySym = 0x000014BCXK_Armenian_za*: KeySym = 0x000014BDXKc_Armenian_E*: KeySym = 0x000014BEXK_Armenian_e*: KeySym = 0x000014BFXKc_Armenian_AT*: KeySym = 0x000014C0XK_Armenian_at*: KeySym = 0x000014C1XKc_Armenian_TO*: KeySym = 0x000014C2XK_Armenian_to*: KeySym = 0x000014C3XKc_Armenian_ZHE*: KeySym = 0x000014C4XK_Armenian_zhe*: KeySym = 0x000014C5XKc_Armenian_INI*: KeySym = 0x000014C6XK_Armenian_ini*: KeySym = 0x000014C7XKc_Armenian_LYUN*: KeySym = 0x000014C8XK_Armenian_lyun*: KeySym = 0x000014C9XKc_Armenian_KHE*: KeySym = 0x000014CAXK_Armenian_khe*: KeySym = 0x000014CBXKc_Armenian_TSA*: KeySym = 0x000014CCXK_Armenian_tsa*: KeySym = 0x000014CDXKc_Armenian_KEN*: KeySym = 0x000014CEXK_Armenian_ken*: KeySym = 0x000014CFXKc_Armenian_HO*: KeySym = 0x000014D0XK_Armenian_ho*: KeySym = 0x000014D1XKc_Armenian_DZA*: KeySym = 0x000014D2XK_Armenian_dza*: KeySym = 0x000014D3XKc_Armenian_GHAT*: KeySym = 0x000014D4XK_Armenian_ghat*: KeySym = 0x000014D5XKc_Armenian_TCHE*: KeySym = 0x000014D6XK_Armenian_tche*: KeySym = 0x000014D7XKc_Armenian_MEN*: KeySym = 0x000014D8XK_Armenian_men*: KeySym = 0x000014D9XKc_Armenian_HI*: KeySym = 0x000014DAXK_Armenian_hi*: KeySym = 0x000014DBXKc_Armenian_NU*: KeySym = 0x000014DCXK_Armenian_nu*: KeySym = 0x000014DDXKc_Armenian_SHA*: KeySym = 0x000014DEXK_Armenian_sha*: KeySym = 0x000014DFXKc_Armenian_VO*: KeySym = 0x000014E0XK_Armenian_vo*: KeySym = 0x000014E1XKc_Armenian_CHA*: KeySym = 0x000014E2XK_Armenian_cha*: KeySym = 0x000014E3XKc_Armenian_PE*: KeySym = 0x000014E4XK_Armenian_pe*: KeySym = 0x000014E5XKc_Armenian_JE*: KeySym = 0x000014E6XK_Armenian_je*: KeySym = 0x000014E7XKc_Armenian_RA*: KeySym = 0x000014E8XK_Armenian_ra*: KeySym = 0x000014E9XKc_Armenian_SE*: KeySym = 0x000014EAXK_Armenian_se*: KeySym = 0x000014EBXKc_Armenian_VEV*: KeySym = 0x000014ECXK_Armenian_vev*: KeySym = 0x000014EDXKc_Armenian_TYUN*: KeySym = 0x000014EEXK_Armenian_tyun*: KeySym = 0x000014EFXKc_Armenian_RE*: KeySym = 0x000014F0XK_Armenian_re*: KeySym = 0x000014F1XKc_Armenian_TSO*: KeySym = 0x000014F2XK_Armenian_tso*: KeySym = 0x000014F3XKc_Armenian_VYUN*: KeySym = 0x000014F4XK_Armenian_vyun*: KeySym = 0x000014F5XKc_Armenian_PYUR*: KeySym = 0x000014F6XK_Armenian_pyur*: KeySym = 0x000014F7XKc_Armenian_KE*: KeySym = 0x000014F8XK_Armenian_ke*: KeySym = 0x000014F9XKc_Armenian_O*: KeySym = 0x000014FAXK_Armenian_o*: KeySym = 0x000014FBXKc_Armenian_FE*: KeySym = 0x000014FCXK_Armenian_fe*: KeySym = 0x000014FDXK_Armenian_apostrophe*: KeySym = 0x000014FEXK_Armenian_section_sign*: KeySym = 0x000014FF# XK_ARMENIAN#*# * Georgian# * Byte 3 = = $15# *when defined(XK_GEORGIAN) or true:constXK_Georgian_an*: KeySym = 0x000015D0XK_Georgian_ban*: KeySym = 0x000015D1XK_Georgian_gan*: KeySym = 0x000015D2XK_Georgian_don*: KeySym = 0x000015D3XK_Georgian_en*: KeySym = 0x000015D4XK_Georgian_vin*: KeySym = 0x000015D5XK_Georgian_zen*: KeySym = 0x000015D6XK_Georgian_tan*: KeySym = 0x000015D7XK_Georgian_in*: KeySym = 0x000015D8XK_Georgian_kan*: KeySym = 0x000015D9XK_Georgian_las*: KeySym = 0x000015DAXK_Georgian_man*: KeySym = 0x000015DBXK_Georgian_nar*: KeySym = 0x000015DCXK_Georgian_on*: KeySym = 0x000015DDXK_Georgian_par*: KeySym = 0x000015DEXK_Georgian_zhar*: KeySym = 0x000015DFXK_Georgian_rae*: KeySym = 0x000015E0XK_Georgian_san*: KeySym = 0x000015E1XK_Georgian_tar*: KeySym = 0x000015E2XK_Georgian_un*: KeySym = 0x000015E3XK_Georgian_phar*: KeySym = 0x000015E4XK_Georgian_khar*: KeySym = 0x000015E5XK_Georgian_ghan*: KeySym = 0x000015E6XK_Georgian_qar*: KeySym = 0x000015E7XK_Georgian_shin*: KeySym = 0x000015E8XK_Georgian_chin*: KeySym = 0x000015E9XK_Georgian_can*: KeySym = 0x000015EAXK_Georgian_jil*: KeySym = 0x000015EBXK_Georgian_cil*: KeySym = 0x000015ECXK_Georgian_char*: KeySym = 0x000015EDXK_Georgian_xan*: KeySym = 0x000015EEXK_Georgian_jhan*: KeySym = 0x000015EFXK_Georgian_hae*: KeySym = 0x000015F0XK_Georgian_he*: KeySym = 0x000015F1XK_Georgian_hie*: KeySym = 0x000015F2XK_Georgian_we*: KeySym = 0x000015F3XK_Georgian_har*: KeySym = 0x000015F4XK_Georgian_hoe*: KeySym = 0x000015F5XK_Georgian_fi*: KeySym = 0x000015F6# XK_GEORGIAN#*# * Azeri (and other Turkic or Caucasian languages of ex-USSR)# * Byte 3 = = $16# *when defined(XK_CAUCASUS) or true:# latinconstXKc_Ccedillaabovedot*: KeySym = 0x000016A2XKc_Xabovedot*: KeySym = 0x000016A3XKc_Qabovedot*: KeySym = 0x000016A5XKc_Ibreve*: KeySym = 0x000016A6XKc_IE*: KeySym = 0x000016A7XKc_UO*: KeySym = 0x000016A8XKc_Zstroke*: KeySym = 0x000016A9XKc_Gcaron*: KeySym = 0x000016AAXKc_Obarred*: KeySym = 0x000016AFXK_ccedillaabovedot*: KeySym = 0x000016B2XK_xabovedot*: KeySym = 0x000016B3XKc_Ocaron*: KeySym = 0x000016B4XK_qabovedot*: KeySym = 0x000016B5XK_ibreve*: KeySym = 0x000016B6XK_ie*: KeySym = 0x000016B7XK_uo*: KeySym = 0x000016B8XK_zstroke*: KeySym = 0x000016B9XK_gcaron*: KeySym = 0x000016BAXK_ocaron*: KeySym = 0x000016BDXK_obarred*: KeySym = 0x000016BFXKc_SCHWA*: KeySym = 0x000016C6XK_schwa*: KeySym = 0x000016F6 # those are not really Caucasus, but I put them here for now\# For InupiakXKc_Lbelowdot*: KeySym = 0x000016D1XKc_Lstrokebelowdot*: KeySym = 0x000016D2XK_lbelowdot*: KeySym = 0x000016E1XK_lstrokebelowdot*: KeySym = 0x000016E2 # For GuaraniXKc_Gtilde*: KeySym = 0x000016D3XK_gtilde*: KeySym = 0x000016E3# XK_CAUCASUS#*# * Vietnamese# * Byte 3 = = $1e# *when defined(XK_VIETNAMESE) or true:constXKc_Abelowdot*: KeySym = 0x00001EA0XK_abelowdot*: KeySym = 0x00001EA1XKc_Ahook*: KeySym = 0x00001EA2XK_ahook*: KeySym = 0x00001EA3XKc_Acircumflexacute*: KeySym = 0x00001EA4XK_acircumflexacute*: KeySym = 0x00001EA5XKc_Acircumflexgrave*: KeySym = 0x00001EA6XK_acircumflexgrave*: KeySym = 0x00001EA7XKc_Acircumflexhook*: KeySym = 0x00001EA8XK_acircumflexhook*: KeySym = 0x00001EA9XKc_Acircumflextilde*: KeySym = 0x00001EAAXK_acircumflextilde*: KeySym = 0x00001EABXKc_Acircumflexbelowdot*: KeySym = 0x00001EACXK_acircumflexbelowdot*: KeySym = 0x00001EADXKc_Abreveacute*: KeySym = 0x00001EAEXK_abreveacute*: KeySym = 0x00001EAFXKc_Abrevegrave*: KeySym = 0x00001EB0XK_abrevegrave*: KeySym = 0x00001EB1XKc_Abrevehook*: KeySym = 0x00001EB2XK_abrevehook*: KeySym = 0x00001EB3XKc_Abrevetilde*: KeySym = 0x00001EB4XK_abrevetilde*: KeySym = 0x00001EB5XKc_Abrevebelowdot*: KeySym = 0x00001EB6XK_abrevebelowdot*: KeySym = 0x00001EB7XKc_Ebelowdot*: KeySym = 0x00001EB8XK_ebelowdot*: KeySym = 0x00001EB9XKc_Ehook*: KeySym = 0x00001EBAXK_ehook*: KeySym = 0x00001EBBXKc_Etilde*: KeySym = 0x00001EBCXK_etilde*: KeySym = 0x00001EBDXKc_Ecircumflexacute*: KeySym = 0x00001EBEXK_ecircumflexacute*: KeySym = 0x00001EBFXKc_Ecircumflexgrave*: KeySym = 0x00001EC0XK_ecircumflexgrave*: KeySym = 0x00001EC1XKc_Ecircumflexhook*: KeySym = 0x00001EC2XK_ecircumflexhook*: KeySym = 0x00001EC3XKc_Ecircumflextilde*: KeySym = 0x00001EC4XK_ecircumflextilde*: KeySym = 0x00001EC5XKc_Ecircumflexbelowdot*: KeySym = 0x00001EC6XK_ecircumflexbelowdot*: KeySym = 0x00001EC7XKc_Ihook*: KeySym = 0x00001EC8XK_ihook*: KeySym = 0x00001EC9XKc_Ibelowdot*: KeySym = 0x00001ECAXK_ibelowdot*: KeySym = 0x00001ECBXKc_Obelowdot*: KeySym = 0x00001ECCXK_obelowdot*: KeySym = 0x00001ECDXKc_Ohook*: KeySym = 0x00001ECEXK_ohook*: KeySym = 0x00001ECFXKc_Ocircumflexacute*: KeySym = 0x00001ED0XK_ocircumflexacute*: KeySym = 0x00001ED1XKc_Ocircumflexgrave*: KeySym = 0x00001ED2XK_ocircumflexgrave*: KeySym = 0x00001ED3XKc_Ocircumflexhook*: KeySym = 0x00001ED4XK_ocircumflexhook*: KeySym = 0x00001ED5XKc_Ocircumflextilde*: KeySym = 0x00001ED6XK_ocircumflextilde*: KeySym = 0x00001ED7XKc_Ocircumflexbelowdot*: KeySym = 0x00001ED8XK_ocircumflexbelowdot*: KeySym = 0x00001ED9XKc_Ohornacute*: KeySym = 0x00001EDAXK_ohornacute*: KeySym = 0x00001EDBXKc_Ohorngrave*: KeySym = 0x00001EDCXK_ohorngrave*: KeySym = 0x00001EDDXKc_Ohornhook*: KeySym = 0x00001EDEXK_ohornhook*: KeySym = 0x00001EDFXKc_Ohorntilde*: KeySym = 0x00001EE0XK_ohorntilde*: KeySym = 0x00001EE1XKc_Ohornbelowdot*: KeySym = 0x00001EE2XK_ohornbelowdot*: KeySym = 0x00001EE3XKc_Ubelowdot*: KeySym = 0x00001EE4XK_ubelowdot*: KeySym = 0x00001EE5XKc_Uhook*: KeySym = 0x00001EE6XK_uhook*: KeySym = 0x00001EE7XKc_Uhornacute*: KeySym = 0x00001EE8XK_uhornacute*: KeySym = 0x00001EE9XKc_Uhorngrave*: KeySym = 0x00001EEAXK_uhorngrave*: KeySym = 0x00001EEBXKc_Uhornhook*: KeySym = 0x00001EECXK_uhornhook*: KeySym = 0x00001EEDXKc_Uhorntilde*: KeySym = 0x00001EEEXK_uhorntilde*: KeySym = 0x00001EEFXKc_Uhornbelowdot*: KeySym = 0x00001EF0XK_uhornbelowdot*: KeySym = 0x00001EF1XKc_Ybelowdot*: KeySym = 0x00001EF4XK_ybelowdot*: KeySym = 0x00001EF5XKc_Yhook*: KeySym = 0x00001EF6XK_yhook*: KeySym = 0x00001EF7XKc_Ytilde*: KeySym = 0x00001EF8XK_ytilde*: KeySym = 0x00001EF9XKc_Ohorn*: KeySym = 0x00001EFA # U+01a0XK_ohorn*: KeySym = 0x00001EFB # U+01a1XKc_Uhorn*: KeySym = 0x00001EFC # U+01afXK_uhorn*: KeySym = 0x00001EFD # U+01b0XK_combining_tilde*: KeySym = 0x00001E9F # U+0303XK_combining_grave*: KeySym = 0x00001EF2 # U+0300XK_combining_acute*: KeySym = 0x00001EF3 # U+0301XK_combining_hook*: KeySym = 0x00001EFE # U+0309XK_combining_belowdot*: KeySym = 0x00001EFF # U+0323# XK_VIETNAMESEwhen defined(XK_CURRENCY) or true:constXK_EcuSign*: KeySym = 0x000020A0XK_ColonSign*: KeySym = 0x000020A1XK_CruzeiroSign*: KeySym = 0x000020A2XK_FFrancSign*: KeySym = 0x000020A3XK_LiraSign*: KeySym = 0x000020A4XK_MillSign*: KeySym = 0x000020A5XK_NairaSign*: KeySym = 0x000020A6XK_PesetaSign*: KeySym = 0x000020A7XK_RupeeSign*: KeySym = 0x000020A8XK_WonSign*: KeySym = 0x000020A9XK_NewSheqelSign*: KeySym = 0x000020AAXK_DongSign*: KeySym = 0x000020ABXK_EuroSign*: KeySym = 0x000020AC# implementation
{.deadCodeElim: on.}constXC_num_glyphs* = 154XC_X_cursor* = 0XC_arrow* = 2XC_based_arrow_down* = 4XC_based_arrow_up* = 6XC_boat* = 8XC_bogosity* = 10XC_bottom_left_corner* = 12XC_bottom_right_corner* = 14XC_bottom_side* = 16XC_bottom_tee* = 18XC_box_spiral* = 20XC_center_ptr* = 22XC_circle* = 24XC_clock* = 26XC_coffee_mug* = 28XC_cross* = 30XC_cross_reverse* = 32XC_crosshair* = 34XC_diamond_cross* = 36XC_dot* = 38XC_dotbox* = 40XC_double_arrow* = 42XC_draft_large* = 44XC_draft_small* = 46XC_draped_box* = 48XC_exchange* = 50XC_fleur* = 52XC_gobbler* = 54XC_gumby* = 56XC_hand1* = 58XC_hand2* = 60XC_heart* = 62XC_icon* = 64XC_iron_cross* = 66XC_left_ptr* = 68XC_left_side* = 70XC_left_tee* = 72XC_leftbutton* = 74XC_ll_angle* = 76XC_lr_angle* = 78XC_man* = 80XC_middlebutton* = 82XC_mouse* = 84XC_pencil* = 86XC_pirate* = 88XC_plus* = 90XC_question_arrow* = 92XC_right_ptr* = 94XC_right_side* = 96XC_right_tee* = 98XC_rightbutton* = 100XC_rtl_logo* = 102XC_sailboat* = 104XC_sb_down_arrow* = 106XC_sb_h_double_arrow* = 108XC_sb_left_arrow* = 110XC_sb_right_arrow* = 112XC_sb_up_arrow* = 114XC_sb_v_double_arrow* = 116XC_shuttle* = 118XC_sizing* = 120XC_spider* = 122XC_spraycan* = 124XC_star* = 126XC_target* = 128XC_tcross* = 130XC_top_left_arrow* = 132XC_top_left_corner* = 134XC_top_right_corner* = 136XC_top_side* = 138XC_top_tee* = 140XC_trek* = 142XC_ul_angle* = 144XC_umbrella* = 146XC_ur_angle* = 148XC_watch* = 150XC_xterm* = 152# implementation
// typedef struct _XkbRF_VarDefs {// char * model;// char * layout;// char * variant;// char * options;// unsigned short sz_extra;// unsigned short num_extra;// char * extra_names;// char ** extra_values;// } XkbRF_VarDefsRec,*XkbRF_VarDefsPtr;// typedef struct _XkbRF_VarDesc {// char * name;// char * desc;// } XkbRF_VarDescRec, *XkbRF_VarDescPtr;// typedef struct _XkbRF_DescribeVars {// int sz_desc;// int num_desc;// XkbRF_VarDescPtr desc;// } XkbRF_DescribeVarsRec,*XkbRF_DescribeVarsPtr;// typedef struct _XkbRF_Rule {// int number;// int layout_num;// int variant_num;// char * model;// char * layout;// char * variant;// char * option;// /* yields */// char * keycodes;// char * symbols;// char * types;// char * compat;// char * geometry;// char * keymap;// unsigned flags;// } XkbRF_RuleRec,*XkbRF_RulePtr;// typedef struct _XkbRF_Group {// int number;// char * name;// char * words;// } XkbRF_GroupRec, *XkbRF_GroupPtr;// #define XkbRF_PendingMatch (1L<<1)// #define XkbRF_Option (1L<<2)// #define XkbRF_Append (1L<<3)// #define XkbRF_Normal (1L<<4)// #define XkbRF_Invalid (1L<<5)// typedef struct _XkbRF_Rules {// XkbRF_DescribeVarsRec models;// XkbRF_DescribeVarsRec layouts;// XkbRF_DescribeVarsRec variants;// XkbRF_DescribeVarsRec options;// unsigned short sz_extra;// unsigned short num_extra;// char ** extra_names;// XkbRF_DescribeVarsPtr extra;// unsigned short sz_rules;// unsigned short num_rules;// XkbRF_RulePtr rules;// unsigned short sz_groups;// unsigned short num_groups;// XkbRF_GroupPtr groups;// } XkbRF_RulesRec, *XkbRF_RulesPtr;// /***====================================================================***/// _XFUNCPROTOBEGIN// extern Bool XkbRF_GetComponents(// XkbRF_RulesPtr /* rules */,// XkbRF_VarDefsPtr /* var_defs */,// XkbComponentNamesPtr /* names */// );// extern XkbRF_RulePtr XkbRF_AddRule(// XkbRF_RulesPtr /* rules */// );// extern XkbRF_GroupPtr XkbRF_AddGroup(XkbRF_RulesPtr rules);// extern Bool XkbRF_LoadRules(// FILE * /* file */,// XkbRF_RulesPtr /* rules */// );// extern Bool XkbRF_LoadRulesByName(// char * /* base */,// char * /* locale */,// XkbRF_RulesPtr /* rules */// );// /***====================================================================***/// extern XkbRF_VarDescPtr XkbRF_AddVarDesc(// XkbRF_DescribeVarsPtr /* vars */// );// extern XkbRF_VarDescPtr XkbRF_AddVarDescCopy(// XkbRF_DescribeVarsPtr /* vars */,// XkbRF_VarDescPtr /* copy_from */// );// extern XkbRF_DescribeVarsPtr XkbRF_AddVarToDescribe(// XkbRF_RulesPtr /* rules */,// char * /* name */// );// extern Bool XkbRF_LoadDescriptions(// FILE * /* file */,// XkbRF_RulesPtr /* rules */// );// extern Bool XkbRF_LoadDescriptionsByName(// char * /* base */,// char * /* locale */,// XkbRF_RulesPtr /* rules */// );// extern XkbRF_RulesPtr XkbRF_Load(// char * /* base */,// char * /* locale */,// Bool /* wantDesc */,// Bool /* wantRules */// );// extern XkbRF_RulesPtr XkbRF_Create(// int /* sz_rules */,// int /* sz_extra */// );// /***====================================================================***/// extern void XkbRF_Free(// XkbRF_RulesPtr /* rules */,// Bool /* freeRules */// );// /***====================================================================***/// #define _XKB_RF_NAMES_PROP_ATOM "_XKB_RULES_NAMES"// #define _XKB_RF_NAMES_PROP_MAXLEN 1024// #ifndef XKB_IN_SERVER// extern Bool XkbRF_GetNamesProp(// Display * /* dpy */,// char ** /* rules_file_rtrn */,// XkbRF_VarDefsPtr /* var_defs_rtrn */// );// extern Bool XkbRF_SetNamesProp(// Display * /* dpy */,// char * /* rules_file */,// XkbRF_VarDefsPtr /* var_defs */// );// #endif// _XFUNCPROTOEND// #endif /* _XKBRULES_H_ */
import ../vk/vulkanproc KB_csizet*(amount: int): csize_t = csize_t (amount * 1000)proc MB_csizet*(amount: int): csize_t = csize_t (amount * 1000 * 1000)proc GB_csizet*(amount: int): csize_t = csize_t (amount * 1000 * 1000 * 1000)proc KiB_csizet*(amount: int): csize_t =csize_t (amount * 1024)proc MiB_csizet*(amount: int): csize_t =csize_t (amount * 1024 * 1024)proc GiB_csizet*(amount: int): csize_t =csize_t (amount * 1024 * 1024 * 1024)proc KB_int*(amount: int): int = (amount * 1000)proc MB_int*(amount: int): int = (amount * 1000 * 1000)proc GB_int*(amount: int): int = (amount * 1000 * 1000 * 1000)proc KiB_int*(amount: int): int = (amount * 1024)proc MiB_int*(amount: int): int = (amount * 1024 * 1024)proc GiB_int*(amount: int): int = (amount * 1024 * 1024 * 1024)proc KB_vkds*(amount: int): VkDeviceSize = VkDeviceSize(amount * 1000)proc MB_vkds*(amount: int): VkDeviceSize = VkDeviceSize(amount * 1000 * 1000)proc GB_vkds*(amount: int): VkDeviceSize = VkDeviceSize(amount * 1000 * 1000 * 1000)proc KiB_vkds*(amount: int): VkDeviceSize =VkDeviceSize (amount * 1024)proc MiB_vkds*(amount: int): VkDeviceSize =VkDeviceSize (amount * 1024 * 1024)proc GiB_vkds*(amount: int): VkDeviceSize =VkDeviceSize (amount * 1024 * 1024 * 1024)
{.deadCodeElim: on.}{.experimental: "codeReordering".}import ktxtypes, glformat, math, bitops, ../vk/vulkan, ../vk/[ vulkan_utils, vkTypes, vulkan_record], streams, bitops, ../drawable/texture, ../utils/letstypeKtxInfo = objectendianness*: uint32glType*: uint32glTypeSize*: uint32glFormat*: uint32glInternalFormat*: uint32glBaseInternalFormat*: uint32pixelWidth*: uint32pixelHeight*: uint32pixelDepth*: uint32numberOfArrayElements*: uint32numberOfFaces*: uint32numberOfMipmapLevels*: uint32bytesOfKeyValueData*: uint32constidentBytes: array[12, uint8] = [0xAB.uint8, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A]#from std/system/io import openproc ktxSwapEndian32*(pData32: var uint32, count: int) =for x in 0 ..< count:# *pData32++ = (x << 24) | ((x addr 0xFF00) << 8) | ((x addr 0xFF0000) >> 8) | (x >> 24)pData32 += 1pdata32 = bitor( (x shl 24), ( bitand(x, 0xFF00) shl 8), ( bitand(x, 0xFF0000) shr 8)).uint32#Equivalent to (n * ceil(nbytes / n)) - nbytesproc padLen*(n: uint32, nBytes: uint32 ): uint32 =(n - 1) - (nBytes + ( n - 1 ) and (n-1) ).uint32#Calculate bytes of of padding needed to reach KTX_GL_UNPACK_ALIGNMENT.proc padUnpackAlignLen*(rowBytes: uint32): uint32 =padLen(KTX_GL_UNPACK_ALIGNMENT, rowBytes)proc padRow*(rowBytes: var uint32) =var padding: uint32 = padUnpackAlignLen rowBytesrowBytes += paddingproc aktxTextureImageSize*( texture: KtxTexture, level: uint32): csize_t =# THIS IS NOT CORRECT# my levels are not always right#, so my levelWidth/height are wrongvarformatInfo: GlFormatSize = texture.formatInfobc = BlockCount()blockSizeInBytes: uint32rowBytes: uint32levelWidth = (texture.baseWidth shr level)levelHeight = (texture.baseHeight shr level)bc.x = ceil(levelWidth.float / formatInfo.blockWidth.float).uint32bc.y = ceil(levelHeight.float / formatInfo.blockHeight.float).uint32bc.x = max(1.uint32, bc.x)bc.y = max(1.uint32, bc.y)blockSizeInBytes = (formatInfo.blockSizeInBits.int / 8).uint32if bitand(formatInfo.flags, 2).bool: # 2 -> GL_FORMAT_SIZE_COMPRESSED_BIT = 0x00000002,assert texture.isCompressedreturn bc.x + bc.y * blockSizeInByteselse:assert formatInfo.blockDepth == 1assert formatInfo.blockDepth == formatinfo.blockHeightassert formatInfo.blockWidth == formatInfo.blockHeightrowBytes = bc.x * blockSizeInBytespadRow rowBytesreturn rowBytes * bc.yproc aktxTextureLayerSize*( texture: KtxTexture, level: uint32): csize_t =#[As there are no 3D cubemaps, the image's z block countwill always be 1 for cubemaps and numFaceswill always be 1 for 3D textures sothe multiply is safe. 3D cubemaps, if they existed,would require imageSize * (blockCount.z + texture.numFaces)]## echo "aktxTextureLayerSize called GIS with level: ", levelvarformatInfo: GlFormatSize = texture.formatInfoblockCountZ: uint32 = max(1.uint32, (texture.baseDepth.int / formatInfo.blockDepth.int).uint32 shr level)#the trouble starts hereimageSize: csize_t = aktxTextureImageSize(texture, level)layerSize: csize_t = imageSize * blockCountZ#echo "fi.blockdepth:: ", formatInfo.blockDepthreturn layerSize * texture.numFacesproc aktxTextureLevelSize*( texture: KtxTexture, level: uint32): csize_t =result = aktxTextureLayerSize(texture, level) * texture.numLayersproc aktxTextureDataSize*( texture: KtxTexture, levels: uint32): csize_t =var dataSize: csize_tfor i in 0 ..< levels:# i IS_ corrrect herevar levelSize = texture.aktxTextureLevelSize(i)#echo("levelSize: ", levelSize)dataSize += cast[csize_t](levelSize)dataSizeproc aKtxTextureImageOffset*( texture: KtxTexture, level: uint32, layer: uint32, faceSlice: uint32, pOffset: var csize_t) =if texture.isNil: quit("ERROR: aKtxTextureImageOffset: Texture is nil")if level >= texture.numLevels: quit("ERROR: aKtxTextureImageOffset: level > texture.numLevels")if layer >= texture.numLayers: quit("ERROR: aKtxTextureImageOffset: layer > texture.numLevels")if texture.isCubeMap:var maxSlice = max(1.uint, (texture.baseDepth shr level))if faceSlice >= maxSlice: quit("ERROR: aKtxTextureImageOffset: cubemap: faceSlize > maxSlice")#Get the size of the data up to the start of the indexed level.pOffSet = aktxTextureDataSize(texture, level)#All layers, faces & slices within a level are the same size.if layer != 0:var ls: csize_t = aktxTextureLayerSize(texture, level)pOffSet += layer * lsif faceSlice != 0:#echo "aKtxTextureImageOffset called GIS with level: ", levelvar imageSize: csize_t = aktxTextureImageSize(texture, level)pOffSet += faceSlice * imageSize# TODO:# 1. Right now we just assume Vkmrec.vkRec.queue usage for the copyQueue# But this is not flexible, so for the future, de-couple plsproc loadFromFile*( rec: Vulkan_Record, texture: Texture2D, texturePath: string = "/run/media/j/ZZZ/Dev/shapes/data/textures/font_sdf_rgba.ktx", format: VkFormat = VK_FORMAT_R8G8B8A8_UNORM, imageUsageFlags: VkImageUsageFlags = VkImageUsageFlags 4, imageLayout: VkImageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL#, VkQueue copyQueue) =varreadIdent: array[12, uint8]info: KtxInfop: seq[uint32]p2: seq[uint8]imageSize: uint32kvd: seq[char]ktxTexture = KtxTexture( extraInfo: KtxExtraInfo(), formatInfo: GlFormatSize(), stream: StringStream())loadKTXFile(texturePath, ktxTexture)let fs = newFileStream "/run/media/j/ZZZ/Dev/shapes/data/textures/font_sdf_rgba.ktx"#1. Read the 12 byte identifier and make sure it's validdiscard fs.readData(addr readIdent[0], 12)assert readIdent == identBytes#2. Parse the 13 uint32 info section into structdiscard fs.readData(addr info, uint32.sizeof * 13)#handle checking spec-specifics in another fuction#3 parse key-value meta-data within the size of bytesOfKeyValueDatakvd.setLen info.bytesOfKeyValueDatadiscard fs.readData(addr kvd[0], info.bytesOfKeyValueData.int)#4 get image size & create texture bufferfor mip in 0..info.numberOfMipmapLevels:p.setLen p.len + 1p.add fs.readuint32imageSize = p[mip]p2.setLen p2.len + imageSize.intfor face in 0..info.numberOfFaces - 1:p2.setLen p2.len + 1discard fs.readData(addr p2[0], imageSize.int)texture.width = 512texture.height = 512texture.mipLevels = 1var#ktxTextureData: ptr uint8 = cast[ptr uint8](ktxTexture.pData) #isNilktxTextureSize: csize_t = csize_t (p2.len * uint8.sizeof)formatProperties: VkFormatPropertiesuseStaging: bool = true # false if linear tiling ever becomes useful?memReqs: VkMemoryRequirements#memAllocInfo = VkMemoryAllocateInfo()copyCmd: VkCommandBuffer#cmdBufAllocateInfo = VkCommandBufferAllocateInfo( commandPool: rec.commandPool)# Get device properties for the requested texture formatvkGetPhysicalDeviceFormatProperties(rec.gpu.handle, format, addr formatProperties)# Only use linear tiling if requested (and supported by the device)# Support for linear tiling is mostly limited# so prefer to use optimal tiling instead# On most implementations linear tiling will only support a very# limited amount of formats and features (mip maps, cubemaps, arrays, etc.)# Use a separate command buffer for texture loadingcopyCmd = rec.vk_device.createCommandBuffers( rec.command_pool, amount = 1, begin = true)[0]if useStaging:# Create a host-visible staging buffer that contains the raw image datavardata: pointeroffset: csize_tbufferCopyRegions: seq[VkBufferImageCopy]memAllocInfo = VkMemoryAllocateInfo(sType: VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)stagingBuffer: VkBufferstagingMemory: VkDeviceMemory# # This buffer is used as a transfer source for the buffer copybufferCreateInfo = VkBufferCreateInfo( sType: VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, size: VkDevicesize ktxTextureSize, usage: VkBufferUsageFlags VK_BUFFER_USAGE_TRANSFER_SRC_BIT, sharingMode : VK_SHARING_MODE_EXCLUSIVE )discard vkCreateBuffer(rec.vk_device, addr bufferCreateInfo, nil, addr stagingBuffer)# Get memory requirements for the staging buffer (alignment, memory type bits)vkGetBufferMemoryRequirements(rec.vk_device, stagingBuffer, addr memReqs)memAllocInfo.allocationSize = memReqs.size# Get memory type index for a host visible buffermemAllocInfo.memoryTypeIndex = rec.gpu.memory_properties.getMemoryType(memReqs.memoryTypeBits, VkMemoryPropertyFlags bitor( ord VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, ord VK_MEMORY_PROPERTY_HOST_COHERENT_BIT))discard vkAllocateMemory(rec.vk_device, addr memAllocInfo, nil, addr stagingMemory)discard vkBindBufferMemory(rec.vk_device, stagingBuffer, stagingMemory, vk0)# Copy texture data into staging bufferdiscard vkMapMemory(rec.logicalDevice, stagingMemory, vk0, memReqs.size, VkMemoryMapFlags 0, addr data)copymem(data, p2[0].addr, ktxTextureSize)vkUnmapMemory(rec.logicalDevice, stagingMemory)# Setup buffer copy regions for each mip level# echo texture.miplevelsfor i in 0 ..< texture.mipLevels:aKtxTextureImageOffset(ktxTexture, i.uint32, 0, 0, offset)var bufferCopyRegion = VkBufferImageCopy()bufferCopyRegion.imageSubresource.aspectMask = VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BITbufferCopyRegion.imageSubresource.mipLevel = ibufferCopyRegion.imageSubresource.baseArrayLayer = 0bufferCopyRegion.imageSubresource.layerCount = 1bufferCopyRegion.imageExtent.width = max(1.uint, ktxTexture.baseWidth shr i).uint32bufferCopyRegion.imageExtent.height = max(1.uint, ktxTexture.baseHeight shr i).uint32bufferCopyRegion.imageExtent.depth = 1bufferCopyRegion.bufferOffset = VKDeviceSize offsetbufferCopyRegions.add bufferCopyRegion# Create optimal tiled target imagevar imageCreateInfo = VkImageCreateInfo()imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFOimageCreateInfo.imageType = VK_IMAGE_TYPE_2DimageCreateInfo.format = formatimageCreateInfo.mipLevels = texture.mipLevelsimageCreateInfo.arrayLayers = 1imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BITimageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMALimageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVEimageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINEDimageCreateInfo.extent = VkExtent3d(width: texture.width, height: texture.height, depth: 1)imageCreateInfo.usage = VkImageUsageFlags bitor(imageUsageFlags.ord, VK_IMAGE_USAGE_TRANSFER_DST_BIT.ord)# Ensure that the TRANSFER_DST bit is set for staging#if not(imageCreateInfo.usage addr VK_IMAGE_USAGE_TRANSFER_DST_BIT)):#imageCreateInfo.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BITdiscard vkCreateImage(rec.logicalDevice, addr imageCreateInfo, nil, addr texture.image)vkGetImageMemoryRequirements(rec.logicalDevice, texture.image, addr memReqs)memAllocInfo.allocationSize = memReqs.sizememAllocInfo.memoryTypeIndex = rec.gpu.memory_properties.getMemoryType(memReqs.memoryTypeBits, VkMemoryPropertyFlags VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)discard vkAllocateMemory(rec.logicalDevice, addr memAllocInfo, nil, addr texture.deviceMemory)discard vkBindImageMemory(rec.logicalDevice, texture.image, texture.deviceMemory, vk0)var subresourceRange = VkImageSubresourceRange()subresourceRange.aspectMask = VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BITsubresourceRange.baseMipLevel = 0subresourceRange.levelCount = texture.mipLevelssubresourceRange.layerCount = 1# Image barrier for optimal image (target)# Optimal image will be used as destination for the copysetImageLayout( copyCmd, texture.image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subresourceRange, srcStageMask = VkPipelineStageFlags VK_PIPELINE_STAGE_TRANSFER_BIT, dstStageMask = VkPipelineStageFlags VK_PIPELINE_STAGE_TRANSFER_BIT)# Copy mip levels from staging buffervkCmdCopyBufferToImage( copyCmd, stagingBuffer, texture.image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, bufferCopyRegions.len.uint32, addr bufferCopyRegions[0])# Change texture image layout to shader read after all mip levels have been copiedtexture.imageLayout = imageLayoutsetImageLayout( copyCmd, texture.image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, imageLayout, subresourceRange, srcStageMask = VkPipelineStageFlags VK_PIPELINE_STAGE_TRANSFER_BIT, dstStageMask = VkPipelineStageFlags VK_PIPELINE_STAGE_VERTEX_INPUT_BIT.ord or VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT.ord)rec.vk_device.flushCommandBuffer(rec.queue, rec.command_pool, copyCmd)# Clean up staging resourcesvkFreeMemory(rec.logicalDevice, stagingMemory, nil)vkDestroyBuffer(rec.logicalDevice, stagingBuffer, nil)# Create a default samplervar samplerCreateInfo = VkSamplerCreateInfo( sType: VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, magFilter: VK_FILTER_LINEAR, minFilter: VK_FILTER_LINEAR, mipmapMode: VK_SAMPLER_MIPMAP_MODE_LINEAR, addressModeU: VK_SAMPLER_ADDRESS_MODE_REPEAT, addressModeV: VK_SAMPLER_ADDRESS_MODE_REPEAT, addressModeW: VK_SAMPLER_ADDRESS_MODE_REPEAT, mipLodBias: 0.0, compareOp: VK_COMPARE_OP_NEVER, minLod: 0.0, anisotropyEnable: vkfalse, maxAnisotropy: 1.0)# # Max level-of-detail should match mip level countsamplerCreateInfo.maxLod = texture.mipLevels.float32# Only enable anisotropic filtering if enabled on the device#samplerCreateInfo.maxAnisotropy = if (rec.deviceFeatures.samplerAnisotropy).bool: rec.deviceProperties.limits.maxSamplerAnisotropy else: 1.0f#samplerCreateInfo.anisotropyEnable = if (rec.deviceFeatures.samplerAnisotropy).bool: vktrue else: vkfalsesamplerCreateInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITEdiscard vkCreateSampler(rec.logicalDevice, addr samplerCreateInfo, nil, addr texture.sampler)# Create image view# Textures are not directly accessed by the shaders and# are abstracted by image views containing additional# information and sub resource rangesvar viewCreateInfo = VkImageViewCreateInfo()viewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFOviewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2DviewCreateInfo.format = formatviewCreateInfo.components = VkComponentMapping( r: VK_COMPONENT_SWIZZLE_R, g: VK_COMPONENT_SWIZZLE_G, b: VK_COMPONENT_SWIZZLE_B, a: VK_COMPONENT_SWIZZLE_A)viewCreateInfo.subresourceRange = VkImageSubresourceRange( aspectMask: VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BIT, baseMipLevel: 0, levelCount: 1, baseArrayLayer: 0, layerCount: 1)# Linear tiling usually won't support mip maps# Only set mip map count if optimal tiling is usedviewCreateInfo.subresourceRange.levelCount = texture.mipLevelsviewCreateInfo.image = texture.imagediscard vkCreateImageView(rec.logicalDevice, addr viewCreateInfo, nil, addr texture.view)# # Update descriptor image info member that can be used for setting up descriptor sets#updateDescriptor()texture.descriptor.sampler = texture.samplertexture.descriptor.imageView = texture.viewtexture.descriptor.imageLayout = texture.imageLayoutproc checkKtxHeader( pHeader: ptr KTX_header, pSuppInfo: var KtxExtraInfo) =var# KTX_IDENTIFIER_REFident_ref: array[12, uint8] = [0xAB.uint8, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A]max_dim: uint32#assert(pHeader != nil and pSuppInfo != nil)# Compare identifier, is this a KTX file?if not equalMem(addr pHeader.identifier, addr ident_ref, 12): quit("checkKTXHeader: KTX_UNKNOWN_FILE_FORMAT")if (pHeader.endianness == endianRefRev):echo "indian hit"# Convert endianness of pHeader fields.ktxSwapEndian32( pHeader.glType, 12)if (pHeader.glTypeSize != 1) and(pHeader.glTypeSize != 2) and(pHeader.glTypeSize != 4):# Only 8-, 16-, and 32-bit types supported so far.quit("KTX_FILE_DATA_ERROR")elif pHeader.endianness != 67305985: # . KTX_ENDIAN_REF (0x04030201)quit("KTX_FILE_DATA_ERROR[2]")# Check glType and glFormatpSuppInfo.compressed = 0if (pHeader.glType == 0 or pHeader.glFormat == 0):# either both or none of glType, glFormat must be zeroif (pHeader.glType + pHeader.glFormat != 0): quit("KTX_FILE_DATA_ERROR[3]")pSuppInfo.compressed = 1# glInternalFormat is either unsized (which is no longer and should# never have been supported by libktx) or glFormat is sized.if (pHeader.glFormat == pHeader.glInternalformat): quit("KTX_FILE_DATA_ERROR[4]")# Check texture dimensions. KTX files can store 8 types of textures:# 1D, 2D, 3D, cube, and array variants of these. There is currently# no GL extension for 3D array textures.# texture must have width# texture must have height if it has depthif ((pHeader.pixelWidth == 0) or (pHeader.pixelDepth > 0 and pHeader.pixelHeight == 0)):quit("KTX_FILE_DATA_ERROR[5]")if (pHeader.pixelDepth > 0):# No 3D array textures yet.if (pHeader.numberOfArrayElements > 0): quit("KTX_UNSUPPORTED_TEXTURE_TYPE")pSuppInfo.textureDimension = 3elif (pHeader.pixelHeight > 0): pSuppInfo.textureDimension = 2else: pSuppInfo.textureDimension = 1if (pHeader.numberOfFaces == 6):# cube map needs 2D facesif (pSuppInfo.textureDimension != 2): quit("KTX_FILE_DATA_ERROR[6]")# numberOfFaces must be either 1 or 6elif (pHeader.numberOfFaces != 1): quit("KTX_FILE_DATA_ERROR[7]")# Check number of mipmap levelsif (pHeader.numberOfMipmapLevels == 0):pSuppInfo.generateMipmaps = 1pHeader.numberOfMipmapLevels = 1else: pSuppInfo.generateMipmaps = 0# This test works for arrays too because height or depth will be 0.max_dim = max(max(pHeader.pixelWidth, pHeader.pixelHeight), pHeader.pixelDepth)# Can't have more mip levels than 1 + log2(max(width, height, depth))if (max_dim < (1.uint32 shl (pHeader.numberOfMipmapLevels - 1))): quit("KTX_FILE_DATA_ERROR: mip levels > 1 + log2(max(width, height, depth)) ")proc loadKTXFile*(filename: string, target: var KtxTexture, createFlags: uint32 = 1 # KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT#[, newTex: KtxTexture]#) =varheader = KtxHeader()supp = KtxExtraInfo()#size: csize_tfs = newFileStream "/run/media/j/ZZZ/Dev/shapes/data/textures/font_sdf_rgba.ktx"discard fs.readData(cast[pointer](header), 64) #KTX_HEADER_SIZE 64 )checkKtxHeader(addr header, supp )target.glFormat = header.glFormattarget.glInternalformat = header.glInternalformattarget.glType = header.glTypeaformatSize(GLFormats target.glInternalformat, target.formatInfo)target.glBaseInternalformat = header.glBaseInternalformattarget.numDimensions = supp.textureDimensiontarget.baseWidth = header.pixelWidthassert(supp.textureDimension > 0 and supp.textureDimension < 4)case supp.textureDimension:of 1:# super->baseHeight = super->baseDepth = 1; (are they <=> ??)target.baseHeight = 1target.baseDepth = 1of 2:target.baseHeight = header.pixelHeighttarget.baseDepth = 1of 3:target.baseHeight = header.pixelHeighttarget.baseDepth = header.pixelDepthelse: echo "[!] Default case HIT for: `case supp.textureDimension`"if header.numberOfArrayElements > 0:target.numLayers = header.numberOfArrayElementstarget.isArray = trueelse:target.numLayers = 1target.isArray = falsetarget.numFaces = header.numberOfFacesif header.numberOfFaces == 6: target.isCubemap = trueelse: target.isCubemap = falsetarget.numLevels = header.numberOfMipmapLevelstarget.isCompressed = supp.compressed.booltarget.generateMipmaps = supp.generateMipmaps.boolif header.endianness == endianRefRev:target.needSwap = truetarget.glTypeSize = header.glTypeSize
{.deadCodeElim: on.}import streams, glformatconstKTX_GL_UNPACK_ALIGNMENT* = 4typeBlockCount* = ref objectx*,y*,z*: uint32KtxTextureCreateFlagBits* = enumTextureCreateNoFlags = 0TextureCreateLoadImageData = 1 # Load the images from the KTX sourceTextureCreateRawKVData = 2 # Load the raw key-value data instead of creating a @c ktxHashList from itTextureCreateSkipKVData = 4 # Skip any key-value data. This overrides the RAW_KVDATA_BITKtxExtraInfo* = ref objectcompressed*: uint8generateMipmaps*: uint8textureDimension*: uint16KtxHeader* = ref objectidentifier*: array[12,uint8]endianness*: uint32glType*: uint32glTypeSize*: uint32glFormat*: uint32glInternalformat*: uint32glBaseInternalformat*: uint32pixelWidth*: uint32pixelHeight*: uint32pixelDepth*: uint32numberOfArrayElements*: uint32numberOfFaces*: uint32numberOfMipmapLevels*: uint32bytesOfKeyValueData*: uint32KtxTextureObj = object of RootObjglFormat*: cuint # Format of the texture data, e.g., GL_RGB.glInternalformat*: cuint # Internal format of the texture data, e.g., GL_RGB8.glBaseInternalformat*: cuint # Base format of the texture data, e.g., GL_RGB.glType*: cuint # Type of the texture data, e.g, GL_UNSIGNED_BYTE.isArray*: bool # true if the texture is an array texture, i.e, a GL_TEXTURE_*_ARRAY target is to be used.isCubemap*: bool # true if the texture is a cubemap or cubemap array.isCompressed*: bool # true if @c glInternalFormat is that of a compressed texture.generateMipmaps*: bool # true if mipmaps should be generated for the texture by ktxTexture_GLUpload() or ktx_Texture_VkUpload().baseWidth*: uint # Width of the base level of the texture.baseHeight*: uint # Height of the base level of the texture.baseDepth*: uint # Depth of the base level of the texture.numDimensions*: uint # Number of dimensions in the texture: 1, 2 or 3.numLevels*: uint # Number of mip levels in the texture. Should be 1, if @c generateMipmaps is true. Can be less than a full pyramid but always starts at the base level.numLayers*: uint # Number of array layers in the texture.numFaces*: uint # Number of faces, 6 for cube maps, 1 otherw ise.createFlags*: uint32extraInfo*: KtxExtraInfoformatInfo*: GlFormatSize # Info about the image data format. */# The following are needed because image data reading can be delayed.glTypeSize*: uint32 # Size of the image data type in bytes. */stream*: StringStream # Stream connected to KTX source. */needSwap*: bool # If KTX_TRUE, image data needs byte swapping. */# kvDataHead: ktxHashList # hash list of metadata.kvDataLen: uint # Length of the metadata, if it has been extracted in its raw form, otherwise 0.# kvData: pointer # Pointer to the metadata, if it has been extracted in its raw form, otherwise NULL.dataSize*: csize_t # Length of the image data in bytes.pData*: pointer # Pointer to the image data.KtxTexture* = ref object of KtxTextureObj
{.deadCodeElim: on.}constendianRefRev* = 16909060 # 0x01020304 -> #define KTX_ENDIAN_REF_REV (0x01020304)typeGlFormatSize* = ref objectpaletteSizeInBits*: uintblockSizeInBits*: uintblockWidth*: uint# in texelsblockHeight*: uint # in texelsblockDepth*: uint # in texelsflags*: uint#currently only uncommenting and adding to GlFormats and# aFormatSize when neededGlFormats* = enum# 8 bits per component#GL_RGB8 = 32849 #0x8051 # same as GL_RGB8_EXT and GL_RGB8_OESGL_RGBA8 = 32856 # same as GL_RGBA8_EXT and GL_RGBA8_OES# GL_R8 = 33321 #0x8229 # same as GL_R8_EXT# GL_RG8 = 33323 #0x822B # same as GL_RG8_EXT# GL_R8I = 33329 #0x8231# GL_R8UI = 33330 #0x8232# GL_RG8I = 33335 #0x8237# GL_RG8UI = 33336 #0x8238# GL_SRGB8 = 35905 #0x8C41 # same as GL_SRGB8_EXT# GL_SRGB8_ALPHA8 = 35907 #0x8C43 # same as GL_SRGB8_ALPHA8_EXT# GL_RGBA8UI = 36220 #0x8D7C # same as GL_RGBA8UI_EXT# GL_RGB8UI = 36221 #0x8D7D # same as GL_RGB8UI_EXT# GL_RGBA8I = 36238 #0x8D8E # same as GL_RGBA8I_EXT# GL_RGB8I = 36239 # 0x8D8F # same as GL_RGB8I_EXT# GL_R8_SNORM = 36756 #0x8F94# GL_RG8_SNORM = 36757 #0x8F95# GL_RGB8_SNORM = 36758 #0x8F96# GL_RGBA8_SNORM = 36759 # 0x8F97# GL_SR8 = 36797 #0x8FBD # same as GL_SR8_EXT# GL_SRG8 = 36798 #0x8FBE # same as GL_SRG8_EXT# # 16 bits per component# GL_R16 = 0x822A # same as GL_R16_EXT# GL_RG16 = 0x822C # same as GL_RG16_EXT# GL_RGB16 = 0x8054 # same as GL_RGB16_EXT# GL_RGBA16 = 0x805B # same as GL_RGBA16_EXT# GL_R16_SNORM = 0x8F98 # same as GL_R16_SNORM_EXT# GL_RG16_SNORM = 0x8F99 # same as GL_RG16_SNORM_EXT# GL_RGB16_SNORM = 0x8F9A # same as GL_RGB16_SNORM_EXT# GL_RGBA16_SNORM = 0x8F9B # same as GL_RGBA16_SNORM_EXT# GL_R16UI = 0x8234# GL_RG16UI = 0x823A# GL_RGB16UI = 0x8D77 # same as GL_RGB16UI_EXT# GL_RGBA16UI = 0x8D76 # same as GL_RGBA16UI_EXT# GL_R16I = 0x8233# GL_RG16I = 0x8239# GL_RGB16I = 0x8D89 # same as GL_RGB16I_EXT# GL_RGBA16I = 0x8D88 # same as GL_RGBA16I_EXT# GL_R16F = 0x822D # same as GL_R16F_EXT# GL_RG16F = 0x822F # same as GL_RG16F_EXT# GL_RGB16F = 0x881B # same as GL_RGB16F_EXT and GL_RGB16F_ARB# GL_RGBA16F = 0x881A # sama as GL_RGBA16F_EXT and GL_RGBA16F_ARB# # 32 bits per component# GL_R32UI = 0x8236# GL_RG32UI = 0x823C# GL_RGB32UI = 0x8D71 # same as GL_RGB32UI_EXT# GL_RGBA32UI = 0x8D70 # same as GL_RGBA32UI_EXT# GL_R32I = 0x8235# GL_RG32I = 0x823B# GL_RGB32I = 0x8D83 # same as GL_RGB32I_EXT# GL_RGBA32I = 0x8D82 # same as GL_RGBA32I_EXT# GL_R32F8 = 0x822E # same as GL_R32F_EXT# GL_RG32F = 0x8230 # same as GL_RG32F_EXT# GL_RGB32F = 0x8815 # same as GL_RGB32F_EXT and GL_RGB32F_ARB# GL_RGBA32F = 0x8814 # same as GL_RGBA32F_EXT and GL_RGBA32F_ARB# # Packed# GL_R3_G3_B2 = 0x2A10# GL_RGB4 = 0x804F # same as GL_RGB4_EXT# GL_RGB5 = 0x8050 # same as GL_RGB5_EXT# GL_RGB565 = 0x8D62 # same as GL_RGB565_EXT and GL_RGB565_OES# GL_RGB10 = 0x8052 # same as GL_RGB10_EXT# GL_RGB12 = 0x8053 # same as GL_RGB12_EXT# GL_RGBA2 = 0x8055 # same as GL_RGBA2_EXT# GL_RGBA4 = 0x8056 # same as GL_RGBA4_EXT and GL_RGBA4_OES# GL_RGBA12 = 0x805A # same as GL_RGBA12_EXT# GL_RGB5_A1 = 0x8057 # same as GL_RGB5_A1_EXT and GL_RGB5_A1_OES# GL_RGB10_A2 = 0x8059 # same as GL_RGB10_A2_EXT# GL_RGB10_A2UI = 0x906F# GL_R11F_G11F_B10F = 0x8C3A # same as GL_R11F_G11F_B10F_APPLE and GL_R11F_G11F_B10F_EXT# GL_RGB9_E5 = 0x8C3D # same as GL_RGB9_E5_APPLE and GL_RGB9_E5_EXT# GL_COMPRESSED_RG 0x8226# GL_COMPRESSED_RGB 0x84ED # same as GL_COMPRESSED_RGB_ARB# GL_COMPRESSED_RGBA 0x84EE # same as GL_COMPRESSED_RGBA_ARB# GL_COMPRESSED_SRGB 0x8C48 # same as GL_COMPRESSED_SRGB_EXT# GL_COMPRESSED_SRGB_ALPHA 0x8C49 # same as GL_COMPRESSED_SRGB_ALPHA_EXT# # S3TC/DXT/BC# GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0# GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1# GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2# GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3# GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C# GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D# GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E# GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F# GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70# GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72# GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71# GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73# GL_COMPRESSED_RED_RGTC1 0x8DBB # same as GL_COMPRESSED_RED_RGTC1_EXT# GL_COMPRESSED_RG_RGTC2 0x8DBD # same as GL_COMPRESSED_RG_RGTC2_EXT# GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC # same as GL_COMPRESSED_SIGNED_RED_RGTC1_EXT# GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE # same as GL_COMPRESSED_SIGNED_RG_RGTC2_EXT# GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E # same as GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB# GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F # same as GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB# GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C # same as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB# GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D # same as GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB# ## # ETC# ## GL_ETC1_RGB8_OES 0x8D64# GL_COMPRESSED_RGB8_ETC2 0x9274# GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276# GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278# GL_COMPRESSED_SRGB8_ETC2 0x9275# GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277# GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279# GL_COMPRESSED_R11_EAC 0x9270# GL_COMPRESSED_RG11_EAC 0x9272# GL_COMPRESSED_SIGNED_R11_EAC 0x9271# GL_COMPRESSED_SIGNED_RG11_EAC 0x9273# ## # PVRTC# ## GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01# GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00# GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03# GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02# GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137# GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138# GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54# GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55# GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56# GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57# GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0# GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1# ## # ASTC# ## GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0# GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1# GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2# GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3# GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4# GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5# GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6# GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7# GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8# GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9# GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA# GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB# GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC# GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD# GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0# GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1# GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2# GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3# GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4# GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5# GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6# GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7# GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8# GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8# GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9# ## # ATC# ## GL_ATC_RGB_AMD 0x8C92# GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93# GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE# ## # Palletized (combined palette)# ## GL_PALETTE4_RGB8_OES 0x8B90# GL_PALETTE4_RGBA8_OES 0x8B91# GL_PALETTE4_R5_G6_B5_OES 0x8B92# GL_PALETTE4_RGBA4_OES 0x8B93# GL_PALETTE4_RGB5_A1_OES 0x8B94# GL_PALETTE8_RGB8_OES 0x8B95# GL_PALETTE8_RGBA8_OES 0x8B96# GL_PALETTE8_R5_G6_B5_OES 0x8B97# GL_PALETTE8_RGBA4_OES 0x8B98# GL_PALETTE8_RGB5_A1_OES 0x8B99# ## # Palletized (separate palette)# ## GL_COLOR_INDEX1_EXT 0x80E2 # deprecated# GL_COLOR_INDEX2_EXT 0x80E3 # deprecated# GL_COLOR_INDEX4_EXT 0x80E4 # deprecated# GL_COLOR_INDEX8_EXT 0x80E5 # deprecated# GL_COLOR_INDEX12_EXT 0x80E6 # deprecated# GL_COLOR_INDEX16_EXT 0x80E7 # deprecated# ## # Depth/stencil# ## GL_DEPTH_COMPONENT16 0x81A5 # same as GL_DEPTH_COMPONENT16_SGIX and GL_DEPTH_COMPONENT16_ARB# GL_DEPTH_COMPONENT24 0x81A6 # same as GL_DEPTH_COMPONENT24_SGIX and GL_DEPTH_COMPONENT24_ARB# GL_DEPTH_COMPONENT32 0x81A7 # same as GL_DEPTH_COMPONENT32_SGIX and GL_DEPTH_COMPONENT32_ARB and GL_DEPTH_COMPONENT32_OES# GL_DEPTH_COMPONENT32F 0x8CAC # same as GL_DEPTH_COMPONENT32F_ARB# GL_DEPTH_COMPONENT32F_NV 0x8DAB # note that this is different from GL_DEPTH_COMPONENT32F# GL_STENCIL_INDEX1 0x8D46 # same as GL_STENCIL_INDEX1_EXT# GL_STENCIL_INDEX4 0x8D47 # same as GL_STENCIL_INDEX4_EXT# GL_STENCIL_INDEX8 0x8D48 # same as GL_STENCIL_INDEX8_EXT# GL_STENCIL_INDEX16 0x8D49 # same as GL_STENCIL_INDEX16_EXT# GL_DEPTH24_STENCIL8 0x88F0 # same as GL_DEPTH24_STENCIL8_EXT and GL_DEPTH24_STENCIL8_OES# GL_DEPTH32F_STENCIL8 0x8CAD # same as GL_DEPTH32F_STENCIL8_ARB# GL_DEPTH32F_STENCIL8_NV 0x8DAC # note that this is different from GL_DEPTH32F_STENCIL8#[Excerpt from the original gl_format.h from https://github.com/SaschaWillems/Vulkan:in case i accidently messed up the hex converting.Someday I should probably verify or find a way to get rid of this nonsenseNote: All values marked as deprecated by sascha/whoever in the original .h are not included here, such as GL_LUMINANCE32UI_EXT or GL_ALPHA8_SNORM-------------------------------------------------------------------------------------------------------------------------------------------------Internal format to glTexImage2D, glTexImage3D, glCompressedTexImage2D, glCompressedTexImage3D, glTexStorage2D, glTexStorage3D//// 8 bits per component//#if !defined( GL_R8 )#define GL_R8 0x8229 // same as GL_R8_EXT#endif#if !defined( GL_RG8 )#define GL_RG8 0x822B // same as GL_RG8_EXT#endif#if !defined( GL_RGB8 )#define GL_RGB8 0x8051 // same as GL_RGB8_EXT and GL_RGB8_OES#endif#if !defined( GL_RGBA8 )#define GL_RGBA8 0x8058 // same as GL_RGBA8_EXT and GL_RGBA8_OES#endif#if !defined( GL_R8_SNORM )#define GL_R8_SNORM 0x8F94#endif#if !defined( GL_RG8_SNORM )#define GL_RG8_SNORM 0x8F95#endif#if !defined( GL_RGB8_SNORM )#define GL_RGB8_SNORM 0x8F96#endif#if !defined( GL_RGBA8_SNORM )#define GL_RGBA8_SNORM 0x8F97#endif#if !defined( GL_R8UI )#define GL_R8UI 0x8232#endif#if !defined( GL_RG8UI )#define GL_RG8UI 0x8238#endif#if !defined( GL_RGB8UI )#define GL_RGB8UI 0x8D7D // same as GL_RGB8UI_EXT#endif#if !defined( GL_RGBA8UI )#define GL_RGBA8UI 0x8D7C // same as GL_RGBA8UI_EXT#endif#if !defined( GL_R8I )#define GL_R8I 0x8231#endif#if !defined( GL_RG8I )#define GL_RG8I 0x8237#endif#if !defined( GL_RGB8I )#define GL_RGB8I 0x8D8F // same as GL_RGB8I_EXT#endif#if !defined( GL_RGBA8I )#define GL_RGBA8I 0x8D8E // same as GL_RGBA8I_EXT#endif#if !defined( GL_SR8 )#define GL_SR8 0x8FBD // same as GL_SR8_EXT#endif#if !defined( GL_SRG8 )#define GL_SRG8 0x8FBE // same as GL_SRG8_EXT#endif#if !defined( GL_SRGB8 )#define GL_SRGB8 0x8C41 // same as GL_SRGB8_EXT#endif#if !defined( GL_SRGB8_ALPHA8 )#define GL_SRGB8_ALPHA8 0x8C43 // same as GL_SRGB8_ALPHA8_EXT#endif//// 16 bits per component//#if !defined( GL_R16 )#define GL_R16 0x822A // same as GL_R16_EXT#endif#if !defined( GL_RG16 )#define GL_RG16 0x822C // same as GL_RG16_EXT#endif#if !defined( GL_RGB16 )#define GL_RGB16 0x8054 // same as GL_RGB16_EXT#endif#if !defined( GL_RGBA16 )#define GL_RGBA16 0x805B // same as GL_RGBA16_EXT#endif#if !defined( GL_R16_SNORM )#define GL_R16_SNORM 0x8F98 // same as GL_R16_SNORM_EXT#endif#if !defined( GL_RG16_SNORM )#define GL_RG16_SNORM 0x8F99 // same as GL_RG16_SNORM_EXT#endif#if !defined( GL_RGB16_SNORM )#define GL_RGB16_SNORM 0x8F9A // same as GL_RGB16_SNORM_EXT#endif#if !defined( GL_RGBA16_SNORM )#define GL_RGBA16_SNORM 0x8F9B // same as GL_RGBA16_SNORM_EXT#endif#if !defined( GL_R16UI )#define GL_R16UI 0x8234#endif#if !defined( GL_RG16UI )#define GL_RG16UI 0x823A#endif#if !defined( GL_RGB16UI )#define GL_RGB16UI 0x8D77 // same as GL_RGB16UI_EXT#endif#if !defined( GL_RGBA16UI )#define GL_RGBA16UI 0x8D76 // same as GL_RGBA16UI_EXT#endif#if !defined( GL_R16I )#define GL_R16I 0x8233#endif#if !defined( GL_RG16I )#define GL_RG16I 0x8239#endif#if !defined( GL_RGB16I )#define GL_RGB16I 0x8D89 // same as GL_RGB16I_EXT#endif#if !defined( GL_RGBA16I )#define GL_RGBA16I 0x8D88 // same as GL_RGBA16I_EXT#endif#if !defined( GL_R16F )#define GL_R16F 0x822D // same as GL_R16F_EXT#endif#if !defined( GL_RG16F )#define GL_RG16F 0x822F // same as GL_RG16F_EXT#endif#if !defined( GL_RGB16F )#define GL_RGB16F 0x881B // same as GL_RGB16F_EXT and GL_RGB16F_ARB#endif#if !defined( GL_RGBA16F )#define GL_RGBA16F 0x881A // sama as GL_RGBA16F_EXT and GL_RGBA16F_ARB#endif//// 32 bits per component//#if !defined( GL_R32UI )#define GL_R32UI 0x8236#endif#if !defined( GL_RG32UI )#define GL_RG32UI 0x823C#endif#if !defined( GL_RGB32UI )#define GL_RGB32UI 0x8D71 // same as GL_RGB32UI_EXT#endif#if !defined( GL_RGBA32UI )#define GL_RGBA32UI 0x8D70 // same as GL_RGBA32UI_EXT#endif#if !defined( GL_R32I )#define GL_R32I 0x8235#endif#if !defined( GL_RG32I )#define GL_RG32I 0x823B#endif#if !defined( GL_RGB32I )#define GL_RGB32I 0x8D83 // same as GL_RGB32I_EXT#endif#if !defined( GL_RGBA32I )#define GL_RGBA32I 0x8D82 // same as GL_RGBA32I_EXT#endif#if !defined( GL_R32F )#define GL_R32F 0x822E // same as GL_R32F_EXT#endif#if !defined( GL_RG32F )#define GL_RG32F 0x8230 // same as GL_RG32F_EXT#endif#if !defined( GL_RGB32F )#define GL_RGB32F 0x8815 // same as GL_RGB32F_EXT and GL_RGB32F_ARB#endif#if !defined( GL_RGBA32F )#define GL_RGBA32F 0x8814 // same as GL_RGBA32F_EXT and GL_RGBA32F_ARB#endif//// Packed//#if !defined( GL_R3_G3_B2 )#define GL_R3_G3_B2 0x2A10#endif#if !defined( GL_RGB4 )#define GL_RGB4 0x804F // same as GL_RGB4_EXT#endif#if !defined( GL_RGB5 )#define GL_RGB5 0x8050 // same as GL_RGB5_EXT#endif#if !defined( GL_RGB565 )#define GL_RGB565 0x8D62 // same as GL_RGB565_EXT and GL_RGB565_OES#endif#if !defined( GL_RGB10 )#define GL_RGB10 0x8052 // same as GL_RGB10_EXT#endif#if !defined( GL_RGB12 )#define GL_RGB12 0x8053 // same as GL_RGB12_EXT#endif#if !defined( GL_RGBA2 )#define GL_RGBA2 0x8055 // same as GL_RGBA2_EXT#endif#if !defined( GL_RGBA4 )#define GL_RGBA4 0x8056 // same as GL_RGBA4_EXT and GL_RGBA4_OES#endif#if !defined( GL_RGBA12 )#define GL_RGBA12 0x805A // same as GL_RGBA12_EXT#endif#if !defined( GL_RGB5_A1 )#define GL_RGB5_A1 0x8057 // same as GL_RGB5_A1_EXT and GL_RGB5_A1_OES#endif#if !defined( GL_RGB10_A2 )#define GL_RGB10_A2 0x8059 // same as GL_RGB10_A2_EXT#endif#if !defined( GL_RGB10_A2UI )#define GL_RGB10_A2UI 0x906F#endif#if !defined( GL_R11F_G11F_B10F )#define GL_R11F_G11F_B10F 0x8C3A // same as GL_R11F_G11F_B10F_APPLE and GL_R11F_G11F_B10F_EXT#endif#if !defined( GL_RGB9_E5 )#define GL_RGB9_E5 0x8C3D // same as GL_RGB9_E5_APPLE and GL_RGB9_E5_EXT#endif#if !defined( GL_COMPRESSED_RG )#define GL_COMPRESSED_RG 0x8226#endif#if !defined( GL_COMPRESSED_RGB )#define GL_COMPRESSED_RGB 0x84ED // same as GL_COMPRESSED_RGB_ARB#endif#if !defined( GL_COMPRESSED_RGBA )#define GL_COMPRESSED_RGBA 0x84EE // same as GL_COMPRESSED_RGBA_ARB#endif#if !defined( GL_COMPRESSED_SRGB )#define GL_COMPRESSED_SRGB 0x8C48 // same as GL_COMPRESSED_SRGB_EXT#endif#if !defined( GL_COMPRESSED_SRGB_ALPHA )#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 // same as GL_COMPRESSED_SRGB_ALPHA_EXT#endifS3TC/DXT/BC//#if !defined( GL_COMPRESSED_RGB_S3TC_DXT1_EXT )#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0#endif#if !defined( GL_COMPRESSED_RGBA_S3TC_DXT1_EXT )#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1#endif#if !defined( GL_COMPRESSED_RGBA_S3TC_DXT3_EXT )#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2#endif#if !defined( GL_COMPRESSED_RGBA_S3TC_DXT5_EXT )#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3#endif#if !defined( GL_COMPRESSED_SRGB_S3TC_DXT1_EXT )#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C#endif#if !defined( GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT )#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D#endif#if !defined( GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT )#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E#endif#if !defined( GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT )#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F#endif#if !defined( GL_COMPRESSED_LUMINANCE_LATC1_EXT )#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70#endif#if !defined( GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT )#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72#endif#if !defined( GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT )#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71#endif#if !defined( GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT )#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73#endif#if !defined( GL_COMPRESSED_RED_RGTC1 )#define GL_COMPRESSED_RED_RGTC1 0x8DBB // same as GL_COMPRESSED_RED_RGTC1_EXT#endif#if !defined( GL_COMPRESSED_RG_RGTC2 )#define GL_COMPRESSED_RG_RGTC2 0x8DBD // same as GL_COMPRESSED_RG_RGTC2_EXT#endif#if !defined( GL_COMPRESSED_SIGNED_RED_RGTC1 )#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC // same as GL_COMPRESSED_SIGNED_RED_RGTC1_EXT#endif#if !defined( GL_COMPRESSED_SIGNED_RG_RGTC2 )#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE // same as GL_COMPRESSED_SIGNED_RG_RGTC2_EXT#endif#if !defined( GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT )#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E // same as GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB#endif#if !defined( GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT )#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F // same as GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB#endif#if !defined( GL_COMPRESSED_RGBA_BPTC_UNORM )#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C // same as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB#endif#if !defined( GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM )#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D // same as GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB#endif//// ETC//#if !defined( GL_ETC1_RGB8_OES )#define GL_ETC1_RGB8_OES 0x8D64#endif#if !defined( GL_COMPRESSED_RGB8_ETC2 )#define GL_COMPRESSED_RGB8_ETC2 0x9274#endif#if !defined( GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 )#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276#endif#if !defined( GL_COMPRESSED_RGBA8_ETC2_EAC )#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278#endif#if !defined( GL_COMPRESSED_SRGB8_ETC2 )#define GL_COMPRESSED_SRGB8_ETC2 0x9275#endif#if !defined( GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 )#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277#endif#if !defined( GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC )#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279#endif#if !defined( GL_COMPRESSED_R11_EAC )#define GL_COMPRESSED_R11_EAC 0x9270#endif#if !defined( GL_COMPRESSED_RG11_EAC )#define GL_COMPRESSED_RG11_EAC 0x9272#endif#if !defined( GL_COMPRESSED_SIGNED_R11_EAC )#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271#endif#if !defined( GL_COMPRESSED_SIGNED_RG11_EAC )#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273#endif//// PVRTC//#if !defined( GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG )#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02#endif#if !defined( GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG )#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138#endif#if !defined( GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT )#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57#endif#if !defined( GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG )#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1#endif//// ASTC//#if !defined( GL_COMPRESSED_RGBA_ASTC_4x4_KHR )#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD#endif#if !defined( GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR )#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD#endif#if !defined( GL_COMPRESSED_RGBA_ASTC_3x3x3_OES )#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9#endif#if !defined( GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES )#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9#endif//// ATC//#if !defined( GL_ATC_RGB_AMD )#define GL_ATC_RGB_AMD 0x8C92#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE#endif//// Palletized (combined palette)//#if !defined( GL_PALETTE4_RGB8_OES )#define GL_PALETTE4_RGB8_OES 0x8B90#define GL_PALETTE4_RGBA8_OES 0x8B91#define GL_PALETTE4_R5_G6_B5_OES 0x8B92#define GL_PALETTE4_RGBA4_OES 0x8B93#define GL_PALETTE4_RGB5_A1_OES 0x8B94#define GL_PALETTE8_RGB8_OES 0x8B95#define GL_PALETTE8_RGBA8_OES 0x8B96#define GL_PALETTE8_R5_G6_B5_OES 0x8B97#define GL_PALETTE8_RGBA4_OES 0x8B98#define GL_PALETTE8_RGB5_A1_OES 0x8B99Depth/stencil//#if !defined( GL_DEPTH_COMPONENT16 )#define GL_DEPTH_COMPONENT16 0x81A5 // same as GL_DEPTH_COMPONENT16_SGIX and GL_DEPTH_COMPONENT16_ARB#endif#if !defined( GL_DEPTH_COMPONENT24 )#define GL_DEPTH_COMPONENT24 0x81A6 // same as GL_DEPTH_COMPONENT24_SGIX and GL_DEPTH_COMPONENT24_ARB#endif#if !defined( GL_DEPTH_COMPONENT32 )#define GL_DEPTH_COMPONENT32 0x81A7 // same as GL_DEPTH_COMPONENT32_SGIX and GL_DEPTH_COMPONENT32_ARB and GL_DEPTH_COMPONENT32_OES#endif#if !defined( GL_DEPTH_COMPONENT32F )#define GL_DEPTH_COMPONENT32F 0x8CAC // same as GL_DEPTH_COMPONENT32F_ARB#endif#if !defined( GL_DEPTH_COMPONENT32F_NV )#define GL_DEPTH_COMPONENT32F_NV 0x8DAB // note that this is different from GL_DEPTH_COMPONENT32F#endif#if !defined( GL_STENCIL_INDEX1 )#define GL_STENCIL_INDEX1 0x8D46 // same as GL_STENCIL_INDEX1_EXT#endif#if !defined( GL_STENCIL_INDEX4 )#define GL_STENCIL_INDEX4 0x8D47 // same as GL_STENCIL_INDEX4_EXT#endif#if !defined( GL_STENCIL_INDEX8 )#define GL_STENCIL_INDEX8 0x8D48 // same as GL_STENCIL_INDEX8_EXT#endif#if !defined( GL_STENCIL_INDEX16 )#define GL_STENCIL_INDEX16 0x8D49 // same as GL_STENCIL_INDEX16_EXT#endif#if !defined( GL_DEPTH24_STENCIL8 )#define GL_DEPTH24_STENCIL8 0x88F0 // same as GL_DEPTH24_STENCIL8_EXT and GL_DEPTH24_STENCIL8_OES#endif#if !defined( GL_DEPTH32F_STENCIL8 )#define GL_DEPTH32F_STENCIL8 0x8CAD // same as GL_DEPTH32F_STENCIL8_ARB#endif#if !defined( GL_DEPTH32F_STENCIL8_NV )#define GL_DEPTH32F_STENCIL8_NV 0x8DAC // note that this is different from GL_DEPTH32F_STENCIL8]## How to add a currently unhandled format:#1. echo KtxTexture.glInternalformat#2. convert the value to hex#3. ctrl-f the hex value for the matching GL_XXXXX#.4. Find the original case block of the match in the C `glGetFormatSize` (bottom of file)proc aformatSize*( format: GlFormats, pFormatSize: var GlFormatSize ) =case formatof GL_RGBA8:pFormatSize.flags = 0pFormatSize.paletteSizeInBits = 0pFormatSize.blockSizeInBits = 4 * 8pFormatSize.blockWidth = 1pFormatSize.blockHeight = 1pFormatSize.blockDepth = 1# of GL_R8 or GL_R8_SNORM or GL_R8UI or GL_R8I:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 1 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RG8 or GL_RG8_SNORM:# or GL_RG8UI:# or GL_RG8I:# or GL_SRG8:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 2 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB8 or GL_RGB8_SNORM or GL_RGB8UI or GL_RGB8I or GL_SRGB8:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 3 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_R16 or GL_R16_SNORM or GL_R16UI or GL_R16I or GL_R16F:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 2 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RG16 or GL_RG16_SNORM or GL_RG16UI or GL_RG16I or GL_RG16F :# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 4 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB16 or GL_RGB16_SNORM or GL_RGB16UI or GL_RGB16I or GL_RGB16F:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 6 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGBA16 or GL_RGBA16_SNORM or GL_RGBA16UI or GL_RGBA16I or GL_RGBA16F:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 8 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_R32UI or GL_R32I or GL_R32F:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 4 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RG32UI or GL_RG32I or GL_RG32F:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 8 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB32UI or GL_RGB32I or GL_RGB32F:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 12 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGBA32UI or GL_RGBA32I or GL_RGBA32F :# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 16 * 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# # Packed# of GL_R3_G3_B2: # 3-component 3:3:2, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB4: # 3-component 4:4:4, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 12# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB5: # 3-component 5:5:5, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 16# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB565: # 3-component 5:6:5, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 16# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB10: # 3-component 10:10:10, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB12: # 3-component 12:12:12, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 36# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGBA2: # 4-component 2:2:2:2, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGBA4: # 4-component 4:4:4:4, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 16# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGBA12: # 4-component 12:12:12:12, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 48# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB5_A1: # 4-component 5:5:5:1, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB10_A2: # 4-component 10:10:10:2, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_RGB10_A2UI: # 4-component 10:10:10:2, unsigned integer# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_R11F_G11F_B10F or GL_RGB9_E5:# pFormatSize.flags = GL_FORMAT_SIZE_PACKED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RGB_S3TC_DXT1_EXT or GL_COMPRESSED_RGBA_S3TC_DXT1_EXT or GL_COMPRESSED_SRGB_S3TC_DXT1_EXT or GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RGBA_S3TC_DXT5_EXT or GL_COMPRESSED_RGBA_S3TC_DXT3_EXT or GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT or GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_LUMINANCE_LATC1_EXT or GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT or GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RED_RGTC1 or GL_COMPRESSED_SIGNED_RED_RGTC1:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RG_RGTC2 or GL_COMPRESSED_SIGNED_RG_RGTC2:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT or GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT or GL_COMPRESSED_RGBA_BPTC_UNORM or GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_ETC1_RGB8_OES or GL_COMPRESSED_RGB8_ETC2 or GL_COMPRESSED_SRGB8_ETC2 or GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 or GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RGBA8_ETC2_EAC or GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_R11_EAC or GL_COMPRESSED_SIGNED_R11_EAC:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# of GL_COMPRESSED_RG11_EAC or GL_COMPRESSED_SIGNED_RG11_EAC:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # PVRTC# # 3-component PVRTC, 16x8 blocks, unsigned normalized# # 3-component PVRTC, 16x8 blocks, sRGB# # 4-component PVRTC, 16x8 blocks, unsigned normalized# # 4-component PVRTC, 16x8 blocks, sRGB# of GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG or GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT or GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG or GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 16# pFormatSize.blockHeight = 8# pFormatSize.blockDepth = 1# # 3-component PVRTC, 8x8 blocks, unsigned normalized# # 3-component PVRTC, 8x8 blocks, sRGB# # 4-component PVRTC, 8x8 blocks, unsigned normalized# # 4-component PVRTC, 8x8 blocks, sRGB# of GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG or GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT or GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG or GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 8# pFormatSize.blockHeight = 8# pFormatSize.blockDepth = 1# # 4-component PVRTC, 8x4 blocks, unsigned normalized# # 4-component PVRTC, 8x4 blocks, sRGB# of GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG or GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 8# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # 4-component PVRTC, 4x4 blocks, unsigned normalized# # 4-component PVRTC, 4x4 blocks, sRGB# of GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG or GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # ASTC# # 4-component ASTC, 4x4 blocks, unsigned normalized# # 4-component ASTC, 4x4 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_4x4_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # 4-component ASTC, 5x4 blocks, unsigned normalized# # 4-component ASTC, 5x4 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_5x4_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 5# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # 4-component ASTC, 5x5 blocks, unsigned normalized# # 4-component ASTC, 5x5 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_5x5_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 5# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 1# # 4-component ASTC, 6x5 blocks, unsigned normalized# # 4-component ASTC, 6x5 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_6x5_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 6# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 1# # 4-component ASTC, 6x6 blocks, unsigned normalized# # 4-component ASTC, 6x6 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_6x6_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 6# pFormatSize.blockHeight = 6# pFormatSize.blockDepth = 1# # 4-component ASTC, 8x5 blocks, unsigned normalized# # 4-component ASTC, 8x5 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_8x5_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 8# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 1# # 4-component ASTC, 8x6 blocks, unsigned normalized# # 4-component ASTC, 8x6 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_8x6_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 8# pFormatSize.blockHeight = 6# pFormatSize.blockDepth = 1# # 4-component ASTC, 8x8 blocks, unsigned normalized# # 4-component ASTC, 8x8 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_8x8_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 8# pFormatSize.blockHeight = 8# pFormatSize.blockDepth = 1# # 4-component ASTC, 10x5 blocks, unsigned normalized# # 4-component ASTC, 10x5 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_10x5_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 10# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 1# # 4-component ASTC, 10x6 blocks, unsigned normalized# # 4-component ASTC, 10x6 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_10x6_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 10# pFormatSize.blockHeight = 6# pFormatSize.blockDepth = 1# # 4-component ASTC, 10x8 blocks, unsigned normalized# # 4-component ASTC, 10x8 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_10x8_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 10# pFormatSize.blockHeight = 8# pFormatSize.blockDepth = 1# # 4-component ASTC, 10x10 blocks, unsigned normalized# # 4-component ASTC, 10x10 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_10x10_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 10# pFormatSize.blockHeight = 10# pFormatSize.blockDepth = 1# # 4-component ASTC, 12x10 blocks, unsigned normalized# # 4-component ASTC, 12x10 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_12x10_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 12# pFormatSize.blockHeight = 10# pFormatSize.blockDepth = 1# # 4-component ASTC, 12x12 blocks, unsigned normalized# # 4-component ASTC, 12x12 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_12x12_KHR or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 12# pFormatSize.blockHeight = 12# pFormatSize.blockDepth = 1# # 4-component ASTC, 3x3x3 blocks, unsigned normalized# # 4-component ASTC, 3x3x3 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_3x3x3_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 3# pFormatSize.blockHeight = 3# pFormatSize.blockDepth = 3# # 4-component ASTC, 4x3x3 blocks, unsigned normalized# # 4-component ASTC, 4x3x3 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_4x3x3_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 3# pFormatSize.blockDepth = 3# # 4-component ASTC, 4x4x3 blocks, unsigned normalized# # 4-component ASTC, 4x4x3 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_4x4x3_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 3# # 4-component ASTC, 4x4x4 blocks, unsigned normalized# # 4-component ASTC, 4x4x4 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_4x4x4_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 4# # 4-component ASTC, 5x4x4 blocks, unsigned normalized# # 4-component ASTC, 5x4x4 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_5x4x4_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 5# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 4# # 4-component ASTC, 5x5x4 blocks, unsigned normalized# # 4-component ASTC, 5x5x4 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_5x5x4_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 5# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 4# # 4-component ASTC, 5x5x5 blocks, unsigned normalized# # 4-component ASTC, 5x5x5 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_5x5x5_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 5# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 5# # 4-component ASTC, 6x5x5 blocks, unsigned normalized# # 4-component ASTC, 6x5x5 blocks, sRGB:# of GL_COMPRESSED_RGBA_ASTC_6x5x5_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 6# pFormatSize.blockHeight = 5# pFormatSize.blockDepth = 5# # 4-component ASTC, 6x6x5 blocks, unsigned normalized# # 4-component ASTC, 6x6x5 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_6x6x5_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 6# pFormatSize.blockHeight = 6# pFormatSize.blockDepth = 5# # 4-component ASTC, 6x6x6 blocks, unsigned normalized# # 4-component ASTC, 6x6x6 blocks, sRGB# of GL_COMPRESSED_RGBA_ASTC_6x6x6_OES or GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES :# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 6# pFormatSize.blockHeight = 6# pFormatSize.blockDepth = 6# # ATC# of GL_ATC_RGB_AMD: # 3-component, 4x4 blocks, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # 4-component, 4x4 blocks, unsigned normalized# # 4-component, 4x4 blocks, unsigned normalized# of GL_ATC_RGBA_EXPLICIT_ALPHA_AMD or GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:# pFormatSize.flags = GL_FORMAT_SIZE_COMPRESSED_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 128# pFormatSize.blockWidth = 4# pFormatSize.blockHeight = 4# pFormatSize.blockDepth = 1# # Palletized# of GL_PALETTE4_RGB8_OES: # 3-component 8:8:8, 4-bit palette, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PALETTIZED_BIT# pFormatSize.paletteSizeInBits = 16 * 24# pFormatSize.blockSizeInBits = 4# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_PALETTE4_RGBA8_OES: # 4-component 8:8:8:8, 4-bit palette, unsigned normalized# pFormatSize.flags = GL_FORMAT_SIZE_PALETTIZED_BIT# pFormatSize.paletteSizeInBits = 16 * 32# pFormatSize.blockSizeInBits = 4# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# # 3-component 5:6:5, 4-bit palette, unsigned normalized# # 4-component 4:4:4:4, 4-bit palette, unsigned normalized# # 4-component 5:5:5:1, 4-bit palette, unsigned normalized# of GL_PALETTE4_R5_G6_B5_OES or GL_PALETTE4_RGBA4_OES or GL_PALETTE4_RGB5_A1_OES:# pFormatSize.flags = GL_FORMAT_SIZE_PALETTIZED_BIT# pFormatSize.paletteSizeInBits = 16 * 16# pFormatSize.blockSizeInBits = 4# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# # 3-component 8:8:8, 8-bit palette, unsigned normalized# of GL_PALETTE8_RGB8_OES:# pFormatSize.flags = GL_FORMAT_SIZE_PALETTIZED_BIT# pFormatSize.paletteSizeInBits = 256 * 24# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# # 4-component 8:8:8:8, 8-bit palette, unsigned normalized# of GL_PALETTE8_RGBA8_OES:# pFormatSize.flags = GL_FORMAT_SIZE_PALETTIZED_BIT# pFormatSize.paletteSizeInBits = 256 * 32# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# # 3-component 5:6:5, 8-bit palette, unsigned normalized# # 4-component 4:4:4:4, 8-bit palette, unsigned normalized# # 4-component 5:5:5:1, 8-bit palette, unsigned normalized# of GL_PALETTE8_R5_G6_B5_OES or GL_PALETTE8_RGBA4_OES or GL_PALETTE8_RGB5_A1_OES:# pFormatSize.flags = GL_FORMAT_SIZE_PALETTIZED_BIT# pFormatSize.paletteSizeInBits = 256 * 16# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# # Depth/stencil# of GL_DEPTH_COMPONENT16:# pFormatSize.flags = GL_FORMAT_SIZE_DEPTH_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 16# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_DEPTH_COMPONENT24 or GL_DEPTH_COMPONENT32 or GL_DEPTH_COMPONENT32F or GL_DEPTH_COMPONENT32F_NV:# pFormatSize.flags = GL_FORMAT_SIZE_DEPTH_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_STENCIL_INDEX1:# pFormatSize.flags = GL_FORMAT_SIZE_STENCIL_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 1# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_STENCIL_INDEX4:# pFormatSize.flags = GL_FORMAT_SIZE_STENCIL_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 4# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_STENCIL_INDEX8:# pFormatSize.flags = GL_FORMAT_SIZE_STENCIL_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_STENCIL_INDEX16:# pFormatSize.flags = GL_FORMAT_SIZE_STENCIL_BIT# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 16# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_DEPTH24_STENCIL8:# pFormatSize.flags = bitor(GL_FORMAT_SIZE_DEPTH_BIT, GL_FORMAT_SIZE_STENCIL_BIT)# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 32# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# of GL_DEPTH32F_STENCIL8 or GL_DEPTH32F_STENCIL8_NV:# pFormatSize.flags = bitor(GL_FORMAT_SIZE_DEPTH_BIT, GL_FORMAT_SIZE_STENCIL_BIT)# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 64# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# else:# pFormatSize.flags = 0# pFormatSize.paletteSizeInBits = 0# pFormatSize.blockSizeInBits = 8# pFormatSize.blockWidth = 1# pFormatSize.blockHeight = 1# pFormatSize.blockDepth = 1# until we know for """sure""" the glGetFormatSize port is correct#[static inline void glGetFormatSize( const GLenum internalFormat, GlFormatSize * pFormatSize ){switch ( internalFormat ){//// 8 bits per component//case GL_R8: // 1-component, 8-bit unsigned normalizedcase GL_R8_SNORM: // 1-component, 8-bit signed normalizedcase GL_R8UI: // 1-component, 8-bit unsigned integercase GL_R8I: // 1-component, 8-bit signed integercase GL_SR8: // 1-component, 8-bit sRGBpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 1 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RG8: // 2-component, 8-bit unsigned normalizedcase GL_RG8_SNORM: // 2-component, 8-bit signed normalizedcase GL_RG8UI: // 2-component, 8-bit unsigned integercase GL_RG8I: // 2-component, 8-bit signed integercase GL_SRG8: // 2-component, 8-bit sRGBpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 2 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB8: // 3-component, 8-bit unsigned normalizedcase GL_RGB8_SNORM: // 3-component, 8-bit signed normalizedcase GL_RGB8UI: // 3-component, 8-bit unsigned integercase GL_RGB8I: // 3-component, 8-bit signed integercase GL_SRGB8: // 3-component, 8-bit sRGBpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 3 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGBA8: // 4-component, 8-bit unsigned normalizedcase GL_RGBA8_SNORM: // 4-component, 8-bit signed normalizedcase GL_RGBA8UI: // 4-component, 8-bit unsigned integercase GL_RGBA8I: // 4-component, 8-bit signed integercase GL_SRGB8_ALPHA8: // 4-component, 8-bit sRGBpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 4 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;//// 16 bits per component//case GL_R16: // 1-component, 16-bit unsigned normalizedcase GL_R16_SNORM: // 1-component, 16-bit signed normalizedcase GL_R16UI: // 1-component, 16-bit unsigned integercase GL_R16I: // 1-component, 16-bit signed integercase GL_R16F: // 1-component, 16-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 2 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RG16: // 2-component, 16-bit unsigned normalizedcase GL_RG16_SNORM: // 2-component, 16-bit signed normalizedcase GL_RG16UI: // 2-component, 16-bit unsigned integercase GL_RG16I: // 2-component, 16-bit signed integercase GL_RG16F: // 2-component, 16-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 4 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB16: // 3-component, 16-bit unsigned normalizedcase GL_RGB16_SNORM: // 3-component, 16-bit signed normalizedcase GL_RGB16UI: // 3-component, 16-bit unsigned integercase GL_RGB16I: // 3-component, 16-bit signed integercase GL_RGB16F: // 3-component, 16-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 6 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGBA16: // 4-component, 16-bit unsigned normalizedcase GL_RGBA16_SNORM: // 4-component, 16-bit signed normalizedcase GL_RGBA16UI: // 4-component, 16-bit unsigned integercase GL_RGBA16I: // 4-component, 16-bit signed integercase GL_RGBA16F: // 4-component, 16-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 8 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;//// 32 bits per component//case GL_R32UI: // 1-component, 32-bit unsigned integercase GL_R32I: // 1-component, 32-bit signed integercase GL_R32F: // 1-component, 32-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 4 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RG32UI: // 2-component, 32-bit unsigned integercase GL_RG32I: // 2-component, 32-bit signed integercase GL_RG32F: // 2-component, 32-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 8 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB32UI: // 3-component, 32-bit unsigned integercase GL_RGB32I: // 3-component, 32-bit signed integercase GL_RGB32F: // 3-component, 32-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 12 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGBA32UI: // 4-component, 32-bit unsigned integercase GL_RGBA32I: // 4-component, 32-bit signed integercase GL_RGBA32F: // 4-component, 32-bit floating-pointpFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 16 * 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;//// Packed//case GL_R3_G3_B2: // 3-component 3:3:2, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB4: // 3-component 4:4:4, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 12;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB5: // 3-component 5:5:5, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 16;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB565: // 3-component 5:6:5, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 16;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB10: // 3-component 10:10:10, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB12: // 3-component 12:12:12, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 36;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGBA2: // 4-component 2:2:2:2, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGBA4: // 4-component 4:4:4:4, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 16;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGBA12: // 4-component 12:12:12:12, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 48;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB5_A1: // 4-component 5:5:5:1, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB10_A2: // 4-component 10:10:10:2, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_RGB10_A2UI: // 4-component 10:10:10:2, unsigned integerpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_R11F_G11F_B10F: // 3-component 11:11:10, floating-pointcase GL_RGB9_E5: // 3-component/exp 9:9:9/5, floating-pointpFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;//// S3TC/DXT/BC//case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: // line through 3D space, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: // line through 3D space plus 1-bit alpha, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: // line through 3D space, 4x4 blocks, sRGBcase GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: // line through 3D space plus 1-bit alpha, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: // line through 3D space plus line through 1D space, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: // line through 3D space plus 4-bit alpha, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: // line through 3D space plus line through 1D space, 4x4 blocks, sRGBcase GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: // line through 3D space plus 4-bit alpha, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_LUMINANCE_LATC1_EXT: // line through 1D space, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT: // line through 1D space, 4x4 blocks, signed normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT: // two lines through 1D space, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT: // two lines through 1D space, 4x4 blocks, signed normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RED_RGTC1: // line through 1D space, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SIGNED_RED_RGTC1: // line through 1D space, 4x4 blocks, signed normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RG_RGTC2: // two lines through 1D space, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SIGNED_RG_RGTC2: // two lines through 1D space, 4x4 blocks, signed normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: // 3-component, 4x4 blocks, unsigned floating-pointcase GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: // 3-component, 4x4 blocks, signed floating-pointcase GL_COMPRESSED_RGBA_BPTC_UNORM: // 4-component, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: // 4-component, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;//// ETC//case GL_ETC1_RGB8_OES: // 3-component ETC1, 4x4 blocks, unsigned normalized" ),case GL_COMPRESSED_RGB8_ETC2: // 3-component ETC2, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ETC2: // 3-component ETC2, 4x4 blocks, sRGBcase GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: // 4-component ETC2 with 1-bit alpha, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: // 4-component ETC2 with 1-bit alpha, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA8_ETC2_EAC: // 4-component ETC2, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: // 4-component ETC2, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_R11_EAC: // 1-component ETC, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SIGNED_R11_EAC: // 1-component ETC, 4x4 blocks, signed normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RG11_EAC: // 2-component ETC, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SIGNED_RG11_EAC: // 2-component ETC, 4x4 blocks, signed normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;//// PVRTC//case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: // 3-component PVRTC, 16x8 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT: // 3-component PVRTC, 16x8 blocks, sRGBcase GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: // 4-component PVRTC, 16x8 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT: // 4-component PVRTC, 16x8 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 16;pFormatSize->blockHeight = 8;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG: // 3-component PVRTC, 8x8 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT: // 3-component PVRTC, 8x8 blocks, sRGBcase GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: // 4-component PVRTC, 8x8 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT: // 4-component PVRTC, 8x8 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 8;pFormatSize->blockHeight = 8;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG: // 4-component PVRTC, 8x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG: // 4-component PVRTC, 8x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 8;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG: // 4-component PVRTC, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG: // 4-component PVRTC, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;//// ASTC//case GL_COMPRESSED_RGBA_ASTC_4x4_KHR: // 4-component ASTC, 4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: // 4-component ASTC, 4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_5x4_KHR: // 4-component ASTC, 5x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: // 4-component ASTC, 5x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 5;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_5x5_KHR: // 4-component ASTC, 5x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: // 4-component ASTC, 5x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 5;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_6x5_KHR: // 4-component ASTC, 6x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: // 4-component ASTC, 6x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 6;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_6x6_KHR: // 4-component ASTC, 6x6 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: // 4-component ASTC, 6x6 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 6;pFormatSize->blockHeight = 6;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_8x5_KHR: // 4-component ASTC, 8x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: // 4-component ASTC, 8x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 8;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_8x6_KHR: // 4-component ASTC, 8x6 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: // 4-component ASTC, 8x6 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 8;pFormatSize->blockHeight = 6;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_8x8_KHR: // 4-component ASTC, 8x8 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: // 4-component ASTC, 8x8 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 8;pFormatSize->blockHeight = 8;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_10x5_KHR: // 4-component ASTC, 10x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: // 4-component ASTC, 10x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 10;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_10x6_KHR: // 4-component ASTC, 10x6 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: // 4-component ASTC, 10x6 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 10;pFormatSize->blockHeight = 6;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_10x8_KHR: // 4-component ASTC, 10x8 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: // 4-component ASTC, 10x8 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 10;pFormatSize->blockHeight = 8;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_10x10_KHR: // 4-component ASTC, 10x10 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: // 4-component ASTC, 10x10 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 10;pFormatSize->blockHeight = 10;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_12x10_KHR: // 4-component ASTC, 12x10 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: // 4-component ASTC, 12x10 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 12;pFormatSize->blockHeight = 10;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_12x12_KHR: // 4-component ASTC, 12x12 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: // 4-component ASTC, 12x12 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 12;pFormatSize->blockHeight = 12;pFormatSize->blockDepth = 1;break;case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES: // 4-component ASTC, 3x3x3 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES: // 4-component ASTC, 3x3x3 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 3;pFormatSize->blockHeight = 3;pFormatSize->blockDepth = 3;break;case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES: // 4-component ASTC, 4x3x3 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES: // 4-component ASTC, 4x3x3 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 3;pFormatSize->blockDepth = 3;break;case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES: // 4-component ASTC, 4x4x3 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES: // 4-component ASTC, 4x4x3 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 3;break;case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES: // 4-component ASTC, 4x4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES: // 4-component ASTC, 4x4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 4;break;case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES: // 4-component ASTC, 5x4x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES: // 4-component ASTC, 5x4x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 5;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 4;break;case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES: // 4-component ASTC, 5x5x4 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES: // 4-component ASTC, 5x5x4 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 5;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 4;break;case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES: // 4-component ASTC, 5x5x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES: // 4-component ASTC, 5x5x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 5;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 5;break;case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES: // 4-component ASTC, 6x5x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES: // 4-component ASTC, 6x5x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 6;pFormatSize->blockHeight = 5;pFormatSize->blockDepth = 5;break;case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES: // 4-component ASTC, 6x6x5 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES: // 4-component ASTC, 6x6x5 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 6;pFormatSize->blockHeight = 6;pFormatSize->blockDepth = 5;break;case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES: // 4-component ASTC, 6x6x6 blocks, unsigned normalizedcase GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES: // 4-component ASTC, 6x6x6 blocks, sRGBpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 6;pFormatSize->blockHeight = 6;pFormatSize->blockDepth = 6;break;//// ATC//case GL_ATC_RGB_AMD: // 3-component, 4x4 blocks, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;case GL_ATC_RGBA_EXPLICIT_ALPHA_AMD: // 4-component, 4x4 blocks, unsigned normalizedcase GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: // 4-component, 4x4 blocks, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 128;pFormatSize->blockWidth = 4;pFormatSize->blockHeight = 4;pFormatSize->blockDepth = 1;break;//// Palletized//case GL_PALETTE4_RGB8_OES: // 3-component 8:8:8, 4-bit palette, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;pFormatSize->paletteSizeInBits = 16 * 24;pFormatSize->blockSizeInBits = 4;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_PALETTE4_RGBA8_OES: // 4-component 8:8:8:8, 4-bit palette, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;pFormatSize->paletteSizeInBits = 16 * 32;pFormatSize->blockSizeInBits = 4;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_PALETTE4_R5_G6_B5_OES: // 3-component 5:6:5, 4-bit palette, unsigned normalizedcase GL_PALETTE4_RGBA4_OES: // 4-component 4:4:4:4, 4-bit palette, unsigned normalizedcase GL_PALETTE4_RGB5_A1_OES: // 4-component 5:5:5:1, 4-bit palette, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;pFormatSize->paletteSizeInBits = 16 * 16;pFormatSize->blockSizeInBits = 4;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_PALETTE8_RGB8_OES: // 3-component 8:8:8, 8-bit palette, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;pFormatSize->paletteSizeInBits = 256 * 24;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_PALETTE8_RGBA8_OES: // 4-component 8:8:8:8, 8-bit palette, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;pFormatSize->paletteSizeInBits = 256 * 32;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_PALETTE8_R5_G6_B5_OES: // 3-component 5:6:5, 8-bit palette, unsigned normalizedcase GL_PALETTE8_RGBA4_OES: // 4-component 4:4:4:4, 8-bit palette, unsigned normalizedcase GL_PALETTE8_RGB5_A1_OES: // 4-component 5:5:5:1, 8-bit palette, unsigned normalizedpFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;pFormatSize->paletteSizeInBits = 256 * 16;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;//// Depth/stencil//case GL_DEPTH_COMPONENT16:pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 16;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_DEPTH_COMPONENT24:case GL_DEPTH_COMPONENT32:case GL_DEPTH_COMPONENT32F:case GL_DEPTH_COMPONENT32F_NV:pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_STENCIL_INDEX1:pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 1;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_STENCIL_INDEX4:pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 4;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_STENCIL_INDEX8:pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_STENCIL_INDEX16:pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 16;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_DEPTH24_STENCIL8:pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT | GL_FORMAT_SIZE_STENCIL_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 32;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;case GL_DEPTH32F_STENCIL8:case GL_DEPTH32F_STENCIL8_NV:pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT | GL_FORMAT_SIZE_STENCIL_BIT;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 64;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;default:pFormatSize->flags = 0;pFormatSize->paletteSizeInBits = 0;pFormatSize->blockSizeInBits = 8;pFormatSize->blockWidth = 1;pFormatSize->blockHeight = 1;pFormatSize->blockDepth = 1;break;}}#endif // !GL_FORMAT_H]#
import ../portal/[keyboard,mouse]typeBind[T] = objectcase hasBind*: boolof true: value: Telse: nilActionBindObj = object of RootObjbind0*: Bind[T]action*: proc()#gamepad0ActionBind* = ref object of ActionBindObjproc the*[T](value: T): Bind[T] = Bind[T](hasBind: true, value: value)proc setBind*[T]( b: Bind[T], value: T) =if value != nil: b.value = valueelse:b.value = nilb.hasBind = falseproc emptyBind*[T]: Bind[T] = Bind[T](hasBind: false)
{.deadCodeElim: on.}import ../vk/vulkantypeTextureObj* = object of RootObjimage*: VkImageimageLayout*: VkImageLayoutdeviceMemory*: VkDeviceMemoryview*: VkImageViewwidth*: uint32height*: uint32mipLevels*: uint32layerCount*: uint32descriptor*: VkDescriptorImageInfosampler*: VkSamplerTexture* = ref object of TextureObjTexture2D* = ref object of Texture
{.experimental: "codeReordering".}{.deadCodeElim: on.}import re, sequtils, strutils, textTypes, ../vk/vkTypes# proc aFont*(rec: var VKRec, path: string, size: int): Font =# var# face: FT_Face# # ta = rec.aTextureAtlas(512, 512)# discard FT_New_Face(rec.library, path, 0, face )# discard FT_Set_Pixel_Sizes(face, 0, FT_UInt size)# #result.ta = ta# result# proc ftLoad =# #add some check for enabling text or not instead of always inculding it?# discard FT_Init_FreeType rec.libraryproc aPBMFont*(path: string = "/run/media/j/ZZZ/Dev/shapes/data/fonts/arialBlackStd.fnt"): PBMFont =result = PBMFont()var isNum = re"(\-|)\d+"for line in lines path:var nums: seq[int] = @[]if line[0..5] == "char i":# will return a @[0..9] length seq# id, x, y, width, height, xoffset, yoffset, xadvance, page, chnl# what's chnl for exactly?nums = line.findAll(isNum).map parseIntresult.chars[nums[0]] = Bmchar( x: nums[1].uint32, y: nums[2].uint32, width: nums[3].uint32, height: nums[4].uint32, xoffset: nums[5].int32, yoffset: nums[6].int32, xadvance: nums[7].int32, page: nums[8].uint32)nums = @[]
#[ {.experimental: "codeReordering".}{.deadCodeElim: on.}import glm, ../camera, tables, freetype/[ freetype, fttypes], ../vk/[ vulkan, buffer, vulkan_utils, vkTypes, vulkan_record, graphics_pipeline], bitops, ../drawable/texture, ../utils/letstype# Area = ref object# x: int# y: int# width: int# height: intBmchar* = objectx*: uint32y*: uint32width*: uint32height*: uint32xoffset*: int32yoffset*: int32xadvance*: int32page*: uint32#chl ??TextVert* = objectpos*: Vec3[float32]uv*: Vec2[float32]#color*: Vec4[float]#texCoord*: Vec2[float]#blendMode*: int32#data*: array[4, int32]TextUboFS* = ref objectoutlineColor*: Vec4[float32]outlineWidth*: floatoutline*: boolTextPipelines* = ref objectsdf*: VkPipelinebitmap*: VkPipelineGlyph* = objecttop*: intleft*: intwidth*: intheight*: intadv*: inttexture*: Texture2dface*: FT_Faceind*: FT_UintPBMFont* = objectchars*: array[255,Bmchar]face*: FT_Faceglyphs*: Table[uint16, Glyph]VertDescr* = ref object of VertDescrObjVertDescrObj* = object of RootObjinputState*: VkPipelineVertexInputStateCreateInfobindingDescriptions*: seq[VkVertexInputBindingDescription]attributeDescriptions*: seq[VkVertexInputAttributeDescription]UBOVS* = objectproj*: Mat4[float32]model*: Mat4[float32]view*: Mat4[float32] # ?UBOFS* = objectoutlineColor*: Vec4[float32]outlineWidth*: float32outlined*: float32UBOS* = ref object of UBOSObjUBOSObj* = object of RootObjvs*: UBOVSfs*: UBOFSSDFTextObj = object of RootObjcamera*: CameradescrSet*: VkDescriptorSetdescrSetLayout*: VkDescriptorSetLayoutid*: intindices*: seq[uint32]indexCount*: uint32indexedAmount*: uint32indexBuffer*: BuffervertexBuffer*: BufferuniBufferV*: BufferuniBufferF*: Bufferfont*: PBMFontname*: stringpipelineCache*: VkPipelineCachegraphicsPipeline*: Graphics_PipelinestVertexBuffer*: BufferstIndexBuffer*: Buffertexture*: Texture2Dubos*: UBOsdescrPool*: VkDescriptorPoolchanged*: boolstrChanged*: boolstr*: stringcamera_type*: Camera_Kinddevice*: ptr VkDevicesize*: float32vertices*: seq[TextVert]theVkRec*: ptr Vulkan_RecordSDFText* = ref object of SDFTextObjTextureWindow* = objectx0*: floaty0*: floatx1*: floaty1*: floatTextureAtlas* = ref object of TextureAtlasObjTextureAtlasObj = object of RootObjwidth*: uint32height*: uint32sampler*: VkSamplerdescPool*: VkDescriptorPooldescrSet*: VkDescriptorSetdescrSetLayout*: VkDescriptorSetLayoutimageView*: VkImageViewboundImage*: BoundImageglyphs*: Table[uint16, Glyph]proc aGlyph*(font: PBMFont, glyphs: var Table[uint16, Glyph], key: uint16): Glyph =if glyphs.hasKey(key): return glyphs[key]else:vargind = FT_Get_Char_Index(font.face, key)#auto glyph = std::make_shared<Glyph>(m_face, glyphIndex, m_textureAtlas);g = Glyph(face: font.face, ind: gind)glyphs[key] = greturn gproc transitionImageLayout( rec: var Vulkan_Record, image: VkImage, oldLayout: VkImageLayout, newLayout: VkImageLayout) =varsourceStage: VkPipelineStageFlags = VkPipelineStageFlags VK_PIPELINE_STAGE_TOP_OF_PIPE_BITdestinationStage: VkPipelineStageFlags = VkPipelineStageFlags VK_PIPELINE_STAGE_TOP_OF_PIPE_BITcmdBuffer: VkCommandBuffer = beginSingleTimeCommands( rec.vk_device, rec.command_pool)barrier = VkImageMemoryBarrier( sType: VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, oldLayout: oldLayout, newLayout: newLayout, srcQueueFamilyIndex: VK_QUEUE_FAMILY_IGNORED, dstQueueFamilyIndex: VK_QUEUE_FAMILY_IGNORED, image: image, subresourceRange: VkImageSubresourceRange( aspectMask: VkImageAspectFlags VK_IMAGE_ASPECT_COLOR_BIT, baseMipLevel: 0, levelCount: 1, baseArrayLayer: 0, layerCount: 1))case oldLayout:of VK_IMAGE_LAYOUT_UNDEFINED: barrier.srcAccessMask = VkAccessFlags 0of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:barrier.srcAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_WRITE_BITsourceStage = VkPipelineStageFlags VK_PIPELINE_STAGE_TRANSFER_BITof VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:barrier.srcAccessMask = VkAccessFlags VK_ACCESS_SHADER_READ_BITsourceStage = VkPipelineStageFlags VK_PIPELINE_STAGE_FRAGMENT_SHADER_BITelse: quit("unsupported image transition12")case newLayout:of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:barrier.dstAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_WRITE_BITdestinationStage = VkPipelineStageFlags VK_PIPELINE_STAGE_TRANSFER_BITof VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:barrier.srcAccessMask = VkAccessFlags VK_ACCESS_TRANSFER_WRITE_BITbarrier.dstAccessMask = VkAccessFlags VK_ACCESS_SHADER_READ_BITdestinationStage = VkPipelineStageFlags VK_PIPELINE_STAGE_FRAGMENT_SHADER_BITelse: quit("unsupported image transition13")vkCmdPipelineBarrier(cmdBuffer, sourceStage, destinationStage, VkDependencyFlags 0, uint32 0, nil, uint32 0, nil, uint32 1, addr barrier )endSingleTimeCommands( rec.vk_device, cmdBuffer, rec.graphics_queue, rec.command_pool)proc createTextureDescrSet*( rec: Vulkan_Record, ta: var TextureAtlas): VkDescriptorSet =vardescriptorSet: VkDescriptorSetallocInfo = VkDescriptorSetAllocateInfo( sType: VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, descriptorPool: ta.descPool, descriptorSetCount: 1, pSetLayouts: addr ta.descrSetLayout)discard vkAllocateDescriptorSets( rec.vk_device, addr allocInfo, addr descriptorSet)varimageInfo = VkDescriptorImageInfo( imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, imageView: ta.imageView, sampler: ta.sampler)descriptorWrites = VkWriteDescriptorSet( sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, dstSet: descriptorSet, dstBinding: 0, dstArrayElement: 0, descriptorType: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, descriptorCount: 1, pImageInfo: addr imageInfo)vkUpdateDescriptorSets( rec.vk_device, u321, addr descriptorWrites, u320, nil)resultproc aTextureAtlas*( rec: var Vulkan_Record, width, height: uint32, format = VK_FORMAT_R8G8B8A8_UNORM): TextureAtlas =result.width = widthresult.height = heightresult.boundImage = createImage( rec.vk_device, rec.gpu.memory_properties, result.width, result.height, format, VK_IMAGE_TILING_OPTIMAL, VkImageUsageFlags bitor( VK_IMAGE_USAGE_TRANSFER_DST_BIT.ord, VK_IMAGE_USAGE_SAMPLED_BIT.ord), VkMemoryPropertyFlags VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT.ord)rec.transitionImageLayout( result.boundImage.image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)rec.transitionImageLayout( result.boundImage.image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)result.imageView = rec.vk_device.createImageView(result.boundImage.image, format)result.sampler = rec.vk_device.createSamplerresult.descrSet = rec.createTextureDescrSet result]#
#[ #{.experimental: "codeReordering".}{.deadCodeElim: on.}import textUtils, glm, textTypes, bitops, ../scenes/[ scene_object], ../vk/[ vulkan_utils, vkTypes, buffer, vulkan_record, graphics_pipeline], ../vk/vulkan, ../ktx/ktxutils, ../camera, ../drawable/texture, ../utils/letsimport ../vk/vkm/vkmat as vkm# TODO: caching#[ proc genVertBuffers*( rec: var Vulkan_Record, text: var SDFText, str: string) =varindexOffset: uint32indices: array[6, uint32] = [0.uint32,1,2, 2,3,0 ]w: float32 = text.texture.width.float32posX = 0.0posY = 0.0data: pointerfor c in str:var ci: Bmchar = text.font.chars[int(c)]if ci.width == 0: ci.width = 36varcharw: float32 = ci.width.float32 / 36.0fdimx: float32 = 1.0f * charwcharh: float32 = ci.height.float32 / 36.0fdimy: float32 = 1.0f * charhus: float32 = ci.x.float32 / wue: float32 = (ci.x + ci.width).float32 / wts: float32 = ci.y.float32 / wte: float32 = (ci.y + ci.height).float32 / wxo: float32 = ci.xoffset.float32 / 36.0fyo: float32 = ci.yoffset.float32 / 36.0fposy = yotext.vertices.add TextVert( pos: vec3f(posx + dimx + xo, posy + dimy, 0.0f), uv: vec2(ue, te))text.vertices.add TextVert( pos: vec3f(posx + xo, posy + dimy, 0.0f), uv: vec2(us, te))text.vertices.add TextVert( pos: vec3f(posx + xo, posy, 0.0f), uv: vec2(us, ts))text.vertices.add TextVert( pos: vec3f(posx + dimx + xo, posy, 0.0f), uv: vec2(ue, ts))for i in indices:text.indices.add indexOffset + iindexOffset += 4var adv: float32 = ci.xadvance.float32 / 36.0posx += advtext.indexCount = text.indices.len.uint32# centering?for v in text.vertices.mitems:v.pos.x -= (posx / 2.0).float32v.pos.y -= 0.5.float32varindSize = VkDeviceSize text.indices.len * uint32.sizeofvertSize = VkDeviceSize text.vertices.len.uint32 * TextVert.sizeof.uint32copyCmd: VkCommandBuffer = rec.vk_device.getCommandBuffers(rec.command_pool, true)copyRegion: VkBufferCopytext.stVertexBuffer = a_vulkan_buffer( rec.vk_device, rec.gpu.memory_properties, VkBufferUsageFlags VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VkMemoryPropertyFlags bitor( VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT.ord, VK_MEMORY_PROPERTY_HOST_COHERENT_BIT.ord), vertSize)text.vertexBuffer = a_vulkan_buffer( rec.vk_device, rec.gpu.memory_properties, VkBufferUsageFlags bitor( VK_BUFFER_USAGE_VERTEX_BUFFER_BIT.ord, VK_BUFFER_USAGE_TRANSFER_DST_BIT.ord), VkMemoryPropertyFlags VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, vertSize)rec.vk_device.map_memory( text.stVertexBuffer.memory, data)copyMem(data, addr text.vertices[0], Natural vertSize)vkUnmapMemory( rec.vk_device, text.stVertexBuffer.memory)discard vkBindBufferMemory( rec.vk_device, text.stVertexBuffer.vkbuffer, text.stVertexBuffer.memory, VkDeviceSize 0)discard vkBindBufferMemory( rec.vk_device, text.vertexBuffer.vkbuffer, text.vertexBuffer.memory, VkDeviceSize 0)text.stIndexBuffer = a_vulkan_buffer( rec.vk_device, rec.gpu.memory_properties, VkBufferUsageFlags VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VkMemoryPropertyFlags bitor( VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT.ord, VK_MEMORY_PROPERTY_HOST_COHERENT_BIT.ord), indSize)text.indexBuffer = a_vulkan_buffer( rec.vk_device, rec.gpu.memory_properties, VkBufferUsageFlags bitor(VK_BUFFER_USAGE_INDEX_BUFFER_BIT.ord, VK_BUFFER_USAGE_TRANSFER_DST_BIT.ord), VkMemoryPropertyFlags VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, indSize)rec.vk_device.map_memory( text.stIndexBuffer.memory, data)copyMem(data, addr text.indices[0], Natural indSize)vkUnmapMemory( rec.vk_device, text.stIndexBuffer.memory)discard vkBindBufferMemory( rec.vk_device, text.stIndexBuffer.vkbuffer, text.stIndexBuffer.memory, VkDeviceSize 0)discard vkBindBufferMemory( rec.vk_device, text.indexBuffer.vkbuffer, text.indexBuffer.memory, VkDeviceSize 0)copyRegion.size = vertSizevkCmdCopyBuffer(copyCmd, text.stVertexBuffer.vkbuffer, text.vertexBuffer.vkbuffer, 1.uint32, addr copyRegion)copyRegion.size = indSizevkCmdCopyBuffer( copyCmd, text.stIndexBuffer.vkbuffer, text.indexBuffer.vkbuffer, 1.uint32, addr copyRegion)# # Flushing the command buffer will also submit it to the queue and# # uses a fence to ensure that all commands have been executed before returningrec.vk_device.flushCommandBuffer rec.queue, rec.command_pool, copyCmd# Destroy staging buffers# Note: Staging buffer must not be deleted before the copies have been submitted and executedvkDestroyBuffer( rec.vk_device, text.stVertexBuffer.vkbuffer, nil)vkFreeMemory( rec.vk_device, text.stVertexBuffer.memory, nil)vkDestroyBuffer( rec.vk_device, text.stIndexBuffer.vkbuffer, nil)vkFreeMemory( rec.vk_device, text.stIndexBuffer.memory, nil)]#proc updateUniformBuffers*(text: SDFText, rec: Vulkan_Record ) =copyMem(text.uniBufferV.data, addr text.ubos.vs, text.ubos.vs.sizeof)proc prepare_uniform_buffers*( rec: Vulkan_Record, text: var SDFText) =text.uniBufferV = a_vulkan_buffer( rec.vk_device, rec.gpu.memory_properties, VkBufferUsageFlags VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VkMemoryPropertyFlags ( VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT.ord orVK_MEMORY_PROPERTY_HOST_COHERENT_BIT.ord), VkDeviceSize text.ubos.vs.sizeof)text.uniBufferF = a_vulkan_buffer( rec.vk_device, rec.gpu.memory_properties, VkBufferUsageFlags VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VkMemoryPropertyFlags ( VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT.ord orVK_MEMORY_PROPERTY_HOST_COHERENT_BIT.ord), VkDeviceSize text.ubos.fs.sizeof)rec.vk_device.bindIt text.uniBufferVrec.vk_device.bindIt text.uniBufferFtext.uniBufferV.fillDescrtext.uniBufferF.fillDescrproc setupDescrSetLayout*( rec: Vulkan_Record, text: var SDFText) =var#Binding 0: Vertex shader uniform buffer#Binding 1: Fragment shader image sampler#Binding 2: Fragment shader uniform bufferdescriptorSetLayoutBindings =[ aVkDescriptorSetLayoutBinding( descType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, stageFlags = VkShaderStageFlags VK_SHADER_STAGE_VERTEX_BIT, binding = 0), aVkDescriptorSetLayoutBinding( descType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, stageFlags = VkShaderStageFlags VK_SHADER_STAGE_FRAGMENT_BIT, binding = 1), aVkDescriptorSetLayoutBinding( descType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, stageFlags = VkShaderStageFlags VK_SHADER_STAGE_FRAGMENT_BIT, binding = 2)]descriptorLayout: VkDescriptorSetLayoutCreateInfopPipelineLayoutCreateInfo: VkPipelineLayoutCreateInfodescriptorLayout.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFOdescriptorLayout.bindingCount = descriptorSetLayoutBindings.len.uint32descriptorLayout.pBindings = addr descriptorSetLayoutBindings[0]discard vkCreateDescriptorSetLayout(rec.vk_device, addr descriptorLayout, nil, addr text.descrSetLayout)# Create the pipeline layout that is used to# generate the rendering pipelines that are based on this descriptor set layout# In a more complex scenario you would have different pipeline layouts# for different descriptor set layouts that could be reusedpPipelineLayoutCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO#pPipelineLayoutCreateInfo.pNext = nilpPipelineLayoutCreateInfo.setLayoutCount = 1pPipelineLayoutCreateInfo.pSetLayouts = addr text.descrSetLayoutdiscard vkCreatePipelineLayout(rec.vk_device, addr pPipelineLayoutCreateInfo, nil, addr text.graphicsPipeline.pipelineLayout)proc prepPipeline*( rec: Vulkan_Record, rp: VkRenderPass, gp: Graphics_Pipeline) =var# Input attribute bindings describe shader attribute locations and memory layouts# Location 0 : Position# Location 1 : Texture coordinatesvertexInputAttributs: array[2,VkVertexInputAttributeDescription]varpipelineInfo = VkGraphicsPipelineCreateInfo(sType: VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, layout: gp.pipelineLayout, render_pass: rp#subpass: 0,#basePipelineHandle: VkPipeline(VK_NULL_HANDLE), # optional#basePipelineIndex: -1, # optional)#Input assembly state describes how primitives are assembled#This pipeline will assemble vertex data as a triangle lists (though we only use one triangle)inputAssembly = VkPipelineInputAssemblyStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, topology: VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, primitiveRestartEnable: vkfalse, flags: VkPipelineInputAssemblyStateCreateFlags 0)rasterizer = VkPipelineRasterizationStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, depthClampEnable: vkfalse, rasterizerDiscardEnable: vkfalse, polygonMode: VK_POLYGON_MODE_FILL, lineWidth: 1f, cullMode: VkCullModeFlags VK_CULL_MODE_NONE, frontFace: VK_FRONT_FACE_COUNTER_CLOCKWISE, depthBiasEnable: vkfalse, flags: VkPipelineRasterizationStateCreateFlags 0# , depthBiasConstantFactor: 0f # optional# , depthBiasClamp: 0f # optional# , depthBiasSlopeFactor: 0f # optional)colorBlendAttachment = VkPipelineColorBlendAttachmentState(#colorWriteMask: VkColorComponentFlags 0xfblendEnable: vktrue, srcColorBlendFactor: VK_BLEND_FACTOR_ONE, dstColorBlendFactor: VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, colorBlendOp: VK_BLEND_OP_ADD, srcAlphaBlendFactor: VK_BLEND_FACTOR_ONE, dstAlphaBlendFactor: VK_BLEND_FACTOR_ZERO, alphaBlendOp: VK_BLEND_OP_ADD, colorWriteMask: VkColorComponentFlags bitor( VK_COLOR_COMPONENT_R_BIT.ord, VK_COLOR_COMPONENT_G_BIT.ord, VK_COLOR_COMPONENT_B_BIT.ord, VK_COLOR_COMPONENT_A_BIT.ord))colorBlending = VkPipelineColorBlendStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO# , logicOpEnable: vkfalse# , logicOp: VK_LOGIC_OP_COPY # optional, attachmentCount: 1, pAttachments: colorBlendAttachment.addr# , blendConstants: [0f, 0f, 0f, 0f] # optional)# Enable dynamic states# Most states are baked into the pipeline, but there are still a few dynamic states that can be changed within a command buffer# To be able to change these we need do specify which dynamic states VkPipelineViewportStateCreateInfoVkPipelineViewportStateCreateInfo be changed using this pipeline. Their actual states are set later on in the command buffer.# For this example we will set the viewport and scissor using dynamic statesdynamicStateEnables: array[2,VkDynamicState] = [VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, #[VK_DYNAMIC_STATE_LINE_WIDTH]#]dynamicState = VkPipelineDynamicStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, pDynamicStates: addr dynamicStateEnables[0], dynamicStateCount: dynamicStateEnables.len.uint32)# Depth and stencil state containing depth and stencil compare and test operations# We only use depth tests and want depth tests and writes to be enabled and compare with less or equaldepthStencilState = VkPipelineDepthStencilStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, depthTestEnable: vkfalse, depthWriteEnable: vktrue, depthCompareOp: VK_COMPARE_OP_LESS_OR_EQUAL# , depthBoundsTestEnable: VkBool32 VK_FALSE, back: VkStencilOpState( #failOp: VK_STENCIL_OP_KEEP#, passOp: VK_STENCIL_OP_KEEPcompareOp: VK_COMPARE_OP_ALWAYS)# , front: VkStencilOpState( failOp: VK_STENCIL_OP_KEEP# , passOp: VK_STENCIL_OP_KEEP# , compareOp: VK_COMPARE_OP_ALWAYS# )# , stencilTestEnable: VkBool32 VK_FALSE)# Multi sampling state# This example does not make use of multi sampling (for anti-aliasing), the state must still be set and passed to the pipelinemultisampleState = VkPipelineMultisampleStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, rasterizationSamples: VK_SAMPLE_COUNT_1_BIT, pSampleMask: nil)# Vertex input state used for pipeline creationvarviewport = VkViewport(x: 0f, y: 0f, width: rec.swapchain.current_extent.width.float32, height: rec.swapchain.current_extent.height.float32, minDepth: 0f, maxDepth: 1f)scissor = VkRect2D( offset: VkOffset2D(x: 0, y: 0), extent: rec.swapchain.current_extent,)viewportState = VkPipelineViewportStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, viewportCount: 1, pViewports: viewport.addr, scissorCount: 1, pScissors: scissor.addr, flags: VkPipelineViewportStateCreateFlags 0)# ShadersvertexInputAttributs[0].binding = 0vertexInputAttributs[0].location = 0vertexInputAttributs[0].format = VK_FORMAT_R32G32B32_SFLOATvertexInputAttributs[0].offset = 0vertexInputAttributs[1].binding = 0vertexInputAttributs[1].location = 1vertexInputAttributs[1].format = VK_FORMAT_R32G32_SFLOATvertexInputAttributs[1].offset = float32.sizeof * 3varbindingDescs = [ VkVertexInputBindingDescription( binding: 0, stride: TextVert.sizeof.uint32, inputRate: VK_VERTEX_INPUT_RATE_VERTEX)]vertexInputState = VkPipelineVertexInputStateCreateInfo(sType: VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, vertexBindingDescriptionCount: bindingDescs.len.uint32, pVertexBindingDescriptions: addr bindingDescs[0], vertexAttributeDescriptionCount: vertexInputAttributs.len.uint32, pVertexAttributeDescriptions: addr vertexInputAttributs[0])shaderStages: array[2,VkPipelineShaderStageCreateInfo]constvertShaderCode = staticRead("../../data/shaders/sdfV.spv")fragShaderCode = staticRead("../../data/shaders/sdfF.spv")# Vertex shadershaderStages[0].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO# Set pipeline stage for this shadershaderStages[0].stage = VK_SHADER_STAGE_VERTEX_BIT# Load binary SPIR-V shadershaderStages[0].module = rec.vk_device.createShaderModule vertShaderCode# Main entry point for the shadershaderStages[0].pName = "main"# Fragment shadershaderStages[1].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO# Set pipeline stage for this shadershaderStages[1].stage = VK_SHADER_STAGE_FRAGMENT_BIT# Load binary SPIR-V shadershaderStages[1].module = rec.vk_device.createShaderModule fragShaderCode# Main entry point for the shadershaderStages[1].pName = "main"# Set pipeline shader stage infopipelineInfo.stageCount = shaderStages.len.uint32pipelineInfo.pStages = addr shaderStages[0]# Assign the pipeline states to the pipeline creation info structurepipelineInfo.pVertexInputState = addr vertexInputStatepipelineInfo.pInputAssemblyState = addr inputAssemblypipelineInfo.pRasterizationState = addr rasterizerpipelineInfo.pColorBlendState = addr colorBlendingpipelineInfo.pMultisampleState = addr multisampleStatepipelineInfo.pViewportState = addr viewportStatepipelineInfo.pDepthStencilState = addr depthStencilStatepipelineInfo.render_pass = rppipelineInfo.pDynamicState = addr dynamicState# Create rendering pipeline using the specified statesdiscard vkCreateGraphicsPipelines(rec.vk_device, rec.pipelineCache, 1, addr pipelineInfo, nil, addr gp.pipeline)# Shader modules are no longer needed once the graphics pipeline has been createdvkDestroyShaderModule(rec.vk_device, shaderStages[0].module, nil)vkDestroyShaderModule(rec.vk_device, shaderStages[1].module, nil)proc setupDescrSets*(rec: Vulkan_Record, text: SDFText) =vardSet: VkDescriptorSetallocInfo = VkDescriptorSetAllocateInfo(sType: VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, descriptorPool: text.descrPool, descriptorSetCount: 1, pSetLayouts: addr text.descrSetLayout)discard vkAllocateDescriptorSets( rec.vk_device, addr allocInfo, addr dSet)varcms = aVkDescriptorImageInfo( sampler = text.texture.sampler, imageView = text.texture.view, imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)sets = [#Binding 0: Vertex shader uniform buffer#Binding 1: Fragment shader image sampler#Binding 2: Fragment shader uniform bufferVkWriteDescriptorSet( sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, dstSet: dSet, descriptorType: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, dstBinding: 0, pBufferInfo: cast[ ptr ptr VkDescriptorBufferInfo](addr text.uniBufferV.descriptor), descriptorCount: 1), VkWriteDescriptorSet( sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, dstSet: dSet, descriptorType: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, dstBinding: 1, pImageInfo: addr cms, descriptorCount: 1), VkWriteDescriptorSet( sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, dstSet: dSet, descriptorType: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, dstBinding: 2, pBufferInfo: cast[ ptr ptr VkDescriptorBufferInfo](addr text.uniBufferF.descriptor), descriptorCount: 1)]vkUpdateDescriptorSets(rec.vk_device, sets.len.uint32, addr sets[0], 0, nil)text.descrSet = dSetproc buildCommandBuffers*( rec: Vulkan_Record, text: SDFText, rp: VkRenderpass, i: int) =var offsets = VkDeviceSize 0vkCmdBindPipeline( rec.draw_command_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, text.graphicsPipeline.pipeline)vkCmdBindDescriptorSets( rec.draw_command_buffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, text.graphicsPipeline.pipelineLayout, 0, 1, addr text.descrSet, 0, nil)vkCmdBindVertexBuffers( rec.draw_command_buffers[i], 0, 1, addr text.vertexBuffer.vkbuffer, addr offsets)vkCmdBindIndexBuffer( rec.draw_command_buffers[i], text.indexBuffer.vkbuffer, VkDeviceSize 0, VK_INDEX_TYPE_UINT32)vkCmdDrawIndexed( rec.draw_command_buffers[i], text.indexCount , 1, 0, 0, 0) # , 1 ?text.camera.set_aspect_ratio_with( 60, (float rec.swapchain.current_extent.width) /(float rec.swapchain.current_extent.height))rec.readyFrame = trueproc setupDescrPool(rec: var Vulkan_Record, text: var SDFText) =varsizes = [ VkDescriptorPoolSize( typee: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, descriptorCount: 4), VkDescriptorPoolSize( typee: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, descriptorCount: 2)]descpoolinfo = VkDescriptorPoolCreateInfo( sType: VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, poolSizeCount: sizes.len.uint32, pPoolSizes: addr sizes[0], maxSets: 2)discard vkCreateDescriptorPool(rec.vk_device, addr descpoolinfo, nil, addr text.descrPool)proc anSDFUBO*( outLineColor: Vec4[float32] = vec4f(1.float32, 0, 0, 0.0), outLineWidth: float32 = 98.543, isOutlined: bool = true): UBOS =result = UBOS( vs: textTypes.UBOVS(), fs: textTypes.UBOFS())result.fs.outlineColor = outlineColorresult.fs.outlineWidth = outlineWidthresult.fs.outlined = 0.1#[ proc updateCamera*( text: var SDFText) =# if text.camera_type == Ortho:#text.ubos.vs.view = text.camera.matrices.view#text.camera.updateViewMatrix()# if text.camera_type == Perspective:# text.ubos.vs.proj = text.camera.matrices.persp# text.ubos.vs.view = text.camera.matrices.view# text.ubos.vs.model = mat4(1.0.float32).scale 0.16# text.camera.updateViewMatrix()text.device[].map_memory( text.uniBufferV.memory, text.uniBufferV.data)text.device[].map_memory( text.uniBufferF.memory, text.uniBufferF.data)copymem(text.uniBufferV.data, addr text.ubos.vs, text.ubos.vs.sizeof)copymem(text.uniBufferF.data, addr text.ubos.fs, text.ubos.fs.sizeof)vkUnmapMemory(text.device[], text.uniBufferV.memory)vkUnmapMemory(text.device[], text.uniBufferF.memory)text.changed = false ]#proc rotate*( t: var SDFText, a, x,y,z: float32) =case t.camera_typeof Ortho:t.ubos.vs.model = t.ubos.vs.model.rotate(radians a,x,y,z)#t.updateCameraof Perspective: discardproc move*( t: var SDFText, x,y: float32) =case t.camera_typeof Ortho:t.ubos.vs.model = t.ubos.vs.model.translate(x,y,0)#t.updateCameraof Perspective: discard# TODO: outlined needs to be a bool in the fragment shader# but for some reason is currently a float32, that checks for >0.0 to outlineproc updateFS*( t: var SDFText, outLineColor: Vec4[float32] = vec4f(1.float32, 0, 0, 0.1), outLineWidth: float32 = 90, outlined: float32 = 0.0) =t.ubos.fs.outLineColor = outlineColort.ubos.fs.outLineWidth = outLineWidtht.ubos.fs.outlined = outlined#t.updateCameraproc strIs*( t: var SDFText, s: string#, rec: var Vulkan_Record) =t.str = st.strChanged = truet.theVkRec[].genVertBuffers( t, s)t.strChanged = false# Vulkan is y neg# TODO: get rid of the hack.# currently the SDF text gets chopped off at the tops which messed up capital letters# after modifying the model(?)proc move_to*( t: var SDFText, x,y: float32) =case t.camera_typeof Ortho:t.ubos.vs.model = mat4f(1).translate(0,0,0).translate(x,-y,0)# SDF text currently upside down# TODO: Actually fix please, thank you..scale(t.size * 4.0).rotate(radians -540.float32, 1,0,0)#var ts = t.str#t.updateCameraof Perspective: discardproc anSDFText*( rec: var Vulkan_Record, scene: var Scene, name: string, str: string, size: float32, camTy: Camera_Kind = Ortho): SDFText =result = SDFText( font: aPBMFont(), ubos: anSDFUBO(), texture: Texture2D(), indexBuffer: Buffer(), vertexBuffer: Buffer(), graphicsPipeline: GraphicsPipeline(), camera: aCamera( float32 ( rec.current_viewport.width /rec.current_viewport.height), camTy), name: name, device: addr rec.vk_device, id: scene.current_entity_id, size: size, theVkRec: addr rec, str: str)rec.loadFromFile(result.texture)rec.genVertBuffers( result, str)rec.prepare_uniform_buffers resultrec.setupDescrSetLayout resultrec.prepPipeline scene.render_pass, result.graphicsPipelinerec.setupDescrPool resultrec.setupDescrSets resultresult.ubos.vs.proj = vkm.ortho( 0.float32, rec.swapchain.current_extent.width.float32, 0.float32, rec.swapchain.current_extent.height.float32, 0.0.float32, -1000.0.float32)result.ubos.vs.model = mat4f(1).scale(size * 4)# SDF text currently upside down# TODO: Actually fix please, thank you..rotate(radians -540.float32, 1,0,0)result.ubos.vs.view = mat4f(1)#result.updateCamera ]#
{.deadCodeElim: on.}import glmimport ../vk/vkm/vkmattypeVertex* = objectpos*: array[3,float32]color*: array[3, float32]texture_coordinates*: array[3, float32]UBO* = objectprojection*: Mat4fmodel*: Mat4fview*: Mat4fmodel_view_projection*: Mat4[float32]being_color*: Vec4[float32]deshn_color*: Vec4[float32]pos*: Vec4[float32]deshn_pool*: float32deshn_pool_is_full*: bool = truedeshn_pool_is_empty*: bool = falseShape_Pushes* = object
import glm# XYZ | RGB | UV(Dummy valuelettriVertBuffer* = @[ -1.0f, -1.0, 0.0, 1.0.float32, 1.0f, 1.0f, 0.0f, 0.0f, 0.0, 1.0f, -1.0, 0.0, 1.0.float32, 1.0, 1.0, 1.0f, 0.0f, 0.0, 0.0f, 1.0f, 0.0, 1.0.float32, 1.0, 1.0, 0.5f, 1.0f, 0.0]triIndexBuffer* = [0.uint32,1,2]quadVertBuffer*: seq[float32] = @[ 1.0.float32, 1.0, 0.0 , 1.0.float32, 1.0f, 1.0f, 1.0f, 1.0f, 0.0, -1.0.float32, 1.0, 0.0 , 1.0.float32, 0.0, 0.0, 1.0f, 0.0f, 0.0, -1.0.float32, -1.0f, 0.0 , 1.0.float32,0.0,0.0 , 0.0f, 0.0f, 0.0, 1.0.float32, -1.0f, 0.0f , 1.0.float32, 1.0, 1.0 , 0.0f, 1.0f, 0.0]quadIndexBuffer* = [0.uint32,1,2, 2,3,0 ]pentaVertBuffer*: seq[float32] = @[ -0.7.float32, -1.0, 0.0 , 1.0.float32, 1.0f, 1.0f, -1.0.float32, 0.3, 0.0 , 1.0.float32, 0.0, 0.0, 0.0.float32, 1.0f, 0.0 , 1.0.float32,0.0,0.0, 1.0.float32, 0.3f, 0.0f , 1.0.float32, 1.0, 1.0, 0.7.float32, -1.0f, 0.0f , 1.0.float32, 1.0, 1.0]pentaIndexBuffer* = [ 0.uint32, 1, 2, 0, 2, 3, 0, 3, 4]hexaVertBuffer*: seq[float32] = @[ 0.0.float32, 0.0, 0.0 , 1.0.float32, 1.0f, 1.0f, -0.5.float32, 1.0, 0.0 , 1.0.float32, 0.0, 0.0, 0.5.float32, 1.0f, 0.0 , 1.0.float32,0.0,0.0, 1.0.float32, 0.0f, 0.0f , 1.0.float32, 1.0, 1.0, 0.5.float32, -1.0f, 0.0f , 1.0.float32, 1.0, 1.0, -0.5.float32, -1.0f, 0.0f , 1.0.float32, 1.0, 1.0, -1.0.float32, 0.0f, 0.0f , 1.0.float32, 1.0, 1.0]hexaIndexBuffer* = [ 0.uint32, 1, 2, 3, 4, 5, 6, 1]heptaVertBuffer*: seq[float32] = @[ 0.0 , 1.0 , 0 , 1.0.float32, 0.0f, 0.0f, 0.781 , 0.623, 0 , 0.float32, 1, 0, 0.974 , -0.222, 0 , 0.float32, 0, 1, 0.433 , -0.900, 0 , 1.float32, 0, 0, -0.433, -0.900, 0 , 0.float32, 1, 0, -0.977, -0.222, 0 , 0.float32, 0, 1, -0.787, 0.623, 0 , 1.float32, 0, 0]# technically works but isn't desirable# 0.uint32, 1, 2 , 3, 4, 5 , 6#, 1heptaIndexBuffer* = [ 7.uint32, 6, 0, 1, 2, 3, 7, 3, 4, 5, 6]
{.experimental: "codeReordering".}{.deadCodeElim: on.}# TODO: when mutual dependencies are avaliable# uncomment the scene var so we can auto-add shapes to# the current scene again.import ../vk/[ vulkan, vkTypes, vulkan_record, buffer, vulkan_utils, pipeline_record, vk_core], ../camera, shape_types, glmimport ../vk/vkm/vkmat as vkmimport sequtilsimport shape_primitivesimport std/[ bitops, tables]typeShapeKind* = enumTri, Quad, Penta, Hexa, Hepta, Octa, Ngon, Circle, CubeShape_Object = object of RootObjcamera*: Cameracamera_kind*: Camera_Kind = Camera_Kind.Perspectiveid*: intkind*: ShapeKindisTextured: boolname*: stringpipelineCache*: VkPipelineCache#graphicsPipeline*: GraphicsPipeline# render_pass*: VkRenderPassindexCount*: uint32# stVertexBuffer*: Buffer# stIndexBuffer*: Bufferubo*: UBOchanged*: boolindices*: seq[uint32]vertices*: seq[float32]vertSize*: uint32indSize*: uint32hollow*: booltheSize*: Vec2[float32]#push_constants*: Shape_Pushes#using_pipelines*: seq[Graphics_Pipeline_Enum]moving*: boolmaster_vertex_buffer_offset*: NaturalShape* = ref object of Shape_Objectproc a_shape*( vulkan_record: var Vulkan_Record, pipeline_record: Pipeline_Record, render_pass: VkRenderPass, current_enitity_id: int#, s: var Scene # TODO: DO NOT DELET, sides: Natural, name: string, the_size: Vec2[float32], being_color: Vec4[float32] = vec4f(1.0, 0.0, 0.0, 1.0), deshn_color: Vec4[float32] = vec4f(1.0, 0.0, 0.0, 1.0), camera_type: Camera_Kind = Ortho, hollow: bool = false# TODO: custom vertices and indices# , vertices: seq[seq[seq[float32]# , indices seq[float32]): Shape =result = Shape( name: name, hollow: hollow, id: current_enitity_id, the_size: the_size, camera_kind: camera_type, camera: a_camera ( (float vulkan_record.swapchain.current_extent.width) /(float vulkan_record.swapchain.current_extent.height)))case sidesof 3:result.kind = Triresult.indices = toSeq triIndexBufferresult.vertices = triVertBufferof 4:result.kind = Quadresult.indices = toSeq quadIndexBufferresult.vertices = quadVertBufferof 5:result.kind = Pentaresult.indices = toSeq pentaIndexBufferresult.vertices = pentaVertBufferof 6:result.kind = Hexaresult.indices = toSeq hexaIndexBufferresult.vertices = hexaVertBufferof 7:result.kind = Heptaresult.indices = toSeq heptaIndexBufferresult.vertices = heptaVertBufferelse:if sides > 8: quit "sides > 8, currently not handled"else: quit "ERROR[Constructing Shape]: " & $name & ", with " & $sides & " sides NOT supported yet, try: 3..8 sides"result.indSize = result.indices.len.uint32 * uint32.sizeof.uint32result.vertSize = result.vertices.len.uint32 * Vertex.sizeof.uint32case result.camera_kind:of Perspective:result.ubo.projection = vkm.perspectiveLH( 90.0'f32, vulkan_record.swapchain.current_extent.width.float32 /vulkan_record.swapchain.current_extent.height.float32, 1.0.float32, 1000.0.float32)result.ubo.model = mat4f(1.float32).scale( result.the_size.x, result.the_size.y, 0.0).translate(0.float32,0,0)result.ubo.view = lookAt( vec3f( 0.0, 0.0, 0.0), vec3f( 0.0, 0.0, 0.0), vec3f( 0.0, 0.0, 0.0))of Ortho:result.ubo.projection = vkm.ortho( 0.float32, vulkan_record.swapchain.current_extent.width.float32, 0.float32, vulkan_record.swapchain.current_extent.height.float32, 0.0.float32, -1000.0.float32)result.ubo.model = mat4f(1.float32).scale( result.the_size.x, result.the_size.y, 0.0)#.translate(0.float32,0,0).rotate( radians 180'f32, 1, 0, 0)result.ubo.view = mat4f(1)# lookAtRH( vec3( 1280.float32 / 2, 1280.float32, 1.0)#, vec3(0f, 0.0, 0)#, vec3(0f, 0, 1)#)suballocate_vertex_buffer( vulkan_record, cast[pointer](addr result.vertices))suballocate_index_buffer( vulkan_record, cast[pointer](addr result.indices))suballocate_uniform_buffer( vulkan_record, cast[pointer](addr result.ubo))#vulkan_record.prepare_uniform_buffers result#vulkan_record.vk_device.updateCamera shape# actionsproc update_model_view_projection*( shape: var Shape) =shape.ubo.model_view_projection = shape.camera.matrices.perspective *shape.camera.matrices.view *shape.ubo.modelproc scale*( t: var Shape, x: float32, y: float32) =varposX = t.ubo.model[3][0]posY = t.ubo.model[3][1]t.ubo.model = mat4f(1)#.scale(x,y,1).translate(posX, posY, 0)t.ubo.model = t.ubo.model.scale( t.the_size.x * x, t.the_size.y * y, 0.0)t.update_model_view_projection()# vulkan is y negproc move_up*( t: var Shape, y: float32#, x: float32) =t.camera.translate(normalize vec3f(0.0,-y,0.0))t.update_model_view_projection()# vulkan is y negproc move_down*( t: var Shape, y: float32#, x: float32) =t.camera.translate(normalize vec3f( 0.0, y,0.0))# .rotate(radians 180.0, 1, 0, 0 )#.scale(t.the_size)t.update_model_view_projection()# vulkan is y negproc move_left*( t: var Shape, x: float32#, y: float32) =t.camera.translate(normalize vec3f(-x,0.0,0.0))# .rotate(radians 180.0, 1, 0, 0 )#.scale(t.the_size)t.update_model_view_projection()# vulkan is y negproc move_right*( t: var Shape, x: float32#, y: float32) =t.camera.translate(normalize vec3f(x,0.0,0.0))# .rotate(radians 180.0, 1, 0, 0 )#.scale(t.the_size)t.update_model_view_projection()proc move_up2*( t: var Shape, y: float32#, x: float32) =t.ubo.model = t.ubo.model.translate(normalize vec3f(0.0,y,0.0))t.update_model_view_projection()# vulkan is y negproc move_down2*( t: var Shape, y: float32#, x: float32) =t.ubo.model = t.ubo.model.translate(normalize vec3f( 0.0, -y,0.0))# .rotate(radians 180.0, 1, 0, 0 )#.scale(t.the_size)t.update_model_view_projection()# vulkan is y negproc move_left2*( t: var Shape, x: float32#, y: float32) =t.ubo.model = t.ubo.model.translate(normalize vec3f(-x,0.0,0.0))# .rotate(radians 180.0, 1, 0, 0 )#.scale(t.the_size)t.update_model_view_projection()# vulkan is y negproc move_right2*( t: var Shape, x: float32#, y: float32) =t.ubo.model = t.ubo.model.translate(normalize vec3f(x,0.0,0.0))# .rotate(radians 180.0, 1, 0, 0 )#.scale(t.the_size)t.update_model_view_projection()# vulkan is y negproc move_to*( t: var Shape, x: float32, y: float32) =t.ubo.model = mat4f(1).translate(0,0,0).translate(x,-y,0)# .rotate(radians 180.0, 1, 0, 0 ).scale( t.the_size.x, t.the_size.y, 0.0)t.update_model_view_projection()#[ proc updateCamera*( shape: var Shape) =# if text.camera_type == Ortho:#text.ubos.vs.view = text.camera.matrices.view#text.camera.updateViewMatrix()# if text.camera_type == Perspective:# text.ubos.vs.projection = text.camera.matrices.persp# text.ubos.vs.view = text.camera.matrices.view# text.ubos.vs.model = mat4(1.0.float32).scale 0.16# text.camera.updateViewMatrix()shape.vk_device[].map_memory( shape.uniform_buffer.memory, shape.uniform_buffer.data)shape.vk_device[].map_memory( shape.uniform_buffer.memory, shape.uniform_buffer.data)copymem(shape.uniform_buffer.data, addr shape.ubo, shape.ubo.sizeof)copymem(shape.uniform_buffer.data, addr shape.ubo, shape.ubo.sizeof)vkUnmapMemory(shape.vk_device[], shape.uniform_buffer.memory)vkUnmapMemory(shape.vk_device[], shape.uniform_buffer.memory)#shape.changed = false ]#
import shape_object, shape_primitives, shape_types, grid, ../vk/[ vulkan, pipeline_record, graphics_pipeline]typePlane_Object = object of RootObjshape*: Shapeid*: intname*: stringgrid*: Dynamic_GridPlane* = ref object of Plane_Objectproc a_plane*( shape: var Shape, name: string): Plane =result = Plane()result.shape = shaperesult.name = nameproc move_to*( plane: var Plane, x, y: float32) = plane.shape.move_to( x, y)proc move_up*( plane: var Plane, amount: float32) = plane.shape.move_up amountproc move_down*( plane: var Plane, amount: float32) = plane.shape.move_down amountproc move_left*( plane: var Plane, amount: float32) = plane.shape.move_left amountproc move_right*( plane: var Plane, amount: float32) = plane.shape.move_right amount
import shape_object, colors, ../vk/[ vulkan, vulkan_record, pipeline_record, buffer], glm, ../cameratypeSpace_Type* = enumEmptySpawnerSpace* = objectrender*: boolthe_type*: Space_Typeshape*: ShapeStatic_Row[N] = array[N, Space]Static_Grid_Object[R, C] = object of RootObjspaces*: array[R, Static_Row[C]]space_size*: intDynamic_Row = seq[Space]Dynamic_Grid_Object = object of RootObjrows*: seq[Dynamic_Row]space_size*: intStatic_Grid* = ref object of Static_Grid_ObjectDynamic_Grid* = ref object of Dynamic_Grid_Object#[ proc a_dynamic_grid*( rows: int, columns: int, rec: var Vulkan_Record, render_pass: VkRenderPass, pipeline_record: Pipeline_Record, current_entity_id: int, parent_buffer: var Buffer): Dynamic_Grid =result = Dynamic_Grid()result.rows.setlen rowsfor row in result.rows.mitems:row.setlen columnsfor row in result.rows.mitems:for space in row.mitems:space.shape = a_shape( parent_buffer, rec, pipeline_record, render_pass, current_entity_id, 4, "plane0_quad", theSize = vec2f( 80, 40), being_color = dark_purple, deshn_color = yellow, camera_type = Camera_Kind.Perspective, hollow = false)]#
import glmletred* = vec4f( 1.0, 0.0, 0.0, 1.0)green* = vec4f( 0.0, 0.0, 1.0, 1.0)blue* = vec4f( 0.0, 1.0, 0.0, 1.0)black* = vec4f( 0.0, 0.0, 0.0, 1.0)white* = vec4f( 1.0, 1.0, 1.0, 1.0)yellow* = vec4f( 1.0, 1.0, 0.0, 1.0)silver_blue* = vec4f( 130 / 255, 178 / 255, 255 / 255, 1.0)dark_purple* = vec4f( 55 / 255, 31 / 255, 115 / 255, 1.0)
import ../camera, glm#[Currently, shapes can either be ortho, or perspective.if they are ortho, we merely push the MVP.so with actions, we just update the mvp.But what about the camera???]##[ proc rotate2*[T]( t: T, x: float32, y: float32, z: float32 = 0.0) =case t.camKindof Camera_Kind.Perspective:t.camPersp.rotation += vec3f(x,y,z)t.camPersp.updateViewMatrixt.ubo.proj = t.camPersp.matrices.perspt.ubo.view = t.camPersp.matrices.viewt.ubo.mvp = t.ubo.proj * t.ubo.view * t.ubo.modelt.camPersp.rotation += vec3f(x,y,z)t.camPersp.updateViewMatrixt.changed = trueof Camera_Kind.Ortho: discard ]#proc translate*[T]( t: T, dt: Vec3[float32]) =t.camera.pos += dtt.camera.updated = truet.camera.updateViewMatrix()t.changed = true
{.experimental: "codeReordering".}import ../drawable/[ shape_object], ../vk/[ vulkan_record, vulkan], std/[ math], actions, options, tables### state machine stufftype# entry_action: Option[Callback]# exit_action: Option[Callback]State_Actions = tuple[ entry_action: Option[Callback], exit_action: Option[Callback]]Callback = proc(deshn_being: var Deshn_Being): voidStateEvent[S,E] = tuple[state: S, event: E]Transition[S] = tuple[nextState: S, action: Option[Callback]]State_Machine*[S,E] = ref object of RootObjinitial_state*: Scurrent_state*: Option[S]state_actions*: array[S, StateActions]transitions*: TableRef[StateEvent[S,E], Transition[S]]free_transitions*: TableRef[S, Transition[S]]default_transition*: Option[Transition[S]]#TransitionNotFoundException = object of Exceptionproc current_state_is*[S]( being: var Deshn_Being, nextState: S) =if being.main_state_machine.current_state.isSome:if being.main_state_machine.state_actions[being.main_state_machine.current_state.get].exit_action.isSome:get(being.main_state_machine.state_actions[being.main_state_machine.current_state.get].exit_action)(being)being.main_state_machine.current_state = some(nextState)if being.main_state_machine.state_actions[being.main_state_machine.current_state.get].entry_action.isSome:get(being.main_state_machine.state_actions[being.main_state_machine.current_state.get].entry_action)(being)proc reset*[S,E]( being: var Deshn_Being) =being.main_state_machine.current_state_is being.main_state_machine.initial_stateproc initial_state_is*[S,E]( m: State_Machine[S,E], state: S) =m.initialState = stateproc initial_state_is*[S,E]( being: var Deshn_Being, state: S) =being.main_state_machine.initial_state = stateproc add_state_actions*[S]( being: var Deshn_Being, state: S, entry_action: Callback = nil, exit_action: Callback = nil) =letentry = if entry_action == nil: none(Callback)else: some(entry_action)exit = if exit_action == nil: none(Callback)else: some(exit_action)being.main_state_machine.state_actions[state] = (entry, exit)proc a_state_machine*[S,E]( initial_state: S): State_Machine[S,E] =result = State_Machine[S,E]()result.transitions = newTable[ StateEvent[S,E], Transition[S]]()result.free_transitions = newTable[ S, Transition[S]]()result.initial_state_is initial_stateproc add_free_transition*[S,E]( being: var Deshn_Being, state: S, nextState: S) =being.main_state_machine.free_transitions[state] = (nextState, none(Callback))proc addTransitionAny*[S,E]( being: var Deshn_Being, state, nextState: S, action: Callback) =being.main_state_machine.free_transitions[state] = (nextState, some(action))proc add_transition*[S,E]( being: var Deshn_Being, state: S, event: E, nextState: S) =being.main_state_machine.transitions[(state, event)] = (nextState, none(Callback))proc add_transition*[S,E]( being: var Deshn_Being, state: S, event: E, nextState: S, action: Callback) =being.main_state_machine.transitions[(state, event)] = (nextState, some(action))proc setDefaultTransition*[S,E]( being: var Deshn_Being, state: S) =being.main_state_machine.default_transition = some((state, none(Callback)))proc setDefaultTransition*[S,E]( being: var Deshn_Being, state: S, action: Callback) =being.main_state_machine.default_transition = some((state, some(action)))proc the_transition*[S,E]( being: var Deshn_Being, event: E, state: S): Transition[S] =let map = (state, event)if being.main_state_machine.transitions.hasKey(map): result = being.main_state_machine.transitions[map]elif being.main_state_machine.free_transitions.hasKey(state): result = being.main_state_machine.free_transitions[state]elif being.main_state_machine.default_transition.isSome: result = being.main_state_machine.default_transition.getelse:echo mapquit "Transition not found"proc process_event*[E]( being: var Deshn_Being, event: E) =let transition = being.the_transition( event, being.main_state_machine.current_state.get)#echo "t0: ", transition[0]if transition[1].isSome: get(transition[1])(being)being.current_state_is transition[0]#echo event, " ", being.main_state_machine.current_state.get### TODO: PLEASE SORT THIS OUT ^^^^^^^^^^^^^typeMain_Deshn_Being_Events* = enumMovedNo_ActionAdded_To_Deshn_PoolRemoved_From_Deshn_PoolAdded_To_Recovery_PoolRemoved_From_Recovery_PoolFilled_Deshn_PoolExhausted_Deshn_PoolFilled_Recovery_PoolExhausted_Recovery_PoolStoppedMain_Deshn_Being_States* = enumMovingNot_MovingRecoveringIdleDeshn_Pool_Full#Deshn_Pool_Not_FullDeshn_Pool_EmptyDeshn_Pool_EmptyingDeshn_Pool_FillingDeshn_Pool_ExhaustedDeshn_Pool_Value* = range[0.0..30.0]Deshn_Recovery_Pool_Value* = range[0.0..2.0]Deshn_Being_Obj = object of RootObjshape*: Shapecurrent_deshn_pool*: float32 = 30current_deshn_pool_max_size*: Deshn_Pool_Value = Deshn_Pool_Value.highcurrent_deshn_pool_recovery_pool*: Deshn_Recovery_Pool_Value = Deshn_Recovery_Pool_Value.highcurrent_deshn_pool_recovery_pool_max*: Deshn_Recovery_Pool_Value = Deshn_Recovery_Pool_Value.highrecovering*: boolname*: stringid*: intmain_state_machine*: State_Machine[ Main_Deshn_Being_States, Main_Deshn_Being_Events]Deshn_Being* = ref object of Deshn_Being_Objproc move_to*( being: var Deshn_Being, x, y: float32) = being.shape.move_to( x, y)proc move_up*( being: var Deshn_Being, amount: float32, deshn_cost = 0.1) =if being.can_move:being.shape.move_up amountbeing.process_event Main_Deshn_Being_Events.Movedbeing.remove_amount_from_deshn_pool 0.03else: discardproc move_down*( being: var Deshn_Being, amount: float32, deshn_cost = 0.1) =if being.can_move:being.shape.move_down amountbeing.process_event Main_Deshn_Being_Events.Movedbeing.remove_amount_from_deshn_pool 0.03else: discardproc move_left*( being: var Deshn_Being, amount: float32, deshn_cost = 0.1) =if being.can_move:being.shape.move_left amountbeing.process_event Main_Deshn_Being_Events.Movedbeing.remove_amount_from_deshn_pool 0.03else: discardproc move_right*( being: var Deshn_Being, amount: float32, deshn_cost = 0.1) =if being.can_move:being.shape.move_right amountbeing.process_event Main_Deshn_Being_Events.Movedbeing.remove_amount_from_deshn_pool 0.03else: discardproc deshn_pool_is_full*( being: Deshn_Being): bool =return being.shape.ubo.deshn_pool_is_fullproc deshn_pool_is_empty*( being: Deshn_Being): bool =return being.shape.ubo.deshn_pool_is_emptyproc can_move*( being: var Deshn_Being): bool =return ( not being.deshn_pool_is_empty() andbeing.current_deshn_pool_recovery_pool == Deshn_Recovery_Pool_Value.high)proc add_amount_to_deshn_pool*( being: var Deshn_Being, amount: float32) =being.shape.ubo.deshn_pool += amountbeing.shape.ubo.deshn_pool_is_empty = falseecho being.shape.ubo.deshn_poolbeing.process_event Main_Deshn_Being_Events.Added_To_Deshn_Poolif being.shape.ubo.deshn_pool >= being.current_deshn_pool_max_size:being.main_state_machine.current_state = some Deshn_Pool_Fullbeing.shape.ubo.deshn_pool_is_full = true#[ #if not being.shape.ubo.deshn_pool_is_full:if not (being.main_state_machine.current_state_is Pool_Full)being.shape.ubo.deshn_pool += amount#if being.shape.ubo.deshn_pool_is_empty:if (being.main_state_machine.current_state_is Pool)being.shape.ubo.deshn_pool_is_empty = falsebeing.shape.ubo.deshn_pool += amountif being.shape.ubo.deshn_pool >= being.current_deshn_pool_max_size:being.shape.ubo.deshn_pool_is_full = truebeing.shape.ubo.deshn_pool = Deshn_Pool_Value.high ]#proc remove_amount_from_deshn_pool*( being: var Deshn_Being, amount: float32) =being.shape.ubo.deshn_pool -= amountbeing.process_event Main_Deshn_Being_Events.Removed_From_Deshn_Poolbeing.shape.ubo.deshn_pool_is_full = falseif being.shape.ubo.deshn_pool <= Deshn_Pool_Value.low:being.recovering = truebeing.shape.ubo.deshn_pool_is_empty = truebeing.process_event Main_Deshn_Being_Events.Exhausted_Deshn_Poolproc add_amount_to_recovery_pool*( being: var Deshn_Being, amount: float32) =if (being.current_deshn_pool_recovery_pool + amount > Deshn_Recovery_Pool_Value.high) orbeing.current_deshn_pool_recovery_pool >= Deshn_Recovery_Pool_Value.high:being.current_deshn_pool_recovery_pool = Deshn_Recovery_Pool_Value.highbeing.process_event Added_To_Recovery_Poolbeing.process_event Filled_Recovery_Poolelse:being.current_deshn_pool_recovery_pool += amountbeing.process_event Added_To_Recovery_Poolproc remove_amount_from_recovery_pool*( being: var Deshn_Being, amount: float32) =being.current_deshn_pool_recovery_pool -= amountif being.current_deshn_pool_recovery_pool <= Deshn_Recovery_Pool_Value.low:being.current_deshn_pool_recovery_pool = Deshn_Recovery_Pool_Value.lowbeing.recovering = trueproc idle_and_moved_cb( deshn_being: var Deshn_Being) =echo "idle and moved"proc not_moving_and_moved_cb( deshn_being: var Deshn_Being) =echo "stopped and moved"proc moving_and_no_action_cb( deshn_being: var Deshn_Being) =echo "moving and no action"proc stopped_and_no_action_cb( deshn_being: var Deshn_Being) =echo "stopped and no action"proc deshn_pool_full_and_taken_from_cb( deshn_being: var Deshn_Being) =echo "full pool taken from"deshn_being.shape.ubo.deshn_pool_is_full = falseproc deshn_pool_empty_and_added_to_cb( deshn_being: var Deshn_Being) =echo "empty pool added to"deshn_being.shape.ubo.deshn_pool_is_empty = falseproc deshn_pool_filling_and_added_to_cb( deshn_being: var Deshn_Being) =echo "pool filling added to"proc deshn_pool_filling_and_full_cb( deshn_being: var Deshn_Being) =echo "pool added to and now full"deshn_being.shape.ubo.deshn_pool_is_full = trueproc deshn_pool_full_and_moved_cb( deshn_being: var Deshn_Being) =echo "pool full and moved"deshn_being.shape.ubo.deshn_pool_is_full = falseproc deshn_pool_empyting_and_stopped( deshn_being: var Deshn_Being) =echo "pool emptying and now stopped"proc moving_and_exhausted_pool_cb( deshn_being: var Deshn_Being) =echo "moving and exhausted pool"proc exhausted_pool_and_no_action_cb( deshn_being: var Deshn_Being) =echo "exhausted pool and no action"proc deshn_pool_emptying_and_taken_from_cb( deshn_being: var Deshn_Being) =echo "pool emptying and taken from"if deshn_being.shape.ubo.deshn_pool <= Deshn_Pool_Value.low:deshn_being.shape.ubo.deshn_pool = Deshn_Pool_Value.lowdeshn_being.current_deshn_pool = Deshn_Pool_Value.lowdeshn_being.shape.ubo.deshn_pool_is_empty = trueproc deshn_pool_empty_and_taken_from_cb( deshn_being: var Deshn_Being) =echo "pool empty and taken from"proc deshn_pool_exhausted_and_no_action_cb( deshn_being: var Deshn_Being) =echo "pool exhausted, no action"proc deshn_pool_exhausted_and_added_to_cb( deshn_being: var Deshn_Being) =echo "deshn_pool_exhausted_and_added_to_cb"if deshn_being.current_deshn_pool_recovery_pool >= Deshn_Recovery_Pool_Value.high:deshn_being.current_deshn_pool_recovery_pool = Deshn_Recovery_Pool_Value.highdeshn_being.recovering = falseproc recovering_and_added_to_recovery_pool_cb( deshn_being: var Deshn_Being) =echo "recovering_and_added_to_recovery_pool_cb"proc moving_and_taken_from_pool_cb( deshn_being: var Deshn_Being) =echo "moving, taken X from pool"if deshn_being.shape.ubo.deshn_pool <= Deshn_Pool_Value.low:deshn_being.shape.ubo.deshn_pool = Deshn_Pool_Value.lowdeshn_being.current_deshn_pool_recovery_pool = Deshn_Recovery_Pool_Value.lowdeshn_being.shape.ubo.deshn_pool_is_empty = trueproc moving_and_moved_cb( deshn_being: var Deshn_Being) =echo "moving, and moved"proc not_moving_and_added_to_pool_cb( deshn_being: var Deshn_Being) =echo "not_moving_and_added_to_pool"proc moving_and_added_to_pool_cb( deshn_being: var Deshn_Being) =echo "moving_and_added_to_pool"proc deshn_pool_filling_and_moved_cb( deshn_being: var Deshn_Being) =echo "deshn_pool_filling_and_moved_cb"proc filled_recovery_pool_and_now_idle_cb( deshn_being: var Deshn_Being) =echo "filled_recovery_pool_and_now_idle_cb"deshn_being.recovering = falseproc idle_and_added_to_deshn_pool_cb( deshn_being: var Deshn_Being) =echo "idle_and_added_to_deshn_pool_cb"proc when_moving_state_action( deshn_being: var Deshn_Being) = discardproc after_moving_state_action( deshn_being: var Deshn_Being) = discardproc when_not_moving_state_action( deshn_being: var Deshn_Being) = discardproc after_not_moving_state_action( deshn_being: var Deshn_Being) = discardproc when_recovering_state_action( deshn_being: var Deshn_Being) = discardproc after_recovering_state_action( deshn_being: var Deshn_Being) = discardproc when_stopped_state_action( deshn_being: var Deshn_Being) = discardproc after_stopped_state_action( deshn_being: var Deshn_Being) = discardproc when_idle_state_action( deshn_being: var Deshn_Being) = discardproc after_idle_state_action( deshn_being: var Deshn_Being) = discardproc when_deshn_pool_full_state_action( deshn_being: var Deshn_Being) = discardproc after_deshn_pool_full_state_action( deshn_being: var Deshn_Being) = discardproc when_deshn_pool_empty_state_action( deshn_being: var Deshn_Being) = discardproc after_deshn_pool_empty_state_action( deshn_being: var Deshn_Being) = discardproc when_deshn_pool_emptying_state_action( deshn_being: var Deshn_Being) = discardproc after_deshn_pool_emptying_state_action( deshn_being: var Deshn_Being) = discardproc when_deshn_pool_filling_state_action( deshn_being: var Deshn_Being) = discardproc after_deshn_pool_filling_state_action( deshn_being: var Deshn_Being) = discardproc when_deshn_pool_exhausted_state_action( deshn_being: var Deshn_Being) =discardproc after_deshn_pool_exhausted_state_action( deshn_being: var Deshn_Being) = discardproc add_default_transitions*( being: var Deshn_Being) =being.add_transition( Idle, Moved, Moving, idle_and_moved_cb)being.add_transition( Not_Moving, Moved, Moving, not_moving_and_moved_cb)being.add_transition( Moving, No_Action, Not_Moving, moving_and_no_action_cb)being.add_transition( Not_Moving, No_Action, Idle, stopped_and_no_action_cb)being.add_transition( Deshn_Pool_Full, Removed_From_Deshn_Pool, Deshn_Pool_Emptying, deshn_pool_full_and_taken_from_cb)being.add_transition( Deshn_Pool_Empty, Added_To_Deshn_Pool, Deshn_Pool_Filling, deshn_pool_empty_and_added_to_cb)being.add_transition( Deshn_Pool_Filling, Added_To_Deshn_Pool, Deshn_Pool_Filling, deshn_pool_filling_and_added_to_cb)being.add_transition( Deshn_Pool_Emptying, Removed_From_Deshn_Pool, Deshn_Pool_Empty, deshn_pool_emptying_and_taken_from_cb)being.add_transition( Deshn_Pool_Exhausted, No_Action, Recovering, deshn_pool_exhausted_and_no_action_cb)being.add_transition( Deshn_Pool_Exhausted, Added_To_Recovery_Pool, Recovering, deshn_pool_exhausted_and_added_to_cb)being.add_transition( Moving, Removed_From_Deshn_Pool, Moving, moving_and_taken_from_pool_cb)being.add_transition( Moving, Moved, Moving, moving_and_moved_cb)being.add_transition( Moving, Stopped, Not_Moving, moving_and_moved_cb)being.add_transition( Not_Moving, Added_To_Deshn_Pool, Deshn_Pool_Filling, not_moving_and_added_to_pool_cb)being.add_transition( Deshn_Pool_Full, Moved, Moving, deshn_pool_full_and_moved_cb)being.add_transition( Moving, Added_To_Deshn_Pool, Moving, moving_and_added_to_pool_cb)#[ being.add_transition( Deshn_Pool_Full, Moved, Deshn_Pool_Not_Full, deshn_pool_full_and_moved_cb) ]##[ being.add_transition( Deshn_Pool_Not_Full, Removed_From_Deshn_Pool, Deshn_Pool_Emptying, deshn_pool_not_full_and_removed_from_cb) ]#being.add_transition( Deshn_Pool_Emptying, Stopped, Not_Moving, deshn_pool_empyting_and_stopped)being.add_transition( Deshn_Pool_Filling, Moved, Moving, deshn_pool_filling_and_moved_cb)being.add_transition( Moving, Exhausted_Deshn_Pool, Deshn_Pool_Exhausted, moving_and_exhausted_pool_cb)being.add_transition( Deshn_Pool_Exhausted, No_Action, Recovering, exhausted_pool_and_no_action_cb)being.add_transition( Recovering, Added_To_Recovery_Pool, Recovering, exhausted_pool_and_no_action_cb)being.add_transition( Idle, Added_To_Deshn_Pool, Deshn_Pool_Filling, idle_and_added_to_deshn_pool_cb)being.add_transition( Recovering, Filled_Recovery_Pool, Idle, filled_recovery_pool_and_now_idle_cb)proc add_default_state_actions*( being: var Deshn_Being) =being.add_state_actions( Moving, entry_action = when_moving_state_action, exit_action = after_moving_state_action)being.add_state_actions( Recovering, entry_action = when_recovering_state_action, exit_action = after_recovering_state_action)being.add_state_actions( Not_Moving, entry_action = when_stopped_state_action, exit_action = after_stopped_state_action)being.add_state_actions( Idle, entry_action = when_idle_state_action, exit_action = after_idle_state_action)#[ being.add_state_actions( Deshn_Pool_Exhausted, entry_action = when_deshn_pool_exhausted_state_action, exit_action = after_deshn_pool_exhausted_state_action) ]#being.add_state_actions( Deshn_Pool_Empty, entry_action = when_deshn_pool_empty_state_action, exit_action = after_deshn_pool_empty_state_action)being.add_state_actions( Deshn_Pool_Emptying, entry_action = when_deshn_pool_emptying_state_action, exit_action = after_deshn_pool_emptying_state_action)being.add_state_actions( Deshn_Pool_Filling, entry_action = when_deshn_pool_filling_state_action, exit_action = after_deshn_pool_filling_state_action)being.add_state_actions( Deshn_Pool_Full, entry_action = when_deshn_pool_full_state_action, exit_action = after_deshn_pool_full_state_action)being.add_state_actions( Not_Moving, entry_action = when_not_moving_state_action, exit_action = after_not_moving_state_action)proc a_deshn_being*( shape: Shape, name: string): Deshn_Being =result = Deshn_Being()result.shape = shaperesult.name = nameresult.main_state_machine = a_state_machine[ Main_Deshn_Being_States, Main_Deshn_Being_Events](Idle)result.add_default_transitions()result.add_default_state_actions()
{.deadCodeElim: on.}import glmimport vk/vkm/vkmat as vkmtypeMatrices = objectperspective*: Mat4[float32]view*: Mat4[float32]Camera_Kind* = enum Ortho PerspectiveCamera* = objectfov*: float32z_near*: float32z_far*: float32matrices*: Matricesrotation*: Vec3[float32]position*: Vec3[float32]view_position*: Vec4[float32]updated*: boolflip_Y*: boolproc update_view_matrix*( camera: var Camera) =varrotation_matrix = mat4 1.0ftranslation_matrix: Mat4[float32]camera_flip_mod = if camera.flipY: -1.0f else: 1.0ftranslation = camera.positionrotation_matrix = rotate( rotation_matrix, radians(camera.rotation.x *camera_flip_mod), vec3( 1.0f, 0.0f, 0.0f))rotation_matrix = rotate( rotation_matrix, radians(camera.rotation.y), vec3( 0.0f, 1.0f, 0.0f));rotation_matrix = rotate( rotation_matrix, radians(camera.rotation.z), vec3( 0.0f, 0.0f, 1.0f));if camera.flipY: translation.y *= -1.0ftranslation_matrix = translate( mat4(1.0f), translation)# if (type == CameraType::firstperson)# {# matrices.view = rotation_matrix * translation_matrix;# }# else# {camera.matrices.view = translation_matrix * rotation_matrix;# }camera.view_position = vec4( camera.position, 0.0f) *vec4( -1.0f, 1.0f, -1.0f, 1.0f)camera.updated = trueproc `set_perspective_with`*( c: var Camera, fov, aspect, z_near, z_far: float32) =c.fov = fovc.z_near = z_nearc.z_far = z_farc.matrices.perspective = perspective( radians fov, aspect, z_near, z_far)if (c.flipY): c.matrices.perspective[1][1] *= -1fproc `position_is`*( c: var Camera, position: Vec3[float32]) =c.position = positionc.update_view_matrixproc `position+=`*( c: var Camera, position: Vec3[float32]) =c.position += positionc.update_view_matrixproc `rotation=`*( c: var Camera, rot: Vec3[float32]) =c.rotation = rotproc translate*( c: var Camera, vector: Vec3[float32]) =c.position += vectorc.update_view_matrix()proc update*( camera: var Camera, dt: float) =camera.updated = falseproc `set_aspect_ratio_with`*( c: var Camera, fov, ar: float32) =c.set_perspective_with radians(fov), ar, 1, 256.0#c.update_view_matrix()proc a_camera*( ar: float32, camera_type: Camera_Kind = Perspective): Camera =case camera_typeof Ortho: discardof Perspective: discardresult.position = vec3f( 0.0.float32, 0.0, 0.0)result.rotation = vec3f(0.float32)result.set_perspective_with( 90.0.float32, ar, 1.0, 256.0)result.update_view_matrix()result
#[discard xcb_grab_pointer( p.conn, 0, p.window, uint16 XCB_EVENT_MASK_BUTTON_RELEASE orXCB_EVENT_MASK_BUTTON_MOTION orXCB_EVENT_MASK_POINTER_MOTION_HINT, uint8 XCB_GRAB_MODE_ASYNC, uint8 XCB_GRAB_MODE_ASYNC, p.window, XCB_NONE, XCB_CURRENT_TIME)]## // Simple fix for 1:1 pixel aspect ratio.# if (viewport.width > viewport.height)# {# viewport.x += 0.5f * (viewport.width - viewport.height);# viewport.width = viewport.height;# }# else if (viewport.height > viewport.width)# {# viewport.y += 0.5f * (viewport.height - viewport.width);# viewport.height = viewport.width;# }# for t in scene.shapes.mitems:# if t.camera.updated: rec.vk_device.updateCamera(t, ( rec.swapchain.current_extent.width div# rec.swapchain.current_extent.height# ) )# p.mouse = xcb_query_pointer_reply( p.conn# , xcb_query_pointer(p.conn, p.window)# , cast[ptr ptr xcb_generic_error_t](Z)# )
version = "0.0.1"author = "Otanoe"description = "zzz"license = "ZZZ"srcDir = "src"bin = @["shapes"]requires "nim >= 1.4.8"requires "freetype"#requires "chronos"requires "glm"requires "winim"#nim c -d:danger --gc:orc --cc:clang --passC:"-flto" --passL:"-flto" -d:useMalloc #(?)#why does it not executetask dbg_prof_malloc, "build & run debug binary":exec "nim c -r --hints:off --warnings:off --nimcache:nim_cache --gc:orc --threads:on -d:useMalloc --stackTrace:on --profiler:on --outdir:bin src/shapes.nim"task dbg_malloc, "build & run debug binary":exec "nim c -r --hints:off --warnings:off --nimcache:nim_cache --gc:orc --threads:on -d:useMalloc --stackTrace:on --outdir:bin src/shapes.nim"task dbg, "build & run debug binary":exec "clear && nim c -r --hints:off --warnings:off --nimcache:/run/media/j/ZZZ/Dev/nim/cache --gc:orc --threads:on --outdir:bin src/shapes.nim"task dbg_win, "build & run debug binary":exec "nim c -r --hints:off --warnings:off --gc:arc --threads:off --stackTrace:on --lineTrace:on --checks:on -d:useMalloc --nimcache:E:/Programming/nim/cache --outdir:bin src/shapes.nim"task buildrun, "build & run debug binary":exec "nim c -r --hints:off --nimcache:/run/media/j/ZZZ/Dev/nim/cache --gc:orc --outdir:bin src/shapes.nim"task redbg, "force-rebuild & run debug binary":exec "nim c -r -f --hints:off --warnings:off --nimcache:/run/media/j/ZZZ/Dev/nim/cache --gc:orc --threads:on -d:useMalloc --outdir:bin src/shapes.nim"task rerel, "force-rebuild & run debug binary":exec "nim c -r -f --hints:off --warnings:off --nimcache:/run/media/j/ZZZ/Dev/nim/cache --gc:orc --threads:on -d:useMalloc -d:danger --passC:\"-flto\" --passL:\"-flto\" --outdir:bin src/shapes.nim"task run, "run debug binary":exec "nim -r bin/shapes"task tests, "run all tests":exec "nim c -r tests/vkTests/"task vkTests, "Make sure vulkan is working properly":echo "vkInstance: In progress..."exec "nim c -r --hints:off tests/vkTests/instance"task w64, "windows build":exec "nim c -r -f --hints:off --warnings:off --nimcache:F:/nimcache --gc:orc --outdir:bin src/shapes.nim"# task build-LREL, "build & run Linux release binary":# exec "nim c -r -f -d:release --hints:off --nimcache:/run/media/j/ZZZ/Dev/nim/cache src/shapes.nim"task help, "list all tasks":echo "buildrun build & run debug binary"echo "dbg build & run debug binary"echo "redbg rebuild everything & run debug binary"echo "rerel rebuild everything & run release binary"echo "run build & run debug binary in bin"echo "tests run all tests"echo "vkTests run basic but core vulkan functionality"echo "w64 rebuild and run win64 binary"#task bench "benchmarking# exec
A Slayin' type game for the desktop.- semi-arcadey 2.5D horde-type game similar to slayin- very involved controls, nearly fighting-game like, with 8 (?) possible directional attacks, unlike slayin's 4 (really 2.5)- somehow in the S H A P E S (irregular) universe| || || # # || || || () || || [] () ^ () [] ||___________________________________________________|Slayin'6 classesknight- armor for an extra HP bar + giant sword- low mobility- generally the most boring to play- easiest to survive and beat (so far) thoughwizardthiefarcher- most fun (so far)old manninja girl