d071984b14b7da0e4bfafc60d371f848839cd6f9
[blender.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Logic (bge.logic)
3 ======================
4
5 *****
6 Intro
7 *****
8
9 Module to access logic functions, imported automatically into the python controllers namespace.
10
11 .. module:: bge.logic
12
13 .. code-block:: python
14
15    # To get the controller thats running this python script:
16    cont = bge.logic.getCurrentController() # bge.logic is automatically imported
17    
18    # To get the game object this controller is on:
19    obj = cont.owner
20
21 :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
22
23 .. code-block:: python
24
25    # To get a sensor linked to this controller.
26    # "sensorname" is the name of the sensor as defined in the Blender interface.
27    # +---------------------+  +--------+
28    # | Sensor "sensorname" +--+ Python +
29    # +---------------------+  +--------+
30    sens = cont.sensors["sensorname"]
31
32    # To get a sequence of all sensors:
33    sensors = co.sensors
34
35 See the sensor's reference for available methods:
36
37 .. hlist::
38    :columns: 3
39
40    * :class:`~bge.types.KX_MouseFocusSensor`
41    * :class:`~bge.types.KX_NearSensor`
42    * :class:`~bge.types.KX_NetworkMessageSensor`
43    * :class:`~bge.types.KX_RadarSensor`
44    * :class:`~bge.types.KX_RaySensor`
45    * :class:`~bge.types.KX_TouchSensor`
46    * :class:`~bge.types.SCA_DelaySensor`
47    * :class:`~bge.types.SCA_JoystickSensor`
48    * :class:`~bge.types.SCA_KeyboardSensor`
49    * :class:`~bge.types.SCA_MouseSensor`
50    * :class:`~bge.types.SCA_PropertySensor`
51    * :class:`~bge.types.SCA_RandomSensor`
52
53 You can also access actuators linked to the controller
54
55 .. code-block:: python
56
57    # To get an actuator attached to the controller:
58    #                          +--------+  +-------------------------+
59    #                          + Python +--+ Actuator "actuatorname" |
60    #                          +--------+  +-------------------------+
61    actuator = co.actuators["actuatorname"]
62    
63    # Activate an actuator
64    controller.activate(actuator)
65
66 See the actuator's reference for available methods
67
68 .. hlist::
69    :columns: 3
70    
71    * :class:`~bge.types.BL_ActionActuator`
72    * :class:`~bge.types.KX_CameraActuator`
73    * :class:`~bge.types.KX_ConstraintActuator`
74    * :class:`~bge.types.KX_GameActuator`
75    * :class:`~bge.types.KX_NetworkMessageActuator`
76    * :class:`~bge.types.KX_ObjectActuator`
77    * :class:`~bge.types.KX_ParentActuator`
78    * :class:`~bge.types.KX_SCA_AddObjectActuator`
79    * :class:`~bge.types.KX_SCA_DynamicActuator`
80    * :class:`~bge.types.KX_SCA_EndObjectActuator`
81    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
82    * :class:`~bge.types.KX_SceneActuator`
83    * :class:`~bge.types.KX_SoundActuator`
84    * :class:`~bge.types.KX_StateActuator`
85    * :class:`~bge.types.KX_TrackToActuator`
86    * :class:`~bge.types.KX_VisibilityActuator`
87    * :class:`~bge.types.SCA_2DFilterActuator`
88    * :class:`~bge.types.SCA_PropertyActuator`
89    * :class:`~bge.types.SCA_RandomActuator`
90
91 Most logic brick's methods are accessors for the properties available in the logic buttons.
92 Consult the logic bricks documentation for more information on how each logic brick works.
93
94 There are also methods to access the current :class:`bge.types.KX_Scene`
95
96 .. code-block:: python
97
98    # Get the current scene
99    scene = bge.logic.getCurrentScene()
100
101    # Get the current camera
102    cam = scene.active_camera
103
104 Matricies as used by the game engine are **row major**
105 ``matrix[row][col] = float``
106
107 :class:`bge.types.KX_Camera` has some examples using matrices.
108
109 *********
110 Variables
111 *********
112
113 .. data:: globalDict
114
115    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.
116    It can also be written to a file and loaded later on with the game load/save actuators.
117
118    .. 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.
119
120 .. data:: keyboard
121
122    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
123
124 .. data:: mouse
125
126    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
127
128 *****************
129 General functions
130 *****************
131
132 .. function:: getCurrentController()
133
134    Gets the Python controller associated with this Python script.
135    
136    :rtype: :class:`bge.types.SCA_PythonController`
137
138 .. function:: getCurrentScene()
139
140    Gets the current Scene.
141    
142    :rtype: :class:`bge.types.KX_Scene`
143
144 .. function:: getSceneList()
145
146    Gets a list of the current scenes loaded in the game engine.
147    
148    :rtype: list of :class:`bge.types.KX_Scene`
149    
150    .. 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.
151
152 .. function:: loadGlobalDict()
153
154    Loads bge.logic.globalDict from a file.
155
156 .. function:: saveGlobalDict()
157
158    Saves bge.logic.globalDict to a file.
159
160 .. function:: startGame(blend)
161
162    Loads the blend file.
163    
164    :arg blend: The name of the blend file
165    :type blend: string
166
167 .. function:: endGame()
168
169    Ends the current game.
170
171 .. function:: restartGame()
172
173    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
174    
175 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
176    
177    Converts the all of the datablocks of the given type from the given blend.
178    
179    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
180    :type blend: string
181    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
182    :type type: string
183    :arg data: Binary data from a blend file (optional)
184    :type data: bytes
185    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
186    :type load_actions: bool
187    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
188    :type verbose: bool
189    
190 .. function:: LibNew(name, type, data)
191
192    Uses existing datablock data and loads in as a new library.
193    
194    :arg name: A unique library name used for removal later
195    :type name: string
196    :arg type: The datablock type (currently only "Mesh" is supported)
197    :type type: string
198    :arg data: A list of names of the datablocks to load
199    :type data: list of strings
200    
201 .. function:: LibFree(name)
202
203    Frees a library, removing all objects and meshes from the currently active scenes.
204
205    :arg name: The name of the library to free (the name used in LibNew)
206    :type name: string
207    
208 .. function:: LibList()
209
210    Returns a list of currently loaded libraries.
211    
212    :rtype: list [str]
213
214 .. function:: addScene(name, overlay=1)
215
216    Loads a scene into the game engine.
217
218    .. note::
219
220       This function is not effective immediately, the scene is queued
221       and added on the next logic cycle where it will be available
222       from `getSceneList`
223
224    :arg name: The name of the scene
225    :type name: string
226    :arg overlay: Overlay or underlay (optional)
227    :type overlay: integer
228
229 .. function:: sendMessage(subject, body="", to="", message_from="")
230
231    Sends a message to sensors in any active scene.
232    
233    :arg subject: The subject of the message
234    :type subject: string
235    :arg body: The body of the message (optional)
236    :type body: string
237    :arg to: The name of the object to send the message to (optional)
238    :type to: string
239    :arg message_from: The name of the object that the message is coming from (optional)
240    :type message_from: string
241
242 .. function:: setGravity(gravity)
243
244    Sets the world gravity.
245    
246    :type gravity: list [fx, fy, fz]
247
248 .. function:: getSpectrum()
249
250    Returns a 512 point list from the sound card.
251    This only works if the fmod sound driver is being used.
252    
253    :rtype: list [float], len(getSpectrum()) == 512
254
255 .. function:: stopDSP()
256
257    Stops the sound driver using DSP effects.
258    
259    Only the fmod sound driver supports this.
260    DSP can be computationally expensive.
261
262 .. function:: getMaxLogicFrame()
263
264    Gets the maximum number of logic frames per render frame.
265    
266    :return: The maximum number of logic frames per render frame
267    :rtype: integer
268
269 .. function:: setMaxLogicFrame(maxlogic)
270
271    Sets the maximum number of logic frames that are executed per render frame.
272    This does not affect the physic system that still runs at full frame rate.   
273     
274    :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
275    :type maxlogic: integer
276
277 .. function:: getMaxPhysicsFrame()
278
279    Gets the maximum number of physics frames per render frame.
280    
281    :return: The maximum number of physics frames per render frame
282    :rtype: integer
283
284 .. function:: setMaxPhysicsFrame(maxphysics)
285
286    Sets the maximum number of physics timestep that are executed per render frame.
287    Higher value allows physics to keep up with realtime even if graphics slows down the game.
288    Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
289    maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
290     
291    :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
292    :type maxphysics: integer
293
294 .. function:: getLogicTicRate()
295
296    Gets the logic update frequency.
297    
298    :return: The logic frequency in Hz
299    :rtype: float
300
301 .. function:: setLogicTicRate(ticrate)
302
303    Sets the logic update frequency.
304    
305    The logic update frequency is the number of times logic bricks are executed every second.
306    The default is 60 Hz.
307    
308    :arg ticrate: The new logic update frequency (in Hz).
309    :type ticrate: float
310
311 .. function:: getPhysicsTicRate()
312
313    Gets the physics update frequency
314    
315    :return: The physics update frequency in Hz
316    :rtype: float
317    
318    .. warning: Not implimented yet
319
320 .. function:: setPhysicsTicRate(ticrate)
321
322    Sets the physics update frequency
323    
324    The physics update frequency is the number of times the physics system is executed every second.
325    The default is 60 Hz.
326    
327    :arg ticrate: The new update frequency (in Hz).
328    :type ticrate: float
329
330    .. warning: Not implimented yet
331
332 *****************
333 Utility functions
334 *****************
335
336 .. function:: expandPath(path)
337
338    Converts a blender internal path into a proper file system path.
339
340    Use / as directory separator in path
341    You can use '//' at the start of the string to define a relative path;
342    Blender replaces that string by the directory of the startup .blend or runtime file
343    to make a full path name (doesn't change during the game, even if you load other .blend).
344    The function also converts the directory separator to the local file system format.
345
346    :arg path: The path string to be converted/expanded.
347    :type path: string
348    :return: The converted string
349    :rtype: string
350
351 .. function:: getAverageFrameRate()
352
353    Gets the estimated/average framerate for all the active scenes, not only the current scene.
354
355    :return: The estimated average framerate in frames per second
356    :rtype: float
357
358 .. function:: getBlendFileList(path = "//")
359
360    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
361
362    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
363    :type path: string
364    :return: A list of filenames, with no directory prefix
365    :rtype: list
366
367 .. function:: getRandomFloat()
368
369    Returns a random floating point value in the range [0 - 1)
370
371 .. function:: PrintGLInfo()
372
373    Prints GL Extension Info into the console
374    
375 *********
376 Constants
377 *********
378
379 .. data:: KX_TRUE
380
381    True value used by some modules.
382
383 .. data:: KX_FALSE
384
385    False value used by some modules.
386
387 =======
388 Sensors
389 ======= 
390
391 .. _sensor-status:
392
393 -------------
394 Sensor Status
395 -------------
396
397 .. data:: KX_SENSOR_INACTIVE
398 .. data:: KX_SENSOR_JUST_ACTIVATED
399 .. data:: KX_SENSOR_ACTIVE
400 .. data:: KX_SENSOR_JUST_DEACTIVATED
401
402 .. _logic-property-sensor:
403
404 ---------------
405 Property Sensor
406 ---------------
407
408 .. data:: KX_PROPSENSOR_EQUAL
409
410    Activate when the property is equal to the sensor value.
411
412    :value: 1
413
414 .. data:: KX_PROPSENSOR_NOTEQUAL
415
416    Activate when the property is not equal to the sensor value.
417    
418    :value: 2
419
420 .. data:: KX_PROPSENSOR_INTERVAL
421
422    Activate when the property is between the specified limits.
423    
424    :value: 3
425    
426 .. data:: KX_PROPSENSOR_CHANGED
427
428    Activate when the property changes   
429
430    :value: 4
431
432 .. data:: KX_PROPSENSOR_EXPRESSION
433
434    Activate when the expression matches
435    
436    :value: 5
437
438 ------------
439 Radar Sensor
440 ------------
441
442 See :class:`bge.types.KX_RadarSensor`
443
444 .. data:: KX_RADAR_AXIS_POS_X
445 .. data:: KX_RADAR_AXIS_POS_Y
446 .. data:: KX_RADAR_AXIS_POS_Z
447 .. data:: KX_RADAR_AXIS_NEG_X
448 .. data:: KX_RADAR_AXIS_NEG_Y
449 .. data:: KX_RADAR_AXIS_NEG_Z
450
451 ----------
452 Ray Sensor
453 ----------
454
455 See :class:`bge.types.KX_RaySensor`
456
457 .. data:: KX_RAY_AXIS_POS_X
458 .. data:: KX_RAY_AXIS_POS_Y
459 .. data:: KX_RAY_AXIS_POS_Z
460 .. data:: KX_RAY_AXIS_NEG_X
461 .. data:: KX_RAY_AXIS_NEG_Y
462 .. data:: KX_RAY_AXIS_NEG_Z
463
464
465 =========
466 Actuators
467 =========
468
469 .. _action-actuator:
470
471 ---------------
472 Action Actuator
473 ---------------
474
475 See :class:`bge.types.BL_ActionActuator`
476
477 .. data:: KX_ACTIONACT_PLAY
478 .. data:: KX_ACTIONACT_PINGPONG
479 .. data:: KX_ACTIONACT_FLIPPER
480 .. data:: KX_ACTIONACT_LOOPSTOP
481 .. data:: KX_ACTIONACT_LOOPEND
482 .. data:: KX_ACTIONACT_PROPERTY
483
484 -------------------
485 Constraint Actuator
486 -------------------
487
488 .. _constraint-actuator-option:
489
490 See :class:`bge.types.KX_ConstraintActuator.option`
491
492 * Applicable to Distance constraint:
493
494   .. data:: KX_ACT_CONSTRAINT_NORMAL
495
496      Activate alignment to surface
497    
498   .. data:: KX_ACT_CONSTRAINT_DISTANCE
499
500      Activate distance control
501
502   .. data:: KX_ACT_CONSTRAINT_LOCAL
503
504      Direction of the ray is along the local axis
505
506 * Applicable to Force field constraint:
507
508   .. data:: KX_ACT_CONSTRAINT_DOROTFH
509
510      Force field act on rotation as well
511
512 * Applicable to both:
513
514   .. data:: KX_ACT_CONSTRAINT_MATERIAL
515
516      Detect material rather than property
517    
518   .. data:: KX_ACT_CONSTRAINT_PERMANENT
519
520      No deactivation if ray does not hit target
521
522 .. _constraint-actuator-limit:
523
524 See :class:`bge.types.KX_ConstraintActuator.limit`
525
526 .. data:: KX_CONSTRAINTACT_LOCX
527
528    Limit X coord.
529    
530 .. data:: KX_CONSTRAINTACT_LOCY
531
532    Limit Y coord
533
534 .. data:: KX_CONSTRAINTACT_LOCZ
535
536    Limit Z coord
537    
538 .. data:: KX_CONSTRAINTACT_ROTX
539
540    Limit X rotation
541
542 .. data:: KX_CONSTRAINTACT_ROTY
543
544    Limit Y rotation
545    
546 .. data:: KX_CONSTRAINTACT_ROTZ
547
548    Limit Z rotation
549    
550 .. data:: KX_CONSTRAINTACT_DIRNX
551
552    Set distance along negative X axis
553
554 .. data:: KX_CONSTRAINTACT_DIRNY
555
556    Set distance along negative Y axis
557    
558 .. data:: KX_CONSTRAINTACT_DIRNZ
559
560    Set distance along negative Z axis
561    
562 .. data:: KX_CONSTRAINTACT_DIRPX
563
564    Set distance along positive X axis
565
566 .. data:: KX_CONSTRAINTACT_DIRPY
567
568    Set distance along positive Y axis
569    
570 .. data:: KX_CONSTRAINTACT_DIRPZ
571
572    Set distance along positive Z axis
573    
574 .. data:: KX_CONSTRAINTACT_ORIX
575
576    Set orientation of X axis
577    
578 .. data:: KX_CONSTRAINTACT_ORIY
579
580    Set orientation of Y axis
581    
582 .. data:: KX_CONSTRAINTACT_ORIZ
583
584    Set orientation of Z axis
585    
586 .. data:: KX_ACT_CONSTRAINT_FHNX
587
588    Set force field along negative X axis
589    
590 .. data:: KX_ACT_CONSTRAINT_FHNY
591
592    Set force field along negative Y axis
593    
594 .. data:: KX_ACT_CONSTRAINT_FHNZ
595
596    Set force field along negative Z axis
597    
598 .. data:: KX_ACT_CONSTRAINT_FHPX
599
600    Set force field along positive X axis
601
602 .. data:: KX_ACT_CONSTRAINT_FHPY
603
604    Set force field along positive Y axis
605    
606 .. data:: KX_ACT_CONSTRAINT_FHPZ
607
608    Set force field along positive Z axis
609
610 ----------------
611 Dynamic Actuator
612 ----------------
613
614 See :class:`bge.types.KX_SCA_DynamicActuator`
615
616 .. data:: KX_DYN_RESTORE_DYNAMICS
617 .. data:: KX_DYN_DISABLE_DYNAMICS
618 .. data:: KX_DYN_ENABLE_RIGID_BODY
619 .. data:: KX_DYN_DISABLE_RIGID_BODY
620 .. data:: KX_DYN_SET_MASS
621
622 .. _game-actuator:
623
624 -------------
625 Game Actuator
626 -------------
627
628 See :class:`bge.types.KX_GameActuator`
629
630 .. data:: KX_GAME_LOAD
631 .. data:: KX_GAME_START
632 .. data:: KX_GAME_RESTART
633 .. data:: KX_GAME_QUIT
634 .. data:: KX_GAME_SAVECFG
635 .. data:: KX_GAME_LOADCFG
636
637 ---------------
638 Parent Actuator
639 ---------------
640
641 .. data:: KX_PARENT_REMOVE
642 .. data:: KX_PARENT_SET
643
644 .. _logic-random-distributions:
645
646 --------------------
647 Random Distributions
648 --------------------
649
650 See :class:`bge.types.SCA_RandomActuator`
651
652 .. data:: KX_RANDOMACT_BOOL_CONST
653 .. data:: KX_RANDOMACT_BOOL_UNIFORM
654 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
655 .. data:: KX_RANDOMACT_INT_CONST
656 .. data:: KX_RANDOMACT_INT_UNIFORM
657 .. data:: KX_RANDOMACT_INT_POISSON
658 .. data:: KX_RANDOMACT_FLOAT_CONST
659 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
660 .. data:: KX_RANDOMACT_FLOAT_NORMAL
661 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
662
663 --------------
664 Scene Actuator
665 --------------
666
667 See :class:`bge.types.KX_SceneActuator`
668
669 .. data:: KX_SCENE_RESTART
670 .. data:: KX_SCENE_SET_SCENE
671 .. data:: KX_SCENE_SET_CAMERA
672 .. data:: KX_SCENE_ADD_FRONT_SCENE
673 .. data:: KX_SCENE_ADD_BACK_SCENE
674 .. data:: KX_SCENE_REMOVE_SCENE
675 .. data:: KX_SCENE_SUSPEND
676 .. data:: KX_SCENE_RESUME
677
678 .. _logic-sound-actuator:
679
680 --------------
681 Sound Actuator
682 --------------
683       
684 See :class:`bge.types.KX_SoundActuator`
685
686 .. data:: KX_SOUNDACT_PLAYSTOP
687
688    :value: 1
689    
690 .. data:: KX_SOUNDACT_PLAYEND
691
692    :value: 2
693    
694 .. data:: KX_SOUNDACT_LOOPSTOP
695
696    :value: 3
697    
698 .. data:: KX_SOUNDACT_LOOPEND
699
700    :value: 4
701    
702 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
703
704    :value: 5
705    
706 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
707
708    :value: 6
709    
710
711 =======
712 Various
713 =======
714
715 .. _input-status:
716
717 ------------
718 Input Status
719 ------------
720
721 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
722
723 .. data:: KX_INPUT_NONE
724 .. data:: KX_INPUT_JUST_ACTIVATED
725 .. data:: KX_INPUT_ACTIVE
726 .. data:: KX_INPUT_JUST_RELEASED
727
728 -------------
729 Mouse Buttons
730 -------------
731
732 See :class:`bge.types.SCA_MouseSensor`
733
734 .. data:: KX_MOUSE_BUT_LEFT
735 .. data:: KX_MOUSE_BUT_MIDDLE
736 .. data:: KX_MOUSE_BUT_RIGHT
737
738 ------
739 States
740 ------
741
742 See :class:`bge.types.KX_StateActuator`
743
744 .. data:: KX_STATE1
745 .. data:: KX_STATE2
746 .. data:: KX_STATE3
747 .. data:: KX_STATE4
748 .. data:: KX_STATE5
749 .. data:: KX_STATE6
750 .. data:: KX_STATE7
751 .. data:: KX_STATE8
752 .. data:: KX_STATE9
753 .. data:: KX_STATE10
754 .. data:: KX_STATE11
755 .. data:: KX_STATE12
756 .. data:: KX_STATE13
757 .. data:: KX_STATE14
758 .. data:: KX_STATE15
759 .. data:: KX_STATE16
760 .. data:: KX_STATE17
761 .. data:: KX_STATE18
762 .. data:: KX_STATE19
763 .. data:: KX_STATE20
764 .. data:: KX_STATE21
765 .. data:: KX_STATE22
766 .. data:: KX_STATE23
767 .. data:: KX_STATE24
768 .. data:: KX_STATE25
769 .. data:: KX_STATE26
770 .. data:: KX_STATE27
771 .. data:: KX_STATE28
772 .. data:: KX_STATE29
773 .. data:: KX_STATE30
774
775 .. _state-actuator-operation:
776
777 See :class:`bge.types.KX_StateActuator.operation`
778
779 .. data:: KX_STATE_OP_CLR
780
781    Substract bits to state mask
782    
783    :value: 0
784
785 .. data:: KX_STATE_OP_CPY
786
787    Copy state mask
788    
789    :value: 1
790    
791 .. data:: KX_STATE_OP_NEG
792
793    Invert bits to state mask
794    
795    :value: 2
796    
797 .. data:: KX_STATE_OP_SET
798
799    Add bits to state mask
800    
801    :value: 3
802    
803 .. _Two-D-FilterActuator-mode:
804
805 ---------
806 2D Filter
807 ---------
808
809 .. data:: RAS_2DFILTER_BLUR
810
811    :value: 2
812    
813 .. data:: RAS_2DFILTER_CUSTOMFILTER
814
815    Customer filter, the code code is set via shaderText property.
816    
817    :value: 12
818    
819 .. data:: RAS_2DFILTER_DILATION
820
821    :value: 4
822    
823 .. data:: RAS_2DFILTER_DISABLED
824
825    Disable the filter that is currently active
826
827    :value: -1
828    
829 .. data:: RAS_2DFILTER_ENABLED
830
831    Enable the filter that was previously disabled
832
833    :value: -2
834    
835 .. data:: RAS_2DFILTER_EROSION
836
837    :value: 5
838    
839 .. data:: RAS_2DFILTER_GRAYSCALE
840
841    :value: 9
842    
843 .. data:: RAS_2DFILTER_INVERT
844
845    :value: 11
846    
847 .. data:: RAS_2DFILTER_LAPLACIAN
848
849    :value: 6
850    
851 .. data:: RAS_2DFILTER_MOTIONBLUR
852
853    Create and enable preset filters
854
855    :value: 1
856    
857 .. data:: RAS_2DFILTER_NOFILTER
858
859    Disable and destroy the filter that is currently active
860
861    :value: 0
862    
863 .. data:: RAS_2DFILTER_PREWITT
864
865    :value: 8
866    
867 .. data:: RAS_2DFILTER_SEPIA
868
869    :value: 10
870    
871 .. data:: RAS_2DFILTER_SHARPEN
872
873    :value: 3
874    
875 .. data:: RAS_2DFILTER_SOBEL
876
877    :value: 7
878    
879 ------
880 Shader
881 ------
882
883 .. data:: VIEWMATRIX
884 .. data:: VIEWMATRIX_INVERSE
885 .. data:: VIEWMATRIX_INVERSETRANSPOSE
886 .. data:: VIEWMATRIX_TRANSPOSE
887 .. data:: MODELMATRIX
888 .. data:: MODELMATRIX_INVERSE
889 .. data:: MODELMATRIX_INVERSETRANSPOSE
890 .. data:: MODELMATRIX_TRANSPOSE
891 .. data:: MODELVIEWMATRIX
892 .. data:: MODELVIEWMATRIX_INVERSE
893 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
894 .. data:: MODELVIEWMATRIX_TRANSPOSE
895 .. data:: CAM_POS
896
897    Current camera position
898
899 .. data:: CONSTANT_TIMER
900
901    User a timer for the uniform value.
902
903 .. data:: SHD_TANGENT
904
905 ----------------
906 Blender Material
907 ----------------
908
909 .. data:: BL_DST_ALPHA
910 .. data:: BL_DST_COLOR
911 .. data:: BL_ONE
912 .. data:: BL_ONE_MINUS_DST_ALPHA
913 .. data:: BL_ONE_MINUS_DST_COLOR
914 .. data:: BL_ONE_MINUS_SRC_ALPHA
915 .. data:: BL_ONE_MINUS_SRC_COLOR
916 .. data:: BL_SRC_ALPHA
917 .. data:: BL_SRC_ALPHA_SATURATE
918 .. data:: BL_SRC_COLOR
919 .. data:: BL_ZERO