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