Have common functions for the opengl and vuilkan pipelines Try to keep state internal and just expose common functions For vulkan, concerns are bindingDescription and attributeDescriptions -Since we just have one data array split up into point-sized chunks, we can just have a single bindngDescription -attributeDescriptions will have to be defined per pipeline (something similar will happen in opengl for varying attributes) VkPipeline and VkPipelineLayout are used for creating the pipeline commands, so keep track of them