just realized this is not how the documentation uses properties but i'm 
wondering if using them as a constructor type thing is a problem in nim. So far 
it seems fine but its not in the manual.

so here's my example...
    
    
    var cmd_pool: VkCommandPool
    
    type
      CommandBufferPool* = ref object
       cmd_pool_info : VkCommandPoolCreateInfo
       que_type_flags*: seq[VkQueueFlags]
       phys_device*: VKDevice
       result*: VkResult
    
    proc `=CommandBufferPool`*(self:CommandBufferPool) =
        self.cmd_pool_info.sType = VkStructureType.commandPoolCreateInfo
        self.cmd_pool_info.pNext = nil
        ###########
        for i in 0 .. <self.que_type_flags.len:
         if self.que_type_flags[i] == vkQueueGraphicsBit:
          self.cmd_pool_info.queueFamilyIndex = vkQueueGraphicsBit ## <- 
temporary short circuit
         else: echo "commandbuffer type" & $vkQueueGraphicsBit
        ###########
        self.cmd_pool_info.flags = 0
        self.result = vkCreateCommandPool(self.phys_device,addr 
self.cmd_pool_info,nil,addr cmd_pool)
    

and here's the call
    
    
    let cmd = 
CommandBufferPool(index:que.index,phys_device:device.physical_device)
     if cmd.result == VkResult.success:
      echo("vulkan command_buffer: " & $VkResult.success)
    
    

i think so far its pretty good way of doing constructor type behavior but i 
did'nt see it in the manual so i'm wondering about it.

and if it ok would'nt it be better to do a python type __init___ constructor. 
i'm actually not familiar with python but i think that is how it works.

maybe something like this...
    
    
    proc `_CommandBufferPool_`*(self:CommandBufferPool) =
    
    

or this...
    
    
    proc <CommandBufferPool>*(self:CommandBufferPool) =
    
    

And then the <> brackets would insert a = sign to make it a constructor?

Reply via email to