OsSetDynamicTextureData

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(New page: {{Template:Quicklinks}} Technical Reference -> Terms -> Status Page -> [[OSSL_Implemented| OSSL Implemented Functions...)
 
(29 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Template:Quicklinks}}
+
{{osslfunc
[[Technical Reference | Technical Reference]] -> [[Technical Reference/terms | Terms]] -> [[Status | Status Page]] -> [[OSSL_Implemented| OSSL Implemented Functions]] -> [[Dynamic textures]] -> [[OsSetDynamicTextureData | OsSetDynamicTextureData]]
+
|threat_level=VeryLow
 +
|permissions=${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
 +
|delay=0
 +
|function_syntax=key osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams, integer timer)
 +
|csharp_syntax=string osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams, int timer)
 +
|ossl_example=<source lang="lsl">
 +
// Example of OsSetDynamicTextureData used to render custom drawings on a prim
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        string CommandList = ""; // Storage for our drawing commands
  
 +
        CommandList = osSetPenSize( CommandList, 3 );                // Set the pen width to 3 pixels
 +
        CommandList = osSetPenColor( CommandList, "Red" );          // Set the pen color to red
 +
        CommandList = osMovePen( CommandList, 28, 78 );              // Upper left corner at <28,78>
 +
        CommandList = osDrawFilledRectangle( CommandList, 200, 100 ); // 200 pixels by 100 pixels
  
 +
        // Now draw the rectangle
 +
        osSetDynamicTextureData( "", "vector", CommandList, "width:256,height:256", 0 );
 +
    }
 +
}
 +
</source>
 +
|description=*Renders a dynamically created texture on the prim containing the script and returns the UUID of the newly created texture.
 +
*If you use this feature, you have to turn on any cache. If not, you'll see complete white texture. Flotsam cache performs better than cenome cache(default).
 +
|
 +
}}
  
'''ThreatLevel:'''VeryLow
 
  
  
LSL: '''[[string]]  osSetDynamicTextureData( [[string]] dynamicID, [[integer]] contentType, [[integer]] data, [[string]] extraParams,[[integer]] timer)'''<br />
 
C#:  '''[[string]]  osSetDynamicTextureData( [[string]] dynamicID, [[int]] contentType, [[int]] data, [[string]] extraParams, [[int]] timer)'''
 
  
===Description===
+
The script [[OsSetDynamicdata example1|osTextBoard.lsl]] from the standard OpenSimulator Library also uses this function.
Renders a dynamic texture on the prim containing the script and returns the UUID of the created texture.
+
  
===Parameters===
+
{| style="border: thin solid black"
 
+
| colspan="3" align="center" style=background:orange | '''Parameters'''
{| border="1"
+
|-
 
|'''Name'''
 
|'''Name'''
 
|'''Description'''
 
|'''Description'''
Line 21: Line 41:
 
|-
 
|-
 
|'''dynamicID'''
 
|'''dynamicID'''
|UUID of already existing dynamic texture. Intended to accept UUID from a previous call to OsSetDynamicTextureXXXX functions.
+
|UUID of already existing dynamic texture. Intended to accept UUID from a previous call to OsSetDynamicTextureXXXX functions in order to provide modification of an existing dynamic texture
 
| NOT IMPLEMENTED YET
 
| NOT IMPLEMENTED YET
 
|-
 
|-
Line 27: Line 47:
 
|specifies the type of the '''data''' parameter.  
 
|specifies the type of the '''data''' parameter.  
 
The following values are allowed:
 
The following values are allowed:
*vector - the '''data''' parameter contains a list of drawing instructions.
+
* vector - the '''data''' parameter contains a list of drawing instructions. See [[Drawing commands]] for details
*image  -
+
 
|
 
|
 
|-
 
|-
 
|'''data'''
 
|'''data'''
|Contains a series of drawing instructions...
+
|Contains a series of drawing instructions. See [[Drawing commands]] for details
 
|
 
|
 
|-
 
|-
 
|'''extraParams'''
 
|'''extraParams'''
 
|additional optional parameters in the following format: [param]:[value],[param]:[value]
 
|additional optional parameters in the following format: [param]:[value],[param]:[value]
Multiple parameters are separated by comas. The following ones are supported:
+
Multiple parameters are separated by commas. The following ones are supported:
*width - width of the dynamic texture in pixels (example:  width:200)
+
* width - width of the dynamic texture in pixels (example:  width:256)
*height - height of the dynamic texture in pixels (example:  height:200)
+
* height - height of the dynamic texture in pixels (example:  height:256)
*alpha - alpha (transperancy) component of the dynamic texture. Values are from 0-clear to 255-solid (example: aplha:255)
+
* alpha - alpha (transparency) component of the dynamic texture. Values are from 0-clear to 255-solid, and ''false'' to turn off the alpha layer completely (example: alpha:255)
*bgcolour - specifies the background color of the texture (example:  bgcolour:Red)
+
* bgcolor - specifies the background color of the texture (example:  bgcolor:Red)
*altdatadelim - specifies a delimiter between the draw commands contained in the '''data''' parameter.
+
* altdatadelim - specifies a delimiter between the draw commands contained in the '''data''' parameter.
*setalpha  
+
* setalpha  
*integer value  - any integer value is treated like specifing aplha component
+
* integer value  - any integer value is treated like specifying alpha component
 
|
 
|
 
|-
 
|-
 
|'''timer'''
 
|'''timer'''
|
+
|specify a time interval to update the texture
|
+
|NOT IMPLEMENTED YET
 
|}
 
|}
  
 +
'''Notes:'''
  
 +
# The '''dynamicID''' parameter is not yet implemented. The value passed will be ignored.
 +
# The '''timer''' parameter is not yet implemented. The value passed will be ignored. Instead, you can use a timer event and recall the function to get the same effect.
  
===Notes===
+
'''See Also'''
 
+
* [[osSetDynamicTextureURL]]
The '''dynamicID''' parameter is not implemented. The value passed will be ignored.
+
* [[osSetDynamicTextureURLBlend]]
 
+
* [[osSetDynamicTextureURLBlendFace]]
 
+
* [[osSetDynamicTextureDataBlend]]
===Examples===
+
* [[osSetDynamicTextureDataBlendFace]]
<source lang="lsl">
+
// Example of OsSetDynamicTextureData used to render custom drawings on a prim
+
default
+
{
+
    state_entry()
+
    {
+
        string CommandList = ""; // Storage for our drawing commands
+
 
+
        CommandList = osSetPenSize( CommandList, 3 );                // Set the pen width to 3 pixels
+
        CommandList = osSetPenColour( CommandList, "Red" );          // Set the pen color to red
+
        CommandList = osMovePen( CommandList, 28, 78 );              // Upper left corner at <28,78>
+
        CommandList = osDrawFilledRectangle( CommandList, 200, 100 ); // 200 pixels by 100 pixels
+
 
+
        // Now draw the rectangle
+
        osSetDynamicTextureData( "", "vector", CommandList, "width:256,height:256", 0 );
+
    }
+
}
+
</source>
+
 
+
===See Also===
+
  
*[[osSetDynamicTextureURL]]
+
[[Category:OSSL pages in need of parameters template]]
*[[osSetDynamicTextureURLBlend]]
+
*[[osSetDynamicTextureURLBlendFace]]
+
*[[osSetDynamicTextureDataBlend]]
+
*[[osSetDynamicTextureDataBlendFace]]
+

Revision as of 13:31, 14 November 2018

key osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams, integer timer)
C#: string osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams, int timer)
  • Renders a dynamically created texture on the prim containing the script and returns the UUID of the newly created texture.
  • If you use this feature, you have to turn on any cache. If not, you'll see complete white texture. Flotsam cache performs better than cenome cache(default).
Threat Level VeryLow
Permissions ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
Extra Delay 0 seconds
Example(s)
// Example of OsSetDynamicTextureData used to render custom drawings on a prim
default
{
    state_entry()
    {
        string CommandList = ""; // Storage for our drawing commands
 
        CommandList = osSetPenSize( CommandList, 3 );                 // Set the pen width to 3 pixels
        CommandList = osSetPenColor( CommandList, "Red" );           // Set the pen color to red
        CommandList = osMovePen( CommandList, 28, 78 );               // Upper left corner at <28,78>
        CommandList = osDrawFilledRectangle( CommandList, 200, 100 ); // 200 pixels by 100 pixels
 
        // Now draw the rectangle
        osSetDynamicTextureData( "", "vector", CommandList, "width:256,height:256", 0 );
    }
}




The script osTextBoard.lsl from the standard OpenSimulator Library also uses this function.

Parameters
Name Description Remarks
dynamicID UUID of already existing dynamic texture. Intended to accept UUID from a previous call to OsSetDynamicTextureXXXX functions in order to provide modification of an existing dynamic texture NOT IMPLEMENTED YET
contentType specifies the type of the data parameter.

The following values are allowed:

  • vector - the data parameter contains a list of drawing instructions. See Drawing commands for details
data Contains a series of drawing instructions. See Drawing commands for details
extraParams additional optional parameters in the following format: [param]:[value],[param]:[value]

Multiple parameters are separated by commas. The following ones are supported:

  • width - width of the dynamic texture in pixels (example: width:256)
  • height - height of the dynamic texture in pixels (example: height:256)
  • alpha - alpha (transparency) component of the dynamic texture. Values are from 0-clear to 255-solid, and false to turn off the alpha layer completely (example: alpha:255)
  • bgcolor - specifies the background color of the texture (example: bgcolor:Red)
  • altdatadelim - specifies a delimiter between the draw commands contained in the data parameter.
  • setalpha
  • integer value - any integer value is treated like specifying alpha component
timer specify a time interval to update the texture NOT IMPLEMENTED YET

Notes:

  1. The dynamicID parameter is not yet implemented. The value passed will be ignored.
  2. The timer parameter is not yet implemented. The value passed will be ignored. Instead, you can use a timer event and recall the function to get the same effect.

See Also

Personal tools
General
About This Wiki