Package org.boxutil.base
Class BaseIlluminantData
java.lang.Object
org.boxutil.base.BaseRenderData
org.boxutil.base.BaseInstanceRenderData
org.boxutil.base.BaseIlluminantData
- All Implemented Interfaces:
DirectDrawEntity,IlluminantAPI,InstanceRenderAPI,RenderDataAPI
- Direct Known Subclasses:
AreaLight,InfiniteLight,LinearLight,PointLight,SpotLight
public class BaseIlluminantData
extends BaseInstanceRenderData
implements IlluminantAPI, DirectDrawEntity
The default light direction is
vec3(1.0, 0.0, 0.0), use model matrix to rotate it.-
Field Summary
FieldsFields inherited from class org.boxutil.base.BaseInstanceRenderData
instanceData, instanceRefreshIndex, instanceRefreshOffset, instanceRefreshSize, instanceRenderingCount, instanceRenderingOffset, instanceTimerOverride, mappingSubmit, memory, needRefreshInstanceDataFields inherited from class org.boxutil.base.BaseRenderData
autoSubmitDataBuffer, autoSubmitModelMat, autoSubmitPrimeMat, blendConfig, blendState, controlData, customData, globalTimer, hasDelete, isTimerPaused, layer, modelMatBuffer, modelMatrix, primeMatBuffer, primeMatrix, primeMatrixState, statePackageBuffer, sync_lock, timingWhenPaused -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected intfloatorg.lwjgl.util.vector.Vector4fgetColor()float[]bytefloatbooleanbooleanbooleanbooleanvoidmallocInstance(InstanceType target, int dataNum) Make sure call it before callInstanceRenderAPI.submitInstance()when without valid memory.Only for system rendering calls, not applicable to developer.voidWhen call it, will reset data and delete related objects.voidsetAttenuationRadius(float radius) The shading range of the light.voidsetColor(float r, float g, float b, float a) voidvoidsetColor(org.lwjgl.util.vector.Vector4f color) voidvoidvoidvoidvoidvoidsetStrength(float strength) voidWithout matrix data or timer settings.voidUse it when you changed the instance data.Methods inherited from class org.boxutil.base.BaseInstanceRenderData
_packingInstanceData, addInstanceData, callRefreshInstanceData, copyInstanceTimerOverride, delete, getGlobalTimerState, getInstanceData, getInstanceDataMemory, getInstanceDataRefreshIndex, getInstanceDataRefreshOffset, getInstanceDataRefreshSize, getInstanceTimerOverride, getRenderingCount, getRenderingOffset, getValidInstanceDataCount, glDraw, haveValidInstanceData, isAlwaysRefreshInstanceData, isMappingInstanceSubmit, isNeedRefreshInstanceData, resetInstanceDataClient, resetInstanceDataResource, resetMemory, resetMemory, setAlwaysRefreshInstanceData, setInstanceData, setInstanceData, setInstanceDataRefreshAllFromCurrentIndex, setInstanceDataRefreshIndex, setInstanceDataRefreshOffset, setInstanceDataRefreshSize, setInstanceTimerOverride, setMappingInstanceSubmit, setRenderingAllInstanceFromCurrentOffset, setRenderingCount, setRenderingOffset, setSharedInstanceDataMethods inherited from class org.boxutil.base.BaseRenderData
_deleteExc, advanceGlobalTimer, appendToEntity, appendToEntity, appendToEntity, appendToEntity, entityType, getBlendAlphaDST, getBlendAlphaSRC, getBlendColorDST, getBlendColorSRC, getBlendEquation, getBlendState, getCampaignLayer, getCombatLayer, getControlData, getCustomData, getGlobalTimer, getGlobalTimerAlpha, getLayer, getModelMatrix, getModelMatrixBuffer, getPrimeMatrix, getPrimeMatrixBuffer, getPrimeMatrixState, hasDelete, initIdentityModelMatrix, initIdentityPrimeMatrix, isAutoSubmitEntityData, isAutoSubmitModelMatrix, isAutoSubmitPrimeMatrix, isGlobalTimerOnce, isGlobalTimerOver, isTimerPaused, isTimingWhenPaused, pickModelMatrixPackage_mat4, pickPrimeMatrixPackage_mat4, reset, setAdditiveBlend, setAutoSubmitEntityData, setAutoSubmitModelMatrix, setAutoSubmitPrimeMatrix, setBlendEquation, setBlendFunc, setBlendFuncSeparate, setControlData, setCustomData, setCustomPrimeMatrix, setDefaultCampaignLayer, setDefaultCombatLayer, setDisableBlend, setFacingScale, setGlobalTimer, setGlobalTimerOnce, setLayer, setLocation, setLocation, setLocation, setLocation, setModelMatrix, setNegativeBlend, setNonePrimeMatrix, setNormalBlend, setPerspectivePrimeMatrix, setPrimeMatrix, setRotateScale, setStateVanilla, setStateVanilla, setTimerPaused, setTimingWhenPaused, setVanillaPrimeMatrix, submitModelMatrix, submitPrimeMatrix
-
Field Details
-
stateBaseBit
protected byte stateBaseBit -
stateBase
protected final float[] stateBase
-
-
Constructor Details
-
BaseIlluminantData
public BaseIlluminantData()
-
-
Method Details
-
_StatePackageStack
protected int _StatePackageStack()- Overrides:
_StatePackageStackin classBaseRenderData
-
_resetExc
protected void _resetExc()- Overrides:
_resetExcin classBaseRenderData
-
resetInstanceData
public void resetInstanceData()Description copied from class:BaseInstanceRenderDataWhen call it, will reset data and delete related objects.A.K.A.
free()for instance data resources.- Specified by:
resetInstanceDatain interfaceInstanceRenderAPI- Overrides:
resetInstanceDatain classBaseInstanceRenderData
-
submitInstance
public void submitInstance()Description copied from interface:InstanceRenderAPIUse it when you changed the instance data.Should have reserved size for it, memory expand is an expensive operation.
Make sure has call
InstanceRenderAPI.mallocInstance(InstanceType, int)when without valid memory.- Specified by:
submitInstancein interfaceInstanceRenderAPI- Overrides:
submitInstancein classBaseInstanceRenderData
-
mallocInstance
Description copied from interface:InstanceRenderAPIMake sure call it before callInstanceRenderAPI.submitInstance()when without valid memory.- Specified by:
mallocInstancein interfaceInstanceRenderAPI- Overrides:
mallocInstancein classBaseInstanceRenderData
-
getStateBit
public byte getStateBit() -
getColorArray
public float[] getColorArray()- Specified by:
getColorArrayin interfaceIlluminantAPI
-
getColorC
- Specified by:
getColorCin interfaceIlluminantAPI
-
getColor
public org.lwjgl.util.vector.Vector4f getColor()- Specified by:
getColorin interfaceIlluminantAPI
-
setColor
public void setColor(@NotNull org.lwjgl.util.vector.Vector4f color) - Specified by:
setColorin interfaceIlluminantAPI
-
setColor
public void setColor(float r, float g, float b, float a) - Specified by:
setColorin interfaceIlluminantAPI- Parameters:
a- strength of light.
-
setColor
- Specified by:
setColorin interfaceIlluminantAPI
-
getStrength
public float getStrength()- Specified by:
getStrengthin interfaceIlluminantAPI
-
setStrength
public void setStrength(float strength) - Specified by:
setStrengthin interfaceIlluminantAPI
-
getAttenuationRadius
public float getAttenuationRadius()- Specified by:
getAttenuationRadiusin interfaceIlluminantAPI
-
setAttenuationRadius
public void setAttenuationRadius(float radius) The shading range of the light.Physically incorrect, but good for performance.
- Specified by:
setAttenuationRadiusin interfaceIlluminantAPI
-
setDefaultAttenuation
public void setDefaultAttenuation()- Specified by:
setDefaultAttenuationin interfaceIlluminantAPI
-
isNoneAttenuation
public boolean isNoneAttenuation()- Specified by:
isNoneAttenuationin interfaceIlluminantAPI
-
setNoneAttenuation
public void setNoneAttenuation()- Specified by:
setNoneAttenuationin interfaceIlluminantAPI
-
isLinearAttenuation
public boolean isLinearAttenuation()- Specified by:
isLinearAttenuationin interfaceIlluminantAPI
-
setLinearAttenuation
public void setLinearAttenuation()- Specified by:
setLinearAttenuationin interfaceIlluminantAPI
-
isSquareAttenuation
public boolean isSquareAttenuation()- Specified by:
isSquareAttenuationin interfaceIlluminantAPI
-
setSquareAttenuation
public void setSquareAttenuation()- Specified by:
setSquareAttenuationin interfaceIlluminantAPI
-
isSqrtAttenuation
public boolean isSqrtAttenuation()- Specified by:
isSqrtAttenuationin interfaceIlluminantAPI
-
setSqrtAttenuation
public void setSqrtAttenuation()- Specified by:
setSqrtAttenuationin interfaceIlluminantAPI
-
submitEntityData
public void submitEntityData()Description copied from class:BaseRenderDataWithout matrix data or timer settings.- Specified by:
submitEntityDatain interfaceRenderDataAPI- Overrides:
submitEntityDatain classBaseRenderData
-
pickDataPackage_vec4
Description copied from class:BaseRenderDataOnly for system rendering calls, not applicable to developer.- Specified by:
pickDataPackage_vec4in interfaceRenderDataAPI- Overrides:
pickDataPackage_vec4in classBaseRenderData
-