Minor Fixes:
Better use of booleans for python #include fixes for Windows Python Doc fixes Use the farthest vertex as the face position when z sorting faces. (Camera is on -z axis!)
This commit is contained in:
parent
f69cc652e2
commit
4c53f38756
@ -309,12 +309,9 @@ PyObject* SCA_ILogicBrick::PyGetExecutePriority(PyObject* self,
|
||||
/* Conversions for making life better. */
|
||||
bool SCA_ILogicBrick::PyArgToBool(int boolArg)
|
||||
{
|
||||
if (boolArg == KX_TRUE) {
|
||||
if (boolArg) {
|
||||
return true;
|
||||
} else if (boolArg == KX_FALSE){
|
||||
return false;
|
||||
} else {
|
||||
; /* error: bad conversion: how to catch this? */
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -464,7 +464,7 @@ PyObject* SCA_RandomActuator::PySetBoolConst(PyObject* self,
|
||||
}
|
||||
|
||||
m_distribution = KX_RANDOMACT_BOOL_CONST;
|
||||
if (paraArg == KX_TRUE) {
|
||||
if (paraArg) {
|
||||
m_parameter1 = 1;
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,19 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
#include <windows.h>
|
||||
#endif // WIN32
|
||||
#ifdef __APPLE__
|
||||
#include <OpenGL/gl.h>
|
||||
#include <OpenGL/glu.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#include "GPC_PolygonMaterial.h"
|
||||
#include "MT_Vector3.h"
|
||||
#include "RAS_IRasterizer.h"
|
||||
@ -66,17 +79,6 @@
|
||||
#include "IMB_imbuf_types.h"
|
||||
/* end of blender include block */
|
||||
|
||||
#ifdef WIN32
|
||||
#include <windows.h>
|
||||
#endif // WIN32
|
||||
#ifdef __APPLE__
|
||||
#include <OpenGL/gl.h>
|
||||
#include <OpenGL/glu.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#endif
|
||||
|
||||
static Image *fCurpage=0;
|
||||
static int fCurtile=0, fCurmode=0, fCurTileXRep=0, fCurTileYRep=0;
|
||||
static short fTexWindx, fTexWindy, fTexWinsx, fTexWinsy;
|
||||
|
@ -37,6 +37,15 @@
|
||||
|
||||
#ifdef WIN32
|
||||
#pragma warning (disable:4786) // suppress stl-MSVC debug info warning
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenGL/gl.h>
|
||||
#include <OpenGL/glu.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#endif
|
||||
|
||||
#include "GPG_Application.h"
|
||||
|
@ -57,38 +57,38 @@
|
||||
struct SM_MaterialProps;
|
||||
struct SM_ShapeProps;
|
||||
|
||||
class GEN_HashedPtr;
|
||||
class CListValue;
|
||||
class RAS_BucketManager;
|
||||
class KX_Camera;
|
||||
class CValue;
|
||||
class SCA_LogicManager;
|
||||
class SCA_KeyboardManager;
|
||||
class SCA_TimeEventManager;
|
||||
class SCA_MouseManager;
|
||||
class KX_WorldInfo;
|
||||
class SCA_ISystem;
|
||||
class SCA_IInputDevice;
|
||||
class SND_Scene;
|
||||
class SND_IAudioDevice;
|
||||
class NG_NetworkDeviceInterface;
|
||||
class NG_NetworkScene;
|
||||
class SG_IObject;
|
||||
class SG_Node;
|
||||
class SG_Tree;
|
||||
class KX_WorldInfo;
|
||||
class KX_Camera;
|
||||
class GEN_HashedPtr;
|
||||
class KX_GameObject;
|
||||
class SCA_ISystem;
|
||||
class SCA_IInputDevice;
|
||||
class KX_LightObject;
|
||||
class RAS_BucketManager;
|
||||
class RAS_BucketManager;
|
||||
class RAS_MaterialBucket;
|
||||
class RAS_IPolyMaterial;
|
||||
class RAS_IRasterizer;
|
||||
class RAS_IRenderTools;
|
||||
class CValue;
|
||||
class SG_IObject;
|
||||
|
||||
/**
|
||||
* The KX_Scene holds all data for an independent scene. It relates
|
||||
* KX_Objects to the specific objects in the modules.
|
||||
* */
|
||||
class KX_Scene : public SCA_IScene, public PyObjectPlus
|
||||
class KX_Scene : public PyObjectPlus, public SCA_IScene
|
||||
{
|
||||
Py_Header;
|
||||
protected:
|
||||
|
@ -247,18 +247,7 @@ PyObject* KX_SceneActuator::PySetUseRestart(PyObject* self,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (boolArg == KX_TRUE)
|
||||
{
|
||||
m_restart = true;
|
||||
}
|
||||
else if (boolArg == KX_FALSE)
|
||||
{
|
||||
m_restart = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
; /* internal error */
|
||||
}
|
||||
m_restart = boolArg != 0;
|
||||
|
||||
Py_Return;
|
||||
}
|
||||
|
@ -369,15 +369,7 @@ PyObject* KX_TouchSensor::PyGetTouchMaterial(PyObject* self,
|
||||
PyObject* args,
|
||||
PyObject* kwds)
|
||||
{
|
||||
int retval = 0;
|
||||
|
||||
if (m_bFindMaterial) {
|
||||
retval = KX_TRUE;
|
||||
} else {
|
||||
retval = KX_FALSE;
|
||||
}
|
||||
|
||||
return PyInt_FromLong(retval);
|
||||
return PyInt_FromLong(m_bFindMaterial);
|
||||
}
|
||||
|
||||
/* 6. setTouchMaterial */
|
||||
@ -394,13 +386,7 @@ PyObject* KX_TouchSensor::PySetTouchMaterial(PyObject* self, PyObject* args, PyO
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (pulseArg == KX_TRUE) {
|
||||
m_bFindMaterial = true;
|
||||
} else if (pulseArg == KX_FALSE){
|
||||
m_bFindMaterial = false;
|
||||
} else {
|
||||
; /* internal error */
|
||||
}
|
||||
m_bFindMaterial = pulseArg != 0;
|
||||
|
||||
Py_Return;
|
||||
}
|
||||
|
@ -101,28 +101,66 @@ Function Keys
|
||||
|
||||
Other Keys
|
||||
----------
|
||||
- ESCKEY
|
||||
- TABKEY
|
||||
- RETKEY
|
||||
- SPACEKEY
|
||||
- LINEFEEDKEY
|
||||
- BACKSPACEKEY
|
||||
- DELKEY
|
||||
- SEMICOLONKEY
|
||||
- PERIODKEY
|
||||
- COMMAKEY
|
||||
- QUOTEKEY
|
||||
- ACCENTGRAVEKEY
|
||||
- MINUSKEY
|
||||
- SLASHKEY
|
||||
- BACKSLASHKEY
|
||||
- EQUALKEY
|
||||
- LEFTBRACKETKEY
|
||||
- RIGHTBRACKETKEY
|
||||
- PAUSEKEY
|
||||
- INSERTKEY
|
||||
- HOMEKEY
|
||||
- PAGEUPKEY
|
||||
- PAGEDOWNKEY
|
||||
- BACKSPACEKEY
|
||||
- COMMAKEY
|
||||
- DELKEY
|
||||
- ENDKEY
|
||||
- EQUALKEY
|
||||
- ESCKEY
|
||||
- HOMEKEY
|
||||
- INSERTKEY
|
||||
- LEFTBRACKETKEY
|
||||
- LINEFEEDKEY
|
||||
- MINUSKEY
|
||||
- PAGEDOWNKEY
|
||||
- PAGEUPKEY
|
||||
- PAUSEKEY
|
||||
- PERIODKEY
|
||||
- QUOTEKEY
|
||||
- RIGHTBRACKETKEY
|
||||
- RETKEY
|
||||
- SEMICOLONKEY
|
||||
- SLASHKEY
|
||||
- SPACEKEY
|
||||
- TABKEY
|
||||
|
||||
Example::
|
||||
# Set a connected keyboard sensor to accept F1
|
||||
import GameLogic
|
||||
import GameKeys
|
||||
|
||||
co = GameLogic.getCurrentController()
|
||||
# 'Keyboard' is a keyboard sensor
|
||||
sensor = co.getSensor('Keyboard')
|
||||
sensor.setKey(GameKeys.F1KEY)
|
||||
|
||||
Example::
|
||||
# Do the all keys thing
|
||||
import GameLogic
|
||||
import GameKeys
|
||||
|
||||
# status: these should be added to a module somewhere
|
||||
KX_NO_INPUTSTATUS = 0
|
||||
KX_JUSTACTIVATED = 1
|
||||
KX_ACTIVE = 2
|
||||
KX_JUSTRELEASED = 3
|
||||
|
||||
co = GameLogic.getCurrentController()
|
||||
# 'Keyboard' is a keyboard sensor
|
||||
sensor = co.getSensor('Keyboard')
|
||||
keylist = sensor.getPressedKeys()
|
||||
for key in keylist:
|
||||
# key[0] == GameKeys.keycode, key[1] = status
|
||||
if key[1] == KX_JUSTACTIVATED:
|
||||
if key[0] == GameKeys.WKEY:
|
||||
# Activate Forward!
|
||||
if key[0] == GameKeys.SKEY:
|
||||
# Activate Backward!
|
||||
if key[0] == GameKeys.AKEY:
|
||||
# Activate Left!
|
||||
if key[0] == GameKeys.DKEY:
|
||||
# Activate Right!
|
||||
|
||||
"""
|
||||
|
@ -17,65 +17,108 @@ Documentation for the GameLogic Module.
|
||||
|
||||
# To get the game object associated with this controller:
|
||||
obj = co.getOwner()
|
||||
L{KX_GameObject} and possibly L{KX_Camera} and L{KX_Light} methods are
|
||||
L{KX_GameObject} and L{KX_Camera} or L{KX_Light} methods are
|
||||
available depending on the type of object::
|
||||
# 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 = co.getSensor("sensorname")
|
||||
L{KX_NetworkMessageSensor}, L{KX_RaySensor}, L{KX_TouchSensor}, L{SCA_KeyboardSensor},
|
||||
L{SCA_MouseSensor}, L{SCA_PropertySensor} and L{SCA_RandomSensor} methods are available,
|
||||
depending on the type of sensor::
|
||||
|
||||
# To get a list of all sensors:
|
||||
sensors = co.B{getSensors}()
|
||||
sensors = co.getSensors()
|
||||
|
||||
See the sensor's reference for available methods:
|
||||
- L{KX_NetworkMessageSensor}
|
||||
- L{KX_RaySensor}
|
||||
- L{KX_MouseFocusSensor}
|
||||
- L{KX_NearSensor}
|
||||
- L{KX_RadarSensor}
|
||||
- L{KX_TouchSensor}
|
||||
- L{SCA_KeyboardSensor}
|
||||
- L{SCA_MouseSensor}
|
||||
- L{SCA_PropertySensor}
|
||||
- L{SCA_RandomSensor}
|
||||
|
||||
You can also access actuators linked to the controller::
|
||||
# To get an actuator attached to the controller:
|
||||
# +--------+ +-------------------------+
|
||||
# + Python +--+ Actuator "actuatorname" |
|
||||
# +--------+ +-------------------------+
|
||||
actuator = co.getActuator("actuatorname")
|
||||
|
||||
# Activate an actuator
|
||||
GameLogic.addActiveActuator(actuator, True)
|
||||
|
||||
See the actuator's reference for available methods:
|
||||
- L{BL_ActionActuator}
|
||||
- L{KX_CameraActuator}
|
||||
- L{KX_CDActuator}
|
||||
- L{KX_ConstraintActuator}
|
||||
- L{KX_GameActuator}
|
||||
- L{KX_IpoActuator}
|
||||
- L{KX_NetworkMessageActuator}
|
||||
- L{KX_ObjectActuator}
|
||||
- L{KX_SCA_AddObjectActuator}
|
||||
- L{KX_SCA_EndObjectActuator}
|
||||
- L{KX_SCA_ReplaceMeshActuator}
|
||||
- L{KX_SceneActuator}
|
||||
- L{KX_SoundActuator}
|
||||
- L{KX_TrackToActuator}
|
||||
- L{KX_VisibilityActuator}
|
||||
- L{SCA_PropertyActuator}
|
||||
- L{SCA_RandomActuator}
|
||||
|
||||
There are also methods to access the current L{KX_Scene}::
|
||||
# Get the current scene
|
||||
scene = GameLogic.getCurrentScene()
|
||||
|
||||
# Get the current camera
|
||||
cam = scene.active_camera
|
||||
|
||||
Matricies as used by the game engine are B{row major}::
|
||||
matrix[row][col] = blah
|
||||
L{KX_Camera} has some examples using matricies.
|
||||
|
||||
|
||||
@group Constants: KX_TRUE, KX_FALSE
|
||||
@var KX_TRUE: True value used by some modules.
|
||||
@var KX_FALSE: False value used by some modules.
|
||||
|
||||
Constants
|
||||
=========
|
||||
- KX_TRUE: True value used by some modules
|
||||
- KX_FALSE: False value used by some modules.
|
||||
@group Property Sensor: KX_PROPSENSOR_EQUAL, KX_PROPSENSOR_NOTEQUAL, KX_PROPSENSOR_INTERVAL, KX_PROPSENSOR_CHANGED, KX_PROPSENSOR_EXPRESSION
|
||||
@var KX_PROPSENSOR_EQUAL: Activate when the property is equal to the sensor value.
|
||||
@var KX_PROPSENSOR_NOTEQUAL: Activate when the property is not equal to the sensor value.
|
||||
@var KX_PROPSENSOR_INTERVAL: Activate when the property is between the specified limits.
|
||||
@var KX_PROPSENSOR_CHANGED: Activate when the property changes
|
||||
@var KX_PROPSENSOR_EXPRESSION: Activate when the expression matches
|
||||
|
||||
Property Sensor
|
||||
---------------
|
||||
Tests that the property sensor is able to perform. See L{SCA_PropertySensor}
|
||||
- KX_PROPSENSOR_EQUAL: Activate when the property is equal to the sensor value.
|
||||
- KX_PROPSENSOR_NOTEQUAL: Activate when the property is not equal to the sensor value.
|
||||
- KX_PROPSENSOR_INTERVAL: Activate when the property is between the specified limits.
|
||||
- KX_PROPSENSOR_CHANGED: Activate when the property changes
|
||||
- KX_PROPSENSOR_EXPRESSION: Activate when the expression matches
|
||||
@group Constraint Actuator: KX_CONSTRAINTACT_LOCX, KX_CONSTRAINTACT_LOCY, KX_CONSTRAINTACT_LOCZ, KX_CONSTRAINTACT_ROTX, KX_CONSTRAINTACT_ROTY, KX_CONSTRAINTACT_ROTZ
|
||||
@var KX_CONSTRAINTACT_LOCX: See L{KX_ConstraintActuator}
|
||||
@var KX_CONSTRAINTACT_LOCY: See L{KX_ConstraintActuator}
|
||||
@var KX_CONSTRAINTACT_LOCZ: See L{KX_ConstraintActuator}
|
||||
@var KX_CONSTRAINTACT_ROTX: See L{KX_ConstraintActuator}
|
||||
@var KX_CONSTRAINTACT_ROTY: See L{KX_ConstraintActuator}
|
||||
@var KX_CONSTRAINTACT_ROTZ: See L{KX_ConstraintActuator}
|
||||
|
||||
Constraint Actuator
|
||||
-------------------
|
||||
The axis and type (location/rotation) of constraint. See L{KX_ConstraintActuator}
|
||||
- KX_CONSTRAINTACT_LOCX
|
||||
- KX_CONSTRAINTACT_LOCY
|
||||
- KX_CONSTRAINTACT_LOCZ
|
||||
- KX_CONSTRAINTACT_ROTX
|
||||
- KX_CONSTRAINTACT_ROTY
|
||||
- KX_CONSTRAINTACT_ROTZ
|
||||
@group IPO Actuator: KX_IPOACT_PLAY, KX_IPOACT_PINGPONG, KX_IPOACT_FLIPPER, KX_IPOACT_LOOPSTOP, KX_IPOACT_LOOPEND
|
||||
@var KX_IPOACT_PLAY: See L{KX_IpoActuator}
|
||||
@var KX_IPOACT_PINGPONG: See L{KX_IpoActuator}
|
||||
@var KX_IPOACT_FLIPPER: See L{KX_IpoActuator}
|
||||
@var KX_IPOACT_LOOPSTOP: See L{KX_IpoActuator}
|
||||
@var KX_IPOACT_LOOPEND: See L{KX_IpoActuator}
|
||||
|
||||
IPO Actuator
|
||||
------------
|
||||
IPO Types. See L{KX_IpoActuator}
|
||||
- KX_IPOACT_PLAY
|
||||
- KX_IPOACT_PINGPONG
|
||||
- KX_IPOACT_FLIPPER
|
||||
- KX_IPOACT_LOOPSTOP
|
||||
- KX_IPOACT_LOOPEND
|
||||
|
||||
Random Distributions
|
||||
--------------------
|
||||
See L{SCA_RandomActuator}
|
||||
- KX_RANDOMACT_BOOL_CONST
|
||||
- KX_RANDOMACT_BOOL_UNIFORM
|
||||
- KX_RANDOMACT_BOOL_BERNOUILLI
|
||||
- KX_RANDOMACT_INT_CONST
|
||||
- KX_RANDOMACT_INT_UNIFORM
|
||||
- KX_RANDOMACT_INT_POISSON
|
||||
- KX_RANDOMACT_FLOAT_CONST
|
||||
- KX_RANDOMACT_FLOAT_UNIFORM
|
||||
- KX_RANDOMACT_FLOAT_NORMAL
|
||||
- KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
|
||||
@group Random Distributions: KX_RANDOMACT_BOOL_CONST, KX_RANDOMACT_BOOL_UNIFORM, KX_RANDOMACT_BOOL_BERNOUILLI, KX_RANDOMACT_INT_CONST, KX_RANDOMACT_INT_UNIFORM, KX_RANDOMACT_INT_POISSON, KX_RANDOMACT_FLOAT_CONST, KX_RANDOMACT_FLOAT_UNIFORM, KX_RANDOMACT_FLOAT_NORMAL, KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
|
||||
@var KX_RANDOMACT_BOOL_CONST: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_BOOL_UNIFORM: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_BOOL_BERNOUILLI: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_INT_CONST: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_INT_UNIFORM: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_INT_POISSON: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_FLOAT_CONST: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_FLOAT_UNIFORM: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_FLOAT_NORMAL: See L{SCA_RandomActuator}
|
||||
@var KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL: See L{SCA_RandomActuator}
|
||||
|
||||
"""
|
||||
|
||||
|
@ -94,7 +94,7 @@ class KX_Camera(KX_GameObject):
|
||||
co = GameLogic.getCurrentController()
|
||||
cam = co.GetOwner()
|
||||
|
||||
# Test point [0.0, 0.0, 0.0]"
|
||||
# Test point [0.0, 0.0, 0.0]
|
||||
if (cam.pointInsideFrustum([0.0, 0.0, 0.0])):
|
||||
# Point is inside frustum !
|
||||
# Do something useful !
|
||||
|
@ -34,6 +34,8 @@ class KX_Scene:
|
||||
|
||||
# Depth is negative and decreasing further from the camera
|
||||
depth = obj.position[0]*cam.world_to_camera[2][0] + obj.position[1]*cam.world_to_camera[2][1] + obj.position[2]*cam.world_to_camera[2][2] + cam.world_to_camera[2][3]
|
||||
|
||||
@bug: All attributes are read only at the moment.
|
||||
|
||||
@ivar name: The scene's name
|
||||
@type name: string
|
||||
|
@ -6,7 +6,7 @@ class SCA_KeyboardSensor(SCA_ISensor):
|
||||
"""
|
||||
A keyboard sensor detects player key presses.
|
||||
|
||||
See module GameKeys for keycode values.
|
||||
See module L{GameKeys} for keycode values.
|
||||
"""
|
||||
|
||||
def getKey():
|
||||
@ -18,7 +18,7 @@ class SCA_KeyboardSensor(SCA_ISensor):
|
||||
"""
|
||||
Set the key this sensor should listen for.
|
||||
|
||||
@type keycode: keycode from GameKeys module
|
||||
@type keycode: keycode from L{GameKeys} module
|
||||
"""
|
||||
|
||||
def getHold1():
|
||||
|
@ -70,10 +70,11 @@ public:
|
||||
class KX_MeshSlot
|
||||
{
|
||||
public:
|
||||
void* m_clientObj;
|
||||
void* m_clientObj;
|
||||
RAS_Deformer* m_pDeformer; // __NLA
|
||||
double* m_OpenGLMatrix;
|
||||
class RAS_MeshObject* m_mesh;
|
||||
double* m_OpenGLMatrix;
|
||||
class RAS_MeshObject* m_mesh;
|
||||
|
||||
mutable bool m_bVisible; // for visibility
|
||||
mutable bool m_bObjectColor;
|
||||
mutable MT_Vector4 m_RGBAcolor;
|
||||
|
@ -564,14 +564,14 @@ RAS_MeshObject::polygonSlot::polygonSlot(const MT_Vector3 &pnorm, const MT_Scala
|
||||
{
|
||||
vert = mesh->GetVertex(base.m_vtxarray, base.m_indexarray[i], poly->GetMaterial()->GetPolyMaterial());
|
||||
float z = MT_dot(pnorm, vert->getLocalXYZ()) + pval;
|
||||
if (z > m_z)
|
||||
if (z < m_z)
|
||||
m_z = z;
|
||||
}
|
||||
}
|
||||
|
||||
void RAS_MeshObject::SortPolygons(const MT_Transform &transform)
|
||||
{
|
||||
|
||||
// Extract camera Z plane...
|
||||
const MT_Vector3 pnorm(transform.getBasis()[2]);
|
||||
const MT_Scalar pval = transform.getOrigin()[2];
|
||||
|
||||
@ -593,6 +593,7 @@ void RAS_MeshObject::SortPolygons(const MT_Transform &transform)
|
||||
}
|
||||
}
|
||||
|
||||
// Clear current array data.
|
||||
for (RAS_MaterialBucket::Set::iterator it = m_materials.begin();it!=m_materials.end();++it)
|
||||
{
|
||||
vector<KX_IndexArray*> *indexcache = &GetArrayOptimizer((*it)->GetPolyMaterial())->m_IndexArrayCache1;
|
||||
@ -600,8 +601,6 @@ void RAS_MeshObject::SortPolygons(const MT_Transform &transform)
|
||||
(*iit)->clear();
|
||||
}
|
||||
|
||||
//ClearArrayData();
|
||||
|
||||
std::multiset<polygonSlot, fronttoback>::iterator sit = solidpolyset.begin();
|
||||
for (; sit != solidpolyset.end(); ++sit)
|
||||
SchedulePoly((*sit).m_poly->GetVertexIndexBase(), (*sit).m_poly->VertexCount(), (*sit).m_poly->GetMaterial()->GetPolyMaterial());
|
||||
@ -659,7 +658,7 @@ void RAS_MeshObject::SchedulePolygons(const MT_Transform &transform, int drawing
|
||||
m_bModified = false;
|
||||
}
|
||||
|
||||
if (m_zsort)
|
||||
if (m_zsort && rasty->GetDrawingMode() >= RAS_IRasterizer::KX_SOLID)
|
||||
{
|
||||
SortPolygons(transform);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user