Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/python_api/rst/bge.logic.rst')
-rw-r--r--doc/python_api/rst/bge.logic.rst949
1 files changed, 949 insertions, 0 deletions
diff --git a/doc/python_api/rst/bge.logic.rst b/doc/python_api/rst/bge.logic.rst
new file mode 100644
index 00000000000..798491b4710
--- /dev/null
+++ b/doc/python_api/rst/bge.logic.rst
@@ -0,0 +1,949 @@
+
+Game Logic (bge.logic)
+======================
+
+*****
+Intro
+*****
+
+Module to access logic functions, imported automatically into the python controllers namespace.
+
+.. module:: bge.logic
+
+.. code-block:: python
+
+ # To get the controller thats running this python script:
+ cont = bge.logic.getCurrentController() # bge.logic is automatically imported
+
+ # To get the game object this controller is on:
+ obj = cont.owner
+
+:class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`~bge.types.KX_LightObject` methods are available depending on the type of object
+
+.. code-block:: python
+
+ # To get a sensor linked to this controller.
+ # "sensorname" is the name of the sensor as defined in the Blender interface.
+ # +---------------------+ +--------+
+ # | Sensor "sensorname" +--+ Python +
+ # +---------------------+ +--------+
+ sens = cont.sensors["sensorname"]
+
+ # To get a sequence of all sensors:
+ sensors = co.sensors
+
+See the sensor's reference for available methods:
+
+.. hlist::
+ :columns: 3
+
+ * :class:`~bge.types.KX_MouseFocusSensor`
+ * :class:`~bge.types.KX_NearSensor`
+ * :class:`~bge.types.KX_NetworkMessageSensor`
+ * :class:`~bge.types.KX_RadarSensor`
+ * :class:`~bge.types.KX_RaySensor`
+ * :class:`~bge.types.KX_TouchSensor`
+ * :class:`~bge.types.SCA_DelaySensor`
+ * :class:`~bge.types.SCA_JoystickSensor`
+ * :class:`~bge.types.SCA_KeyboardSensor`
+ * :class:`~bge.types.SCA_MouseSensor`
+ * :class:`~bge.types.SCA_PropertySensor`
+ * :class:`~bge.types.SCA_RandomSensor`
+
+You can also access actuators linked to the controller
+
+.. code-block:: python
+
+ # To get an actuator attached to the controller:
+ # +--------+ +-------------------------+
+ # + Python +--+ Actuator "actuatorname" |
+ # +--------+ +-------------------------+
+ actuator = co.actuators["actuatorname"]
+
+ # Activate an actuator
+ controller.activate(actuator)
+
+See the actuator's reference for available methods
+
+.. hlist::
+ :columns: 3
+
+ * :class:`~bge.types.BL_ActionActuator`
+ * :class:`~bge.types.BL_ShapeActionActuator`
+ * :class:`~bge.types.KX_CameraActuator`
+ * :class:`~bge.types.KX_ConstraintActuator`
+ * :class:`~bge.types.KX_GameActuator`
+ * :class:`~bge.types.KX_IpoActuator`
+ * :class:`~bge.types.KX_NetworkMessageActuator`
+ * :class:`~bge.types.KX_ObjectActuator`
+ * :class:`~bge.types.KX_ParentActuator`
+ * :class:`~bge.types.KX_SCA_AddObjectActuator`
+ * :class:`~bge.types.KX_SCA_DynamicActuator`
+ * :class:`~bge.types.KX_SCA_EndObjectActuator`
+ * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
+ * :class:`~bge.types.KX_SceneActuator`
+ * :class:`~bge.types.KX_SoundActuator`
+ * :class:`~bge.types.KX_StateActuator`
+ * :class:`~bge.types.KX_TrackToActuator`
+ * :class:`~bge.types.KX_VisibilityActuator`
+ * :class:`~bge.types.SCA_2DFilterActuator`
+ * :class:`~bge.types.SCA_PropertyActuator`
+ * :class:`~bge.types.SCA_RandomActuator`
+
+Most logic brick's methods are accessors for the properties available in the logic buttons.
+Consult the logic bricks documentation for more information on how each logic brick works.
+
+There are also methods to access the current :class:`bge.types.KX_Scene`
+
+.. code-block:: python
+
+ # Get the current scene
+ scene = bge.logic.getCurrentScene()
+
+ # Get the current camera
+ cam = scene.active_camera
+
+Matricies as used by the game engine are **row major**
+``matrix[row][col] = float``
+
+:class:`bge.types.KX_Camera` has some examples using matricies.
+
+*********
+Variables
+*********
+
+.. data:: globalDict
+
+ A dictionary that is saved between loading blend files so you can use it to store inventory and other variables you want to store between scenes and blend files.
+ It can also be written to a file and loaded later on with the game load/save actuators.
+
+ .. note:: only python built in types such as int/string/bool/float/tuples/lists can be saved, GameObjects, Actuators etc will not work as expected.
+
+.. data:: keyboard
+
+ The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
+
+.. data:: mouse
+
+ The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
+
+*****************
+General functions
+*****************
+
+.. function:: getCurrentController()
+
+ Gets the Python controller associated with this Python script.
+
+ :rtype: :class:`bge.types.SCA_PythonController`
+
+.. function:: getCurrentScene()
+
+ Gets the current Scene.
+
+ :rtype: :class:`bge.types.KX_Scene`
+
+.. function:: getSceneList()
+
+ Gets a list of the current scenes loaded in the game engine.
+
+ :rtype: list of :class:`bge.types.KX_Scene`
+
+ .. note:: Scenes in your blend file that have not been converted wont be in this list. This list will only contain scenes such as overlays scenes.
+
+.. function:: loadGlobalDict()
+
+ Loads bge.logic.globalDict from a file.
+
+.. function:: saveGlobalDict()
+
+ Saves bge.logic.globalDict to a file.
+
+.. function:: startGame(blend)
+
+ Loads the blend file.
+
+ :arg blend: The name of the blend file
+ :type blend: string
+
+.. function:: endGame()
+
+ Ends the current game.
+
+.. function:: restartGame()
+
+ Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
+
+.. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
+
+ Converts the all of the datablocks of the given type from the given blend.
+
+ :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
+ :type blend: string
+ :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
+ :type type: string
+ :arg data: Binary data from a blend file (optional)
+ :type data: bytes
+ :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
+ :type load_actions: bool
+ :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
+ :type verbose: bool
+
+.. function:: LibNew(name, type, data)
+
+ Uses existing datablock data and loads in as a new library.
+
+ :arg name: A unique library name used for removal later
+ :type name: string
+ :arg type: The datablock type (currently only "Mesh" is supported)
+ :type type: string
+ :arg data: A list of names of the datablocks to load
+ :type data: list of strings
+
+.. function:: LibFree(name)
+
+ Frees a library, removing all objects and meshes from the currently active scenes.
+
+ :arg name: The name of the library to free (the name used in LibNew)
+ :type name: string
+
+.. function:: LibList()
+
+ Returns a list of currently loaded libraries.
+
+ :rtype: list [str]
+
+.. function:: addScene(name, overlay=1)
+
+ Loads a scene into the game engine.
+
+ .. note::
+
+ This function is not effective immediately, the scene is queued
+ and added on the next logic cycle where it will be available
+ from `getSceneList`
+
+ :arg name: The name of the scene
+ :type name: string
+ :arg overlay: Overlay or underlay (optional)
+ :type overlay: integer
+
+.. function:: sendMessage(subject, body="", to="", message_from="")
+
+ Sends a message to sensors in any active scene.
+
+ :arg subject: The subject of the message
+ :type subject: string
+ :arg body: The body of the message (optional)
+ :type body: string
+ :arg to: The name of the object to send the message to (optional)
+ :type to: string
+ :arg message_from: The name of the object that the message is coming from (optional)
+ :type message_from: string
+
+.. function:: setGravity(gravity)
+
+ Sets the world gravity.
+
+ :type gravity: list [fx, fy, fz]
+
+.. function:: getSpectrum()
+
+ Returns a 512 point list from the sound card.
+ This only works if the fmod sound driver is being used.
+
+ :rtype: list [float], len(getSpectrum()) == 512
+
+.. function:: stopDSP()
+
+ Stops the sound driver using DSP effects.
+
+ Only the fmod sound driver supports this.
+ DSP can be computationally expensive.
+
+.. function:: getMaxLogicFrame()
+
+ Gets the maximum number of logic frames per render frame.
+
+ :return: The maximum number of logic frames per render frame
+ :rtype: integer
+
+.. function:: setMaxLogicFrame(maxlogic)
+
+ Sets the maximum number of logic frames that are executed per render frame.
+ This does not affect the physic system that still runs at full frame rate.
+
+ :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
+ :type maxlogic: integer
+
+.. function:: getMaxPhysicsFrame()
+
+ Gets the maximum number of physics frames per render frame.
+
+ :return: The maximum number of physics frames per render frame
+ :rtype: integer
+
+.. function:: setMaxPhysicsFrame(maxphysics)
+
+ Sets the maximum number of physics timestep that are executed per render frame.
+ Higher value allows physics to keep up with realtime even if graphics slows down the game.
+ Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
+ maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
+
+ :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
+ :type maxphysics: integer
+
+.. function:: getLogicTicRate()
+
+ Gets the logic update frequency.
+
+ :return: The logic frequency in Hz
+ :rtype: float
+
+.. function:: setLogicTicRate(ticrate)
+
+ Sets the logic update frequency.
+
+ The logic update frequency is the number of times logic bricks are executed every second.
+ The default is 60 Hz.
+
+ :arg ticrate: The new logic update frequency (in Hz).
+ :type ticrate: float
+
+.. function:: getPhysicsTicRate()
+
+ Gets the physics update frequency
+
+ :return: The physics update frequency in Hz
+ :rtype: float
+
+ .. warning: Not implimented yet
+
+.. function:: setPhysicsTicRate(ticrate)
+
+ Sets the physics update frequency
+
+ The physics update frequency is the number of times the physics system is executed every second.
+ The default is 60 Hz.
+
+ :arg ticrate: The new update frequency (in Hz).
+ :type ticrate: float
+
+ .. warning: Not implimented yet
+
+*****************
+Utility functions
+*****************
+
+.. function:: expandPath(path)
+
+ Converts a blender internal path into a proper file system path.
+
+ Use / as directory separator in path
+ You can use '//' at the start of the string to define a relative path;
+ Blender replaces that string by the directory of the startup .blend or runtime file
+ to make a full path name (doesn't change during the game, even if you load other .blend).
+ The function also converts the directory separator to the local file system format.
+
+ :arg path: The path string to be converted/expanded.
+ :type path: string
+ :return: The converted string
+ :rtype: string
+
+.. function:: getAverageFrameRate()
+
+ Gets the estimated/average framerate for all the active scenes, not only the current scene.
+
+ :return: The estimated average framerate in frames per second
+ :rtype: float
+
+.. function:: getBlendFileList(path = "//")
+
+ Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
+
+ :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
+ :type path: string
+ :return: A list of filenames, with no directory prefix
+ :rtype: list
+
+.. function:: getRandomFloat()
+
+ Returns a random floating point value in the range [0 - 1)
+
+.. function:: PrintGLInfo()
+
+ Prints GL Extension Info into the console
+
+*********
+Constants
+*********
+
+.. data:: KX_TRUE
+
+ True value used by some modules.
+
+.. data:: KX_FALSE
+
+ False value used by some modules.
+
+=======
+Sensors
+=======
+
+.. _sensor-status:
+
+-------------
+Sensor Status
+-------------
+
+.. data:: KX_SENSOR_INACTIVE
+.. data:: KX_SENSOR_JUST_ACTIVATED
+.. data:: KX_SENSOR_ACTIVE
+.. data:: KX_SENSOR_JUST_DEACTIVATED
+
+.. _logic-property-sensor:
+
+---------------
+Property Sensor
+---------------
+
+.. data:: KX_PROPSENSOR_EQUAL
+
+ Activate when the property is equal to the sensor value.
+
+ :value: 1
+
+.. data:: KX_PROPSENSOR_NOTEQUAL
+
+ Activate when the property is not equal to the sensor value.
+
+ :value: 2
+
+.. data:: KX_PROPSENSOR_INTERVAL
+
+ Activate when the property is between the specified limits.
+
+ :value: 3
+
+.. data:: KX_PROPSENSOR_CHANGED
+
+ Activate when the property changes
+
+ :value: 4
+
+.. data:: KX_PROPSENSOR_EXPRESSION
+
+ Activate when the expression matches
+
+ :value: 5
+
+------------
+Radar Sensor
+------------
+
+See :class:`bge.types.KX_RadarSensor`
+
+.. data:: KX_RADAR_AXIS_POS_X
+.. data:: KX_RADAR_AXIS_POS_Y
+.. data:: KX_RADAR_AXIS_POS_Z
+.. data:: KX_RADAR_AXIS_NEG_X
+.. data:: KX_RADAR_AXIS_NEG_Y
+.. data:: KX_RADAR_AXIS_NEG_Z
+
+----------
+Ray Sensor
+----------
+
+See :class:`bge.types.KX_RaySensor`
+
+.. data:: KX_RAY_AXIS_POS_X
+.. data:: KX_RAY_AXIS_POS_Y
+.. data:: KX_RAY_AXIS_POS_Z
+.. data:: KX_RAY_AXIS_NEG_X
+.. data:: KX_RAY_AXIS_NEG_Y
+.. data:: KX_RAY_AXIS_NEG_Z
+
+
+=========
+Actuators
+=========
+
+.. _action-actuator:
+
+---------------
+Action Actuator
+---------------
+
+See :class:`bge.types.BL_ActionActuator`
+
+.. data:: KX_ACTIONACT_PLAY
+.. data:: KX_ACTIONACT_FLIPPER
+.. data:: KX_ACTIONACT_LOOPSTOP
+.. data:: KX_ACTIONACT_LOOPEND
+.. data:: KX_ACTIONACT_PROPERTY
+
+-------------------
+Constraint Actuator
+-------------------
+
+.. _constraint-actuator-option:
+
+See :class:`bge.types.KX_ConstraintActuator.option`
+
+* Applicable to Distance constraint:
+
+ .. data:: KX_ACT_CONSTRAINT_NORMAL
+
+ Activate alignment to surface
+
+ .. data:: KX_ACT_CONSTRAINT_DISTANCE
+
+ Activate distance control
+
+ .. data:: KX_ACT_CONSTRAINT_LOCAL
+
+ Direction of the ray is along the local axis
+
+* Applicable to Force field constraint:
+
+ .. data:: KX_ACT_CONSTRAINT_DOROTFH
+
+ Force field act on rotation as well
+
+* Applicable to both:
+
+ .. data:: KX_ACT_CONSTRAINT_MATERIAL
+
+ Detect material rather than property
+
+ .. data:: KX_ACT_CONSTRAINT_PERMANENT
+
+ No deactivation if ray does not hit target
+
+.. _constraint-actuator-limit:
+
+See :class:`bge.types.KX_ConstraintActuator.limit`
+
+.. data:: KX_CONSTRAINTACT_LOCX
+
+ Limit X coord.
+
+.. data:: KX_CONSTRAINTACT_LOCY
+
+ Limit Y coord
+
+.. data:: KX_CONSTRAINTACT_LOCZ
+
+ Limit Z coord
+
+.. data:: KX_CONSTRAINTACT_ROTX
+
+ Limit X rotation
+
+.. data:: KX_CONSTRAINTACT_ROTY
+
+ Limit Y rotation
+
+.. data:: KX_CONSTRAINTACT_ROTZ
+
+ Limit Z rotation
+
+.. data:: KX_CONSTRAINTACT_DIRNX
+
+ Set distance along negative X axis
+
+.. data:: KX_CONSTRAINTACT_DIRNY
+
+ Set distance along negative Y axis
+
+.. data:: KX_CONSTRAINTACT_DIRNZ
+
+ Set distance along negative Z axis
+
+.. data:: KX_CONSTRAINTACT_DIRPX
+
+ Set distance along positive X axis
+
+.. data:: KX_CONSTRAINTACT_DIRPY
+
+ Set distance along positive Y axis
+
+.. data:: KX_CONSTRAINTACT_DIRPZ
+
+ Set distance along positive Z axis
+
+.. data:: KX_CONSTRAINTACT_ORIX
+
+ Set orientation of X axis
+
+.. data:: KX_CONSTRAINTACT_ORIY
+
+ Set orientation of Y axis
+
+.. data:: KX_CONSTRAINTACT_ORIZ
+
+ Set orientation of Z axis
+
+.. data:: KX_ACT_CONSTRAINT_FHNX
+
+ Set force field along negative X axis
+
+.. data:: KX_ACT_CONSTRAINT_FHNY
+
+ Set force field along negative Y axis
+
+.. data:: KX_ACT_CONSTRAINT_FHNZ
+
+ Set force field along negative Z axis
+
+.. data:: KX_ACT_CONSTRAINT_FHPX
+
+ Set force field along positive X axis
+
+.. data:: KX_ACT_CONSTRAINT_FHPY
+
+ Set force field along positive Y axis
+
+.. data:: KX_ACT_CONSTRAINT_FHPZ
+
+ Set force field along positive Z axis
+
+----------------
+Dynamic Actuator
+----------------
+
+See :class:`bge.types.KX_SCA_DynamicActuator`
+
+.. data:: KX_DYN_RESTORE_DYNAMICS
+.. data:: KX_DYN_DISABLE_DYNAMICS
+.. data:: KX_DYN_ENABLE_RIGID_BODY
+.. data:: KX_DYN_DISABLE_RIGID_BODY
+.. data:: KX_DYN_SET_MASS
+
+.. _game-actuator:
+
+-------------
+Game Actuator
+-------------
+
+See :class:`bge.types.KX_GameActuator`
+
+.. data:: KX_GAME_LOAD
+.. data:: KX_GAME_START
+.. data:: KX_GAME_RESTART
+.. data:: KX_GAME_QUIT
+.. data:: KX_GAME_SAVECFG
+.. data:: KX_GAME_LOADCFG
+
+.. _ipo-actuator:
+
+------------
+IPO Actuator
+------------
+
+See :class:`bge.types.KX_IpoActuator`
+
+.. data:: KX_IPOACT_PLAY
+.. data:: KX_IPOACT_PINGPONG
+.. data:: KX_IPOACT_FLIPPER
+.. data:: KX_IPOACT_LOOPSTOP
+.. data:: KX_IPOACT_LOOPEND
+.. data:: KX_IPOACT_FROM_PROP
+
+---------------
+Parent Actuator
+---------------
+
+.. data:: KX_PARENT_REMOVE
+.. data:: KX_PARENT_SET
+
+.. _logic-random-distributions:
+
+--------------------
+Random Distributions
+--------------------
+
+See :class:`bge.types.SCA_RandomActuator`
+
+.. data:: KX_RANDOMACT_BOOL_CONST
+.. data:: KX_RANDOMACT_BOOL_UNIFORM
+.. data:: KX_RANDOMACT_BOOL_BERNOUILLI
+.. data:: KX_RANDOMACT_INT_CONST
+.. data:: KX_RANDOMACT_INT_UNIFORM
+.. data:: KX_RANDOMACT_INT_POISSON
+.. data:: KX_RANDOMACT_FLOAT_CONST
+.. data:: KX_RANDOMACT_FLOAT_UNIFORM
+.. data:: KX_RANDOMACT_FLOAT_NORMAL
+.. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
+
+--------------
+Scene Actuator
+--------------
+
+See :class:`bge.types.KX_SceneActuator`
+
+.. data:: KX_SCENE_RESTART
+.. data:: KX_SCENE_SET_SCENE
+.. data:: KX_SCENE_SET_CAMERA
+.. data:: KX_SCENE_ADD_FRONT_SCENE
+.. data:: KX_SCENE_ADD_BACK_SCENE
+.. data:: KX_SCENE_REMOVE_SCENE
+.. data:: KX_SCENE_SUSPEND
+.. data:: KX_SCENE_RESUME
+
+.. _shape-action-actuator:
+
+---------------------
+Shape Action Actuator
+---------------------
+
+See :class:`bge.types.BL_ActionActuator`
+
+.. data:: KX_ACTIONACT_PLAY
+.. data:: KX_ACTIONACT_FLIPPER
+.. data:: KX_ACTIONACT_LOOPSTOP
+.. data:: KX_ACTIONACT_LOOPEND
+.. data:: KX_ACTIONACT_PROPERTY
+
+.. _logic-sound-actuator:
+
+--------------
+Sound Actuator
+--------------
+
+See :class:`bge.types.KX_SoundActuator`
+
+.. data:: KX_SOUNDACT_PLAYSTOP
+
+ :value: 1
+
+.. data:: KX_SOUNDACT_PLAYEND
+
+ :value: 2
+
+.. data:: KX_SOUNDACT_LOOPSTOP
+
+ :value: 3
+
+.. data:: KX_SOUNDACT_LOOPEND
+
+ :value: 4
+
+.. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
+
+ :value: 5
+
+.. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
+
+ :value: 6
+
+
+=======
+Various
+=======
+
+.. _input-status:
+
+------------
+Input Status
+------------
+
+See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
+
+.. data:: KX_INPUT_NONE
+.. data:: KX_INPUT_JUST_ACTIVATED
+.. data:: KX_INPUT_ACTIVE
+.. data:: KX_INPUT_JUST_RELEASED
+
+-------------
+Mouse Buttons
+-------------
+
+See :class:`bge.types.SCA_MouseSensor`
+
+.. data:: KX_MOUSE_BUT_LEFT
+.. data:: KX_MOUSE_BUT_MIDDLE
+.. data:: KX_MOUSE_BUT_RIGHT
+
+------
+States
+------
+
+See :class:`bge.types.KX_StateActuator`
+
+.. data:: KX_STATE1
+.. data:: KX_STATE2
+.. data:: KX_STATE3
+.. data:: KX_STATE4
+.. data:: KX_STATE5
+.. data:: KX_STATE6
+.. data:: KX_STATE7
+.. data:: KX_STATE8
+.. data:: KX_STATE9
+.. data:: KX_STATE10
+.. data:: KX_STATE11
+.. data:: KX_STATE12
+.. data:: KX_STATE13
+.. data:: KX_STATE14
+.. data:: KX_STATE15
+.. data:: KX_STATE16
+.. data:: KX_STATE17
+.. data:: KX_STATE18
+.. data:: KX_STATE19
+.. data:: KX_STATE20
+.. data:: KX_STATE21
+.. data:: KX_STATE22
+.. data:: KX_STATE23
+.. data:: KX_STATE24
+.. data:: KX_STATE25
+.. data:: KX_STATE26
+.. data:: KX_STATE27
+.. data:: KX_STATE28
+.. data:: KX_STATE29
+.. data:: KX_STATE30
+
+.. _state-actuator-operation:
+
+See :class:`bge.types.KX_StateActuator.operation`
+
+.. data:: KX_STATE_OP_CLR
+
+ Substract bits to state mask
+
+ :value: 0
+
+.. data:: KX_STATE_OP_CPY
+
+ Copy state mask
+
+ :value: 1
+
+.. data:: KX_STATE_OP_NEG
+
+ Invert bits to state mask
+
+ :value: 2
+
+.. data:: KX_STATE_OP_SET
+
+ Add bits to state mask
+
+ :value: 3
+
+.. _Two-D-FilterActuator-mode:
+
+---------
+2D Filter
+---------
+
+.. data:: RAS_2DFILTER_BLUR
+
+ :value: 2
+
+.. data:: RAS_2DFILTER_CUSTOMFILTER
+
+ Customer filter, the code code is set via shaderText property.
+
+ :value: 12
+
+.. data:: RAS_2DFILTER_DILATION
+
+ :value: 4
+
+.. data:: RAS_2DFILTER_DISABLED
+
+ Disable the filter that is currently active
+
+ :value: -1
+
+.. data:: RAS_2DFILTER_ENABLED
+
+ Enable the filter that was previously disabled
+
+ :value: -2
+
+.. data:: RAS_2DFILTER_EROSION
+
+ :value: 5
+
+.. data:: RAS_2DFILTER_GRAYSCALE
+
+ :value: 9
+
+.. data:: RAS_2DFILTER_INVERT
+
+ :value: 11
+
+.. data:: RAS_2DFILTER_LAPLACIAN
+
+ :value: 6
+
+.. data:: RAS_2DFILTER_MOTIONBLUR
+
+ Create and enable preset filters
+
+ :value: 1
+
+.. data:: RAS_2DFILTER_NOFILTER
+
+ Disable and destroy the filter that is currently active
+
+ :value: 0
+
+.. data:: RAS_2DFILTER_PREWITT
+
+ :value: 8
+
+.. data:: RAS_2DFILTER_SEPIA
+
+ :value: 10
+
+.. data:: RAS_2DFILTER_SHARPEN
+
+ :value: 3
+
+.. data:: RAS_2DFILTER_SOBEL
+
+ :value: 7
+
+------
+Shader
+------
+
+.. data:: VIEWMATRIX
+.. data:: VIEWMATRIX_INVERSE
+.. data:: VIEWMATRIX_INVERSETRANSPOSE
+.. data:: VIEWMATRIX_TRANSPOSE
+.. data:: MODELMATRIX
+.. data:: MODELMATRIX_INVERSE
+.. data:: MODELMATRIX_INVERSETRANSPOSE
+.. data:: MODELMATRIX_TRANSPOSE
+.. data:: MODELVIEWMATRIX
+.. data:: MODELVIEWMATRIX_INVERSE
+.. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
+.. data:: MODELVIEWMATRIX_TRANSPOSE
+.. data:: CAM_POS
+
+ Current camera position
+
+.. data:: CONSTANT_TIMER
+
+ User a timer for the uniform value.
+
+.. data:: SHD_TANGENT
+
+----------------
+Blender Material
+----------------
+
+.. data:: BL_DST_ALPHA
+.. data:: BL_DST_COLOR
+.. data:: BL_ONE
+.. data:: BL_ONE_MINUS_DST_ALPHA
+.. data:: BL_ONE_MINUS_DST_COLOR
+.. data:: BL_ONE_MINUS_SRC_ALPHA
+.. data:: BL_ONE_MINUS_SRC_COLOR
+.. data:: BL_SRC_ALPHA
+.. data:: BL_SRC_ALPHA_SATURATE
+.. data:: BL_SRC_COLOR
+.. data:: BL_ZERO