---@meta ---@class cc.Material :cc.Ref local Material={ } cc.Material=Material ---* returns a clone (deep-copy) of the material ---@return self function Material:clone () end ---* ---@param meshCommand cc.MeshCommand ---@param globalZOrder float ---@param vertexBuffer cc.backend.Buffer ---@param indexBuffer cc.backend.Buffer ---@param primitive int ---@param indexFormat int ---@param indexCount unsigned_int ---@param modelView mat4_table ---@return self function Material:draw (meshCommand,globalZOrder,vertexBuffer,indexBuffer,primitive,indexFormat,indexCount,modelView) end ---* ---@return cc.RenderState function Material:getRenderState () end ---* / sets the material name ---@param name string ---@return self function Material:setName (name) end ---* Returns a Technique by index.
---* returns `nullptr` if the index is invalid. ---@param index int ---@return cc.Technique function Material:getTechniqueByIndex (index) end ---* / returns the material name ---@return string function Material:getName () end ---* Returns the list of Techniques ---@return array_table function Material:getTechniques () end ---* Returns the number of Techniques in the Material. ---@return int function Material:getTechniqueCount () end ---* Sets the current technique ---@param techniqueName string ---@return self function Material:setTechnique (techniqueName) end ---* Returns a Technique by its name.
---* returns `nullptr` if the Technique can't be found. ---@param name string ---@return cc.Technique function Material:getTechniqueByName (name) end ---* Adds a Technique into the Material ---@param technique cc.Technique ---@return self function Material:addTechnique (technique) end ---* Returns the Technique used by the Material ---@return cc.Technique function Material:getTechnique () end ---* Creates a Material using the data from the Properties object defined at the specified URL,
---* where the URL is of the format ".#//.../"
---* (and "#//.../" is optional).
---* param url The URL pointing to the Properties object defining the material.
---* return A new Material or NULL if there was an error. ---@param path string ---@return self function Material:createWithFilename (path) end ---* Creates a material from the specified properties object.
---* param materialProperties The properties object defining the
---* material (must have namespace equal to 'material').
---* return A new Material. ---@param materialProperties cc.Properties ---@return self function Material:createWithProperties (materialProperties) end ---* Creates a Material with a GLProgramState.
---* It will only contain one Technique and one Pass.
---* Added in order to support legacy code. ---@param programState cc.backend.ProgramState ---@return self function Material:createWithProgramState (programState) end