ScriptSpot

Forum topic · General Scripting

Button state based on current renderer

By JokerMartini · 2011-05-27

Description

Is there any way to write this more efficiently?
I commented out what I thought would logically make sense and work but it doesn't.

Help would be greatly appreciated.
Thanks


rollout rltest "test"
(
button btnGORender "Go Render" enabled:(classof renderes.production == classof Vray())

on rltest open do
(
curRen = renderers.production -- Render Check
theRenderer = Vray()

if (classof curren == classof theRenderer) do -- Vray Renderer
(
btnGORender.enabled = true
)
)

)
createDialog rltest

--button btnGORender "Go Render" enabled:(classof renderes.production == classof Vray())

Comments (2)

check the class

Anubis · 2011-05-27

I not use VRay so I'll wrote something like this...

button btnGORender "Go Render" enabled:off

on rltest open do
(
	re = renderers.current as string
	btnGORender.enabled = (
		matchPattern re pattern:"v_ray*" or \
		matchPattern re pattern:"VRay*"
	)
)

...but you can test in the Listener what this return:

classOf renderers.current

and then just say something like:

btnGORender.enabled = (classOf renderers.current == XXX)

where XXX is the class of VR renderer.

miauu · 2011-05-27

For RTTAssist iI use this function to check wich is the active renderer:

(
        function ActiveRenderer =
        (
            local renderer = renderers.current
            local rendererClass = classof renderer
            if rendererClass == Default_Scanline_Renderer then
            (
                activeRender = "scanline"
            )
            else
            (   
                if (rendererClass == mental_ray_renderer) then
                (
                    activeRender = "mRay"
                )
                else
                    activeRender = "Unknown Renderer Type"
            )
            print activeRender
            return activeRender
        )
       
        ActiveRenderer()
    )