OsSetDynamicTextureDataBlendFace
From OpenSimulator
(Difference between revisions)
(bold) |
|||
(12 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | {{osslfunc | + | {{osslfunc |
− | threat_level = VeryLow | + | |threat_level=VeryLow |
− | | | + | |permissions=${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER |
− | function_syntax = | + | |delay=0 |
− | + | |function_syntax=string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams, integer blend, integer disp, integer timer, integer alpha, integer face) | |
− | + | |ossl_example=<source lang="lsl"> | |
− | + | ||
− | + | ||
− | + | ||
− | | | + | |
− | ossl_example = <source lang="lsl"> | + | |
// Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim | // Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim | ||
+ | |||
string FontName = "Arial"; | string FontName = "Arial"; | ||
integer FontSize = 128; | integer FontSize = 128; | ||
Line 27: | Line 23: | ||
commandList = osSetFontSize(commandList, FontSize); | commandList = osSetFontSize(commandList, FontSize); | ||
commandList = osDrawText(commandList, text); | commandList = osDrawText(commandList, text); | ||
− | + | osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256", FALSE, 2, 0, 255, face); | |
− | osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256", | + | |
− | + | ||
} | } | ||
} | } | ||
Line 42: | Line 36: | ||
} | } | ||
}</source> | }</source> | ||
− | + | ''' With transparency: ''' | |
− | + | <source lang="lsl"> | |
+ | // Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim with transparency | ||
+ | |||
+ | string FontName = "Arial"; | ||
+ | integer FontSize = 128; | ||
+ | |||
+ | NumberEachFace() | ||
+ | { | ||
+ | integer face = llGetNumberOfSides(); | ||
+ | |||
+ | while (face--) | ||
+ | { | ||
+ | string text = (string)face; | ||
+ | vector size = osGetDrawStringSize("vector", text, FontName, FontSize); | ||
+ | integer xpos = (256 - (integer)size.x) >> 1; | ||
+ | integer ypos = (256 - (integer)size.y) >> 1; | ||
+ | |||
+ | string commandList = ""; | ||
+ | commandList = osMovePen(commandList, xpos, ypos); | ||
+ | commandList = osSetFontName(commandList, FontName); | ||
+ | commandList = osSetFontSize(commandList, FontSize); | ||
+ | commandList = osDrawText(commandList, text); | ||
+ | osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256,Alpha:0", FALSE, 2, 0, 255, face); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | default { | ||
+ | state_entry() { | ||
+ | NumberEachFace(); | ||
+ | } | ||
+ | changed(integer change) { | ||
+ | if (change & CHANGED_SHAPE) | ||
+ | NumberEachFace(); | ||
+ | } | ||
+ | }</source> | ||
+ | ''' With blending: ''' | ||
+ | <source lang="lsl"> | ||
+ | // Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim with blending | ||
+ | |||
+ | string FontName = "Arial"; | ||
+ | integer FontSize = 128; | ||
+ | |||
+ | NumberEachFace() | ||
+ | { | ||
+ | integer face = llGetNumberOfSides(); | ||
+ | |||
+ | while (face--) | ||
+ | { | ||
+ | llSetTexture(TEXTURE_PLYWOOD, face); | ||
+ | string text = (string)face; | ||
+ | vector size = osGetDrawStringSize("vector", text, FontName, FontSize); | ||
+ | integer xpos = (256 - (integer)size.x) >> 1; | ||
+ | integer ypos = (256 - (integer)size.y) >> 1; | ||
+ | |||
+ | string commandList = ""; | ||
+ | commandList = osMovePen(commandList, xpos, ypos); | ||
+ | commandList = osSetFontName(commandList, FontName); | ||
+ | commandList = osSetFontSize(commandList, FontSize); | ||
+ | commandList = osDrawText(commandList, text); | ||
+ | osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256,Alpha:0", TRUE, 2, 0, 128, face); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | default { | ||
+ | state_entry() { | ||
+ | NumberEachFace(); | ||
+ | } | ||
+ | changed(integer change) { | ||
+ | if (change & CHANGED_SHAPE) | ||
+ | NumberEachFace(); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |description=Returns UUID of the generated texture. Intended to be used with subsequent calls to osSetDynamicTextureXXXX functions in order to modify the texture. | ||
'''NOT IMPLEMENTED YET;''' the current implementation always returns a string with NULL_KEY. | '''NOT IMPLEMENTED YET;''' the current implementation always returns a string with NULL_KEY. | ||
Line 49: | Line 116: | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Renders a dynamically created texture on the face of a prim containing the script, possibly blending it with the texture that is already set for the face. | Renders a dynamically created texture on the face of a prim containing the script, possibly blending it with the texture that is already set for the face. | ||
{| width="100%" style="border: thin solid black" | {| width="100%" style="border: thin solid black" | ||
− | | colspan="3" align="center" style=background:orange | Parameters | + | | colspan="3" align="center" style=background:orange | '''Parameters''' |
|- | |- | ||
|'''Name''' | |'''Name''' | ||
Line 75: | Line 131: | ||
|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. See [[Drawing commands]] for details | + | * vector - the '''data''' parameter contains a list of drawing instructions. See [[Drawing commands]] for details |
| | | | ||
|- | |- | ||
Line 85: | Line 141: | ||
|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 commas. 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:256) | + | * width - width of the dynamic texture in pixels (example: width:256) |
− | *height - height of the dynamic texture in pixels (example: height: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) | + | * 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) | + | * bgcolour - specifies the background color of the texture (example: bgcolour: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 specifing aplha component |
| | | | ||
|- | |- | ||
Line 120: | Line 176: | ||
The '''timer''' parameter is not implemented. The value passed will be ignored. Instead, you can use a timer event and recall the function to get the same effect. | The '''timer''' parameter is not implemented. The value passed will be ignored. Instead, you can use a timer event and recall the function to get the same effect. | ||
− | [[Category: | + | |
+ | [[Category:OSSL pages in need of parameters template]] |
Revision as of 11:58, 17 March 2019
string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams, integer blend, integer disp, integer timer, integer alpha, integer face)
| |
Returns UUID of the generated texture. Intended to be used with subsequent calls to osSetDynamicTextureXXXX functions in order to modify the texture.
NOT IMPLEMENTED YET; the current implementation always returns a string with NULL_KEY. | |
Threat Level | VeryLow |
Permissions | ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER |
Extra Delay | 0 seconds |
Example(s) | |
// Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim string FontName = "Arial"; integer FontSize = 128; NumberEachFace() { integer face = llGetNumberOfSides(); while (face--) { string text = (string)face; vector size = osGetDrawStringSize("vector", text, FontName, FontSize); integer xpos = (256 - (integer)size.x) >> 1; integer ypos = (256 - (integer)size.y) >> 1; string commandList = ""; commandList = osMovePen(commandList, xpos, ypos); commandList = osSetFontName(commandList, FontName); commandList = osSetFontSize(commandList, FontSize); commandList = osDrawText(commandList, text); osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256", FALSE, 2, 0, 255, face); } } default { state_entry() { NumberEachFace(); } changed(integer change) { if (change & CHANGED_SHAPE) NumberEachFace(); } } With transparency: // Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim with transparency string FontName = "Arial"; integer FontSize = 128; NumberEachFace() { integer face = llGetNumberOfSides(); while (face--) { string text = (string)face; vector size = osGetDrawStringSize("vector", text, FontName, FontSize); integer xpos = (256 - (integer)size.x) >> 1; integer ypos = (256 - (integer)size.y) >> 1; string commandList = ""; commandList = osMovePen(commandList, xpos, ypos); commandList = osSetFontName(commandList, FontName); commandList = osSetFontSize(commandList, FontSize); commandList = osDrawText(commandList, text); osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256,Alpha:0", FALSE, 2, 0, 255, face); } } default { state_entry() { NumberEachFace(); } changed(integer change) { if (change & CHANGED_SHAPE) NumberEachFace(); } } With blending: // Example of osSetDynamicTextureDataBlendFace used to put a number on each face of a prim with blending string FontName = "Arial"; integer FontSize = 128; NumberEachFace() { integer face = llGetNumberOfSides(); while (face--) { llSetTexture(TEXTURE_PLYWOOD, face); string text = (string)face; vector size = osGetDrawStringSize("vector", text, FontName, FontSize); integer xpos = (256 - (integer)size.x) >> 1; integer ypos = (256 - (integer)size.y) >> 1; string commandList = ""; commandList = osMovePen(commandList, xpos, ypos); commandList = osSetFontName(commandList, FontName); commandList = osSetFontSize(commandList, FontSize); commandList = osDrawText(commandList, text); osSetDynamicTextureDataBlendFace("", "vector", commandList, "width:256,height:256,Alpha:0", TRUE, 2, 0, 128, face); } } default { state_entry() { NumberEachFace(); } changed(integer change) { if (change & CHANGED_SHAPE) NumberEachFace(); } } |
Renders a dynamically created texture on the face of a prim containing the script, possibly blending it with the texture that is already set for the face.
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 dynasmic texture | NOT IMPLEMENTED YET |
contentType | specifies the type of the data parameter.
The following values are allowed:
|
|
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:
|
|
blend | If true, the newly generated texture is blended with the appropriate existing ones on the prim. | |
disp | Display flags. Value 1-expire deletes the old texture if it is replaced by a newer generated texture (may not currently be implemented). Value 2-temp flags the asset as temporary, which often means that it is not persisted to the database. | |
timer | specify a time interval to update the texture | NOT IMPLEMENTED YET |
alpha | The alpha value of the generated texture. | |
face | The face of the prim on which to put the generated texture. If ALL_SIDES then all sides of the prim are set. |
Notes
The dynamicID parameter is not implemented. The value passed will be ignored.
The timer parameter is not implemented. The value passed will be ignored. Instead, you can use a timer event and recall the function to get the same effect.