Kaynağa Gözat

Fixed leaking C strings.

woollybah 10 yıl önce
ebeveyn
işleme
163068947c
2 değiştirilmiş dosya ile 68 ekleme ve 68 silme
  1. 34 34
      openb3d.mod/functions.bmx
  2. 34 34
      openb3d.mod/openb3dlib.bmx

+ 34 - 34
openb3d.mod/functions.bmx

@@ -419,7 +419,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=FindChild">Online doc</a>
 End Rem
 Function FindChild:TEntity( ent:TEntity, child_name:String )
-	Return globals.ent.EntityValue( FindChild_( ent.instance, child_name.ToCString() ) )
+	Return globals.ent.EntityValue( FindChild_( ent.instance, child_name ) )
 End Function
 
 Rem
@@ -570,7 +570,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadAnimTexture">Online doc</a>
 End Rem
 Function LoadAnimTexture:TTexture( file:String, flags:Int, frame_width:Int, frame_height:Int, first_frame:Int, frame_count:Int )
-	Local instance:Byte Ptr=LoadAnimTexture_( file.ToCString(), flags, frame_width, frame_height, first_frame, frame_count )
+	Local instance:Byte Ptr=LoadAnimTexture_( file, flags, frame_width, frame_height, first_frame, frame_count )
 	Local tex:TTexture=globals.tex.NewTexture( instance )
 	Return tex
 End Function
@@ -628,7 +628,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=NameEntity">Online doc</a>
 End Rem
 Function NameEntity( ent:TEntity, name:String )
-	NameEntity_( ent.instance, name.ToCString() )
+	NameEntity_( ent.instance, name )
 End Function
 
 Rem
@@ -841,7 +841,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=TextureFilter">Online doc</a>
 End Rem
 Function TextureFilter( match_text:String, flags:Int )
-	TextureFilter_( match_text.ToCString(), flags )
+	TextureFilter_( match_text, flags )
 End Function
 
 Rem
@@ -1004,7 +1004,7 @@ Rem
 bbdoc: Load shader from two files, vertex and fragment.
 End Rem
 Function LoadShader:TShader( ShaderName:String, VshaderFileName:String, FshaderFileName:String )
-	Local instance:Byte Ptr=LoadShader_( ShaderName.ToCString(), VshaderFileName.ToCString(), FshaderFileName.ToCString() )
+	Local instance:Byte Ptr=LoadShader_( ShaderName, VshaderFileName, FshaderFileName )
 	Local material:TShader=globals.material.NewShader( instance )
 	Return material
 End Function
@@ -1013,7 +1013,7 @@ Rem
 bbdoc: Load shader from two strings, vertex and fragment.
 End Rem
 Function CreateShader:TShader( ShaderName:String, VshaderString:String, FshaderString:String )
-	Local instance:Byte Ptr=CreateShader_( ShaderName.ToCString(), VshaderString.ToCString(), FshaderString.ToCString() )
+	Local instance:Byte Ptr=CreateShader_( ShaderName, VshaderString, FshaderString )
 	Local material:TShader=globals.material.NewShader( instance )
 	Return material
 End Function
@@ -1043,119 +1043,119 @@ Rem
 bbdoc: Set a shader variable name of a uniform float type to a float value.
 End Rem
 Function SetFloat( material:TShader, name:String, v1:Float )
-	SetFloat_( material.instance, name.ToCString(), v1 )
+	SetFloat_( material.instance, name, v1 )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform vec2 type to 2 float values.
 End Rem
 Function SetFloat2( material:TShader, name:String, v1:Float, v2:Float )
-	SetFloat2_( material.instance, name.ToCString(), v1, v2 )
+	SetFloat2_( material.instance, name, v1, v2 )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform vec3 type to 3 float values.
 End Rem
 Function SetFloat3( material:TShader, name:String, v1:Float, v2:Float, v3:Float )
-	SetFloat3_( material.instance, name.ToCString(), v1, v2, v3 )
+	SetFloat3_( material.instance, name, v1, v2, v3 )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform vec4 type to 4 float values.
 End Rem
 Function SetFloat4( material:TShader, name:String, v1:Float, v2:Float, v3:Float, v4:Float )
-	SetFloat4_( material.instance, name.ToCString(), v1, v2, v3, v4 )
+	SetFloat4_( material.instance, name, v1, v2, v3, v4 )
 End Function
 
 Rem
 bbdoc: Bind a float variable to a shader variable name of a uniform float type.
 End Rem
 Function UseFloat( material:TShader, name:String, v1:Float Var )
-	UseFloat_( material.instance, name.ToCString(), Varptr(v1) )
+	UseFloat_( material.instance, name, Varptr(v1) )
 End Function
 
 Rem
 bbdoc: Bind 2 float variables to a shader variable name of a uniform vec2 type.
 End Rem
 Function UseFloat2( material:TShader, name:String, v1:Float Var, v2:Float Var )
-	UseFloat2_( material.instance, name.ToCString(), Varptr(v1), Varptr(v2) )
+	UseFloat2_( material.instance, name, Varptr(v1), Varptr(v2) )
 End Function
 
 Rem
 bbdoc: Bind 3 float variables to a shader variable name of a uniform vec3 type.
 End Rem
 Function UseFloat3( material:TShader, name:String, v1:Float Var, v2:Float Var, v3:Float Var )
-	UseFloat3_( material.instance, name.ToCString(), Varptr(v1), Varptr(v2), Varptr(v3) )
+	UseFloat3_( material.instance, name, Varptr(v1), Varptr(v2), Varptr(v3) )
 End Function
 
 Rem
 bbdoc: Bind 4 float variables to a shader variable name of a uniform vec4 type.
 End Rem
 Function UseFloat4( material:TShader, name:String, v1:Float Var, v2:Float Var, v3:Float Var, v4:Float Var )
-	UseFloat4_( material.instance, name.ToCString(), Varptr(v1), Varptr(v2), Varptr(v3), Varptr(v4) )
+	UseFloat4_( material.instance, name, Varptr(v1), Varptr(v2), Varptr(v3), Varptr(v4) )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform int type to an integer value.
 End Rem
 Function SetInteger( material:TShader, name:String, v1:Int )
-	SetInteger_( material.instance, name.ToCString(), v1 )
+	SetInteger_( material.instance, name, v1 )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform ivec2 type to 2 integer values.
 End Rem
 Function SetInteger2( material:TShader, name:String, v1:Int, v2:Int )
-	SetInteger2_( material.instance, name.ToCString(), v1, v2 )
+	SetInteger2_( material.instance, name, v1, v2 )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform ivec3 type to 3 integer values.
 End Rem
 Function SetInteger3( material:TShader, name:String, v1:Int, v2:Int, v3:Int )
-	SetInteger3_( material.instance, name.ToCString(), v1, v2, v3 )
+	SetInteger3_( material.instance, name, v1, v2, v3 )
 End Function
 
 Rem
 bbdoc: Set a shader variable name of a uniform ivec4 type to 4 integer values.
 End Rem
 Function SetInteger4( material:TShader, name:String, v1:Int, v2:Int, v3:Int, v4:Int )
-	SetInteger4_( material.instance, name.ToCString(), v1, v2, v3, v4 )
+	SetInteger4_( material.instance, name, v1, v2, v3, v4 )
 End Function
 
 Rem
 bbdoc: Bind an integer variable to a shader variable name of a uniform int type.
 End Rem
 Function UseInteger( material:TShader, name:String, v1:Int Var )
-	UseInteger_( material.instance, name.ToCString(), Varptr(v1) )
+	UseInteger_( material.instance, name, Varptr(v1) )
 End Function
 
 Rem
 bbdoc: Bind 2 integer variables to a shader variable name of a uniform ivec2 type.
 End Rem
 Function UseInteger2( material:TShader, name:String, v1:Int Var, v2:Int Var )
-	UseInteger2_( material.instance, name.ToCString(), Varptr(v1), Varptr(v2) )
+	UseInteger2_( material.instance, name, Varptr(v1), Varptr(v2) )
 End Function
 
 Rem
 bbdoc: Bind 3 integer variables to a shader variable name of a uniform ivec3 type.
 End Rem
 Function UseInteger3( material:TShader, name:String, v1:Int Var, v2:Int Var, v3:Int Var )
-	UseInteger3_( material.instance, name.ToCString(), Varptr(v1), Varptr(v2), Varptr(v3) )
+	UseInteger3_( material.instance, name, Varptr(v1), Varptr(v2), Varptr(v3) )
 End Function
 
 Rem
 bbdoc: Bind 4 integer variables to a shader variable name of a uniform ivec4 type.
 End Rem
 Function UseInteger4( material:TShader, name:String, v1:Int Var, v2:Int Var, v3:Int Var, v4:Int Var )
-	UseInteger4_( material.instance, name.ToCString(), Varptr(v1), Varptr(v2), Varptr(v3), Varptr(v4) )
+	UseInteger4_( material.instance, name, Varptr(v1), Varptr(v2), Varptr(v3), Varptr(v4) )
 End Function
 
 Rem
 bbdoc: undocumented
 End Rem
 Function UseSurface( material:TShader, name:String, surf:TSurface, vbo:Int )
-	UseSurface_( material.instance, name.ToCString(), surf.instance, vbo )
+	UseSurface_( material.instance, name, surf.instance, vbo )
 End Function
 
 Rem
@@ -1163,14 +1163,14 @@ bbdoc: Send matrix data to a shader variable name of a uniform mat4 type.
 If mode is true it sends camera matrix otherwise projection matrix.
 End Rem
 Function UseMatrix( material:TShader, name:String, Mode:Int )
-	UseMatrix_( material.instance, name.ToCString(), Mode )
+	UseMatrix_( material.instance, name, Mode )
 End Function
 
 Rem
 bbdoc: undocumented
 End Rem
 Function LoadMaterial:TMaterial( filename:String, flags:Int, frame_width:Int, frame_height:Int, first_frame:Int, frame_count:Int )
-	Local instance:Byte Ptr=LoadMaterial_( filename.ToCString(), flags, frame_width, frame_height, first_frame, frame_count )
+	Local instance:Byte Ptr=LoadMaterial_( filename, flags, frame_width, frame_height, first_frame, frame_count )
 	Local mat:TMaterial=globals.mat.NewMaterial( instance )
 	Return mat
 End Function
@@ -1576,7 +1576,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadAnimMesh">Online doc</a>
 End Rem
 Function LoadAnimMesh:TMesh( file:String, parent:TEntity=Null )
-	Local instance:Byte Ptr=LoadAnimMesh_( file.ToCString(), TEntity.EntityExists( parent ) )
+	Local instance:Byte Ptr=LoadAnimMesh_( file, TEntity.EntityExists( parent ) )
 	Local mesh:TMesh=globals.mesh.NewMesh( instance )
 	Return mesh
 End Function
@@ -1585,7 +1585,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadBrush">Online doc</a>
 End Rem
 Function LoadBrush:TBrush( file:String, flags:Int=1, u_scale:Float=1, v_scale:Float=1 )
-	Local instance:Byte Ptr=LoadBrush_( file.ToCString(), flags, u_scale, v_scale )
+	Local instance:Byte Ptr=LoadBrush_( file, flags, u_scale, v_scale )
 	Local brush:TBrush=globals.brush.NewBrush( instance )
 	Return brush
 End Function
@@ -1594,7 +1594,7 @@ Rem
 bbdoc: undocumented
 End Rem
 Function LoadGeosphere:TGeosphere( file:String, parent:TEntity=Null )
-	Local instance:Byte Ptr=LoadGeosphere_( file.ToCString(), TEntity.EntityExists( parent ) )
+	Local instance:Byte Ptr=LoadGeosphere_( file, TEntity.EntityExists( parent ) )
 	Local geo:TGeosphere=globals.geo.NewGeosphere( instance )
 	Return geo
 End Function
@@ -1603,7 +1603,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadMesh">Online doc</a>
 End Rem
 Function LoadMesh:TMesh( file:String, parent:TEntity=Null )
-	Local instance:Byte Ptr=LoadMesh_( file.ToCString(), TEntity.EntityExists( parent ) )
+	Local instance:Byte Ptr=LoadMesh_( file, TEntity.EntityExists( parent ) )
 	Local mesh:TMesh=globals.mesh.NewMesh( instance )
 	Return mesh
 End Function
@@ -1612,7 +1612,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadTerrain">Online doc</a>
 End Rem
 Function LoadTerrain:TTerrain( file:String, parent:TEntity=Null )
-	Local instance:Byte Ptr=LoadTerrain_( file.ToCString(), TEntity.EntityExists( parent ) )
+	Local instance:Byte Ptr=LoadTerrain_( file, TEntity.EntityExists( parent ) )
 	Local terr:TTerrain=globals.terr.NewTerrain( instance )
 	Return terr
 End Function
@@ -1621,7 +1621,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadTexture">Online doc</a>
 End Rem
 Function LoadTexture:TTexture( file:String, flags:Int=1 )
-	Local instance:Byte Ptr=LoadTexture_( file.ToCString(), flags )
+	Local instance:Byte Ptr=LoadTexture_( file, flags )
 	Local tex:TTexture=globals.tex.NewTexture( instance )
 	Return tex
 End Function
@@ -1630,7 +1630,7 @@ Rem
 bbdoc: <a href="http://www.blitzbasic.com/b3ddocs/command.php?name=LoadSprite">Online doc</a>
 End Rem
 Function LoadSprite:TSprite( tex_file:String, tex_flag:Int=1, parent:TEntity=Null )
-	Local instance:Byte Ptr=LoadSprite_( tex_file.ToCString(), tex_flag, TEntity.EntityExists( parent ) )
+	Local instance:Byte Ptr=LoadSprite_( tex_file, tex_flag, TEntity.EntityExists( parent ) )
 	Local sprite:TSprite=globals.sprite.NewSprite( instance )
 	Return sprite
 End Function
@@ -1785,14 +1785,14 @@ Rem
 bbdoc: Load a texture for 2D texture sampling.
 End Rem
 Function ShaderTexture( material:TShader, tex:TTexture, name:String, index:Int=0 )
-	ShaderTexture_( material.instance, tex.instance, name.ToCString(), index )
+	ShaderTexture_( material.instance, tex.instance, name, index )
 End Function
 
 Rem
 bbdoc: Load a texture for 3D texture sampling.
 End Rem
 Function ShaderMaterial( material:TShader, tex:TMaterial, name:String, index:Int=0 )
-	ShaderMaterial_( material.instance, tex.instance, name.ToCString(), index )
+	ShaderMaterial_( material.instance, tex.instance, name, index )
 End Function
 
 Rem

+ 34 - 34
openb3d.mod/openb3dlib.bmx

@@ -142,7 +142,7 @@ Extern
 	Function EntityYaw_:Float( ent:Byte Ptr, glob:Int )="EntityYaw"
 	Function EntityZ_:Float( ent:Byte Ptr, glob:Int )="EntityZ"
 	Function ExtractAnimSeq_:Int( ent:Byte Ptr, first_frame:Int, last_frame:Int, seq:Int )="ExtractAnimSeq"
-	Function FindChild_:Byte Ptr( ent:Byte Ptr, child_name:Byte Ptr )="FindChild"
+	Function FindChild_:Byte Ptr( ent:Byte Ptr, child_name$z )="FindChild"
 	Function FindSurface_:Byte Ptr( mesh:Byte Ptr, brush:Byte Ptr )="FindSurface"
 	Function FitMesh_( mesh:Byte Ptr, x:Float, y:Float, z:Float, width:Float, height:Float, depth:Float, uniform:Int )="FitMesh"
 	Function FlipMesh_( mesh:Byte Ptr )="FlipMesh"
@@ -168,14 +168,14 @@ Extern
 	Function LightConeAngles_( light:Byte Ptr, inner_ang:Float, outer_ang:Float )="LightConeAngles"
 	Function LightRange_( light:Byte Ptr, Range:Float )="LightRange"
 	Function LinePick_:Byte Ptr( x:Float, y:Float, z:Float, dx:Float, dy:Float, dz:Float, radius:Float )="LinePick"
-	Function LoadAnimMesh_:Byte Ptr( file:Byte Ptr, parent:Byte Ptr )="LoadAnimMesh"
-	Function LoadAnimTexture_:Byte Ptr( file:Byte Ptr, flags:Int, frame_width:Int, frame_height:Int, first_frame:Int, frame_count:Int )="LoadAnimTexture"
-	Function LoadBrush_:Byte Ptr( file:Byte Ptr, flags:Int, u_scale:Float, v_scale:Float )="LoadBrush"
-	Function LoadGeosphere_:Byte Ptr( file:Byte Ptr, parent:Byte Ptr )="LoadGeosphere"
-	Function LoadMesh_:Byte Ptr( file:Byte Ptr, parent:Byte Ptr )="LoadMesh"
-	Function LoadTerrain_:Byte Ptr( file:Byte Ptr, parent:Byte Ptr )="LoadTerrain"
-	Function LoadTexture_:Byte Ptr( file:Byte Ptr, flags:Int )="LoadTexture"
-	Function LoadSprite_:Byte Ptr( tex_file:Byte Ptr, tex_flag:Int, parent:Byte Ptr )="LoadSprite"
+	Function LoadAnimMesh_:Byte Ptr( file$z, parent:Byte Ptr )="LoadAnimMesh"
+	Function LoadAnimTexture_:Byte Ptr( file$z, flags:Int, frame_width:Int, frame_height:Int, first_frame:Int, frame_count:Int )="LoadAnimTexture"
+	Function LoadBrush_:Byte Ptr( file$z, flags:Int, u_scale:Float, v_scale:Float )="LoadBrush"
+	Function LoadGeosphere_:Byte Ptr( file$z, parent:Byte Ptr )="LoadGeosphere"
+	Function LoadMesh_:Byte Ptr( file$z, parent:Byte Ptr )="LoadMesh"
+	Function LoadTerrain_:Byte Ptr( file$z, parent:Byte Ptr )="LoadTerrain"
+	Function LoadTexture_:Byte Ptr( file$z, flags:Int )="LoadTexture"
+	Function LoadSprite_:Byte Ptr( tex_file$z, tex_flag:Int, parent:Byte Ptr )="LoadSprite"
 	Function MeshCSG_:Byte Ptr( m1:Byte Ptr, m2:Byte Ptr, method_no:Int )="MeshCSG"
 	Function MeshDepth_:Float( mesh:Byte Ptr )="MeshDepth"
 	Function MeshesIntersect_:Int( mesh1:Byte Ptr, mesh2:Byte Ptr )="MeshesIntersect"
@@ -184,7 +184,7 @@ Extern
 	Function ModifyGeosphere_( geo:Byte Ptr, x:Int, z:Int, new_height:Float )="ModifyGeosphere"
 	Function ModifyTerrain_( terr:Byte Ptr, x:Int, z:Int, new_height:Float )="ModifyTerrain"
 	Function MoveEntity_( ent:Byte Ptr, x:Float, y:Float, z:Float )="MoveEntity"
-	Function NameEntity_( ent:Byte Ptr, name:Byte Ptr )="NameEntity"
+	Function NameEntity_( ent:Byte Ptr, name$z )="NameEntity"
 	Function PaintEntity_( ent:Byte Ptr, brush:Byte Ptr )="PaintEntity"
 	Function PaintMesh_( mesh:Byte Ptr, brush:Byte Ptr )="PaintMesh"
 	Function PaintSurface_( surf:Byte Ptr, brush:Byte Ptr )="PaintSurface"
@@ -234,7 +234,7 @@ Extern
 	Function TextureBlend_( tex:Byte Ptr, blend:Int )="TextureBlend"
 	Function TextureCoords_( tex:Byte Ptr, coords:Int )="TextureCoords"
 	Function TextureHeight_:Int( tex:Byte Ptr )="TextureHeight"
-	Function TextureFilter_( match_text:Byte Ptr, flags:Int )="TextureFilter"
+	Function TextureFilter_( match_text$z, flags:Int )="TextureFilter"
 	Function TextureName_:Byte Ptr( tex:Byte Ptr )="TextureName"
 	Function TextureWidth_:Int( tex:Byte Ptr )="TextureWidth"
 	Function TFormedX_:Float()="TFormedX"
@@ -275,32 +275,32 @@ Extern
 	Function EntityScaleX_:Float( ent:Byte Ptr, glob:Int )="EntityScaleX"
 	Function EntityScaleY_:Float( ent:Byte Ptr, glob:Int )="EntityScaleY"
 	Function EntityScaleZ_:Float( ent:Byte Ptr, glob:Int )="EntityScaleZ"
-	Function LoadShader_:Byte Ptr( ShaderName:Byte Ptr, VshaderFileName:Byte Ptr, FshaderFileName:Byte Ptr )="LoadShader"
-	Function CreateShader_:Byte Ptr( ShaderName:Byte Ptr, VshaderString:Byte Ptr, FshaderString:Byte Ptr )="CreateShader"
+	Function LoadShader_:Byte Ptr( ShaderName$z, VshaderFileName$z, FshaderFileName$z )="LoadShader"
+	Function CreateShader_:Byte Ptr( ShaderName$z, VshaderString$z, FshaderString$z )="CreateShader"
 	Function ShadeSurface_( surf:Byte Ptr, material:Byte Ptr )="ShadeSurface"
 	Function ShadeMesh_( mesh:Byte Ptr, material:Byte Ptr )="ShadeMesh"
 	Function ShadeEntity_( ent:Byte Ptr, material:Byte Ptr )="ShadeEntity"
-	Function ShaderTexture_( material:Byte Ptr, tex:Byte Ptr, name:Byte Ptr, index:Int )="ShaderTexture"
-	Function SetFloat_( material:Byte Ptr, name:Byte Ptr, v1:Float )="SetFloat"
-	Function SetFloat2_( material:Byte Ptr, name:Byte Ptr, v1:Float, v2:Float )="SetFloat2"
-	Function SetFloat3_( material:Byte Ptr, name:Byte Ptr, v1:Float, v2:Float, v3:Float )="SetFloat3"
-	Function SetFloat4_( material:Byte Ptr, name:Byte Ptr, v1:Float, v2:Float, v3:Float, v4:Float )="SetFloat4"
-	Function UseFloat_( material:Byte Ptr, name:Byte Ptr, v1:Float Ptr )="UseFloat"
-	Function UseFloat2_( material:Byte Ptr, name:Byte Ptr, v1:Float Ptr, v2:Float Ptr )="UseFloat2"
-	Function UseFloat3_( material:Byte Ptr, name:Byte Ptr, v1:Float Ptr, v2:Float Ptr, v3:Float Ptr )="UseFloat3"
-	Function UseFloat4_( material:Byte Ptr, name:Byte Ptr, v1:Float Ptr, v2:Float Ptr, v3:Float Ptr, v4:Float Ptr )="UseFloat4"
-	Function SetInteger_( material:Byte Ptr, name:Byte Ptr, v1:Int )="SetInteger"
-	Function SetInteger2_( material:Byte Ptr, name:Byte Ptr, v1:Int, v2:Int )="SetInteger2"
-	Function SetInteger3_( material:Byte Ptr, name:Byte Ptr, v1:Int, v2:Int, v3:Int )="SetInteger3"
-	Function SetInteger4_( material:Byte Ptr, name:Byte Ptr, v1:Int, v2:Int, v3:Int, v4:Int )="SetInteger4"
-	Function UseInteger_( material:Byte Ptr, name:Byte Ptr, v1:Int Ptr )="UseInteger"
-	Function UseInteger2_( material:Byte Ptr, name:Byte Ptr, v1:Int Ptr, v2:Int Ptr )="UseInteger2"
-	Function UseInteger3_( material:Byte Ptr, name:Byte Ptr, v1:Int Ptr, v2:Int Ptr, v3:Int Ptr )="UseInteger3"
-	Function UseInteger4_( material:Byte Ptr, name:Byte Ptr, v1:Int Ptr, v2:Int Ptr, v3:Int Ptr, v4:Int Ptr )="UseInteger4"
-	Function UseSurface_( material:Byte Ptr, name:Byte Ptr, surf:Byte Ptr, vbo:Int )="UseSurface"
-	Function UseMatrix_( material:Byte Ptr, name:Byte Ptr, Mode:Int )="UseMatrix"
-	Function LoadMaterial_:Byte Ptr( filename:Byte Ptr, flags:Int, frame_width:Int, frame_height:Int, first_frame:Int, frame_count:Int )="LoadMaterial"
-	Function ShaderMaterial_( material:Byte Ptr, tex:Byte Ptr, name:Byte Ptr, index:Int )="ShaderMaterial"
+	Function ShaderTexture_( material:Byte Ptr, tex:Byte Ptr, name$z, index:Int )="ShaderTexture"
+	Function SetFloat_( material:Byte Ptr, name$z, v1:Float )="SetFloat"
+	Function SetFloat2_( material:Byte Ptr, name$z, v1:Float, v2:Float )="SetFloat2"
+	Function SetFloat3_( material:Byte Ptr, name$z, v1:Float, v2:Float, v3:Float )="SetFloat3"
+	Function SetFloat4_( material:Byte Ptr, name$z, v1:Float, v2:Float, v3:Float, v4:Float )="SetFloat4"
+	Function UseFloat_( material:Byte Ptr, name$z, v1:Float Ptr )="UseFloat"
+	Function UseFloat2_( material:Byte Ptr, name$z, v1:Float Ptr, v2:Float Ptr )="UseFloat2"
+	Function UseFloat3_( material:Byte Ptr, name$z, v1:Float Ptr, v2:Float Ptr, v3:Float Ptr )="UseFloat3"
+	Function UseFloat4_( material:Byte Ptr, name$z, v1:Float Ptr, v2:Float Ptr, v3:Float Ptr, v4:Float Ptr )="UseFloat4"
+	Function SetInteger_( material:Byte Ptr, name$z, v1:Int )="SetInteger"
+	Function SetInteger2_( material:Byte Ptr, name$z, v1:Int, v2:Int )="SetInteger2"
+	Function SetInteger3_( material:Byte Ptr, name$z, v1:Int, v2:Int, v3:Int )="SetInteger3"
+	Function SetInteger4_( material:Byte Ptr, name$z, v1:Int, v2:Int, v3:Int, v4:Int )="SetInteger4"
+	Function UseInteger_( material:Byte Ptr, name$z, v1:Int Ptr )="UseInteger"
+	Function UseInteger2_( material:Byte Ptr, name$z, v1:Int Ptr, v2:Int Ptr )="UseInteger2"
+	Function UseInteger3_( material:Byte Ptr, name$z, v1:Int Ptr, v2:Int Ptr, v3:Int Ptr )="UseInteger3"
+	Function UseInteger4_( material:Byte Ptr, name$z, v1:Int Ptr, v2:Int Ptr, v3:Int Ptr, v4:Int Ptr )="UseInteger4"
+	Function UseSurface_( material:Byte Ptr, name$z, surf:Byte Ptr, vbo:Int )="UseSurface"
+	Function UseMatrix_( material:Byte Ptr, name$z, Mode:Int )="UseMatrix"
+	Function LoadMaterial_:Byte Ptr( filename$z, flags:Int, frame_width:Int, frame_height:Int, first_frame:Int, frame_count:Int )="LoadMaterial"
+	Function ShaderMaterial_( material:Byte Ptr, tex:Byte Ptr, name$z, index:Int )="ShaderMaterial"
 	Function CreateOcTree_:Byte Ptr( w:Float, h:Float, d:Float, parent_ent:Byte Ptr )="CreateOcTree"
 	Function OctreeBlock_( octree:Byte Ptr, mesh:Byte Ptr, level:Int, X:Float, Y:Float, Z:Float, Near:Float, Far:Float )="OctreeBlock"
 	Function OctreeMesh_( octree:Byte Ptr, mesh:Byte Ptr, level:Int, X:Float, Y:Float, Z:Float, Near:Float, Far:Float )="OctreeMesh"