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