void SpriteTexture::syncToCore(const CoreSyncData& data)
		{
			char* dataPtr = (char*)data.getBuffer();

			dataPtr = rttiReadElem(mUVOffset, dataPtr);
			dataPtr = rttiReadElem(mUVScale, dataPtr);

			SPtr<Texture>* texture = (SPtr<Texture>*)dataPtr;

			mAtlasTexture = *texture;
			texture->~SPtr<Texture>();
			dataPtr += sizeof(SPtr<Texture>);

			dataPtr = rttiReadElem(mAnimation, dataPtr);
			dataPtr = rttiReadElem(mPlayback, dataPtr);
		}
Exemple #2
0
	void LightCore::syncToCore(const CoreSyncData& data)
	{
		char* dataPtr = (char*)data.getBuffer();

		UINT32 dirtyFlags = 0;
		bool oldIsActive = mIsActive;
		LightType oldType = mType;

		dataPtr = rttiReadElem(mPosition, dataPtr);
		dataPtr = rttiReadElem(mRotation, dataPtr);
		dataPtr = rttiReadElem(mType, dataPtr);
		dataPtr = rttiReadElem(mCastsShadows, dataPtr);
		dataPtr = rttiReadElem(mColor, dataPtr);
		dataPtr = rttiReadElem(mRange, dataPtr);
		dataPtr = rttiReadElem(mIntensity, dataPtr);
		dataPtr = rttiReadElem(mSpotAngle, dataPtr);
		dataPtr = rttiReadElem(mSpotFalloffAngle, dataPtr);
		dataPtr = rttiReadElem(mPhysCorrectAtten, dataPtr);
		dataPtr = rttiReadElem(mIsActive, dataPtr);
		dataPtr = rttiReadElem(dirtyFlags, dataPtr);
		dataPtr = rttiReadElem(mBounds, dataPtr);

		updateBounds();

		if (dirtyFlags == (UINT32)LightDirtyFlag::Transform)
		{
			if (mIsActive)
				gRenderer()->notifyLightUpdated(this);
		}
		else
		{
			if (oldIsActive != mIsActive)
			{
				if (mIsActive)
					gRenderer()->notifyLightAdded(this);
				else
				{
					LightType newType = mType;
					mType = oldType;
					gRenderer()->notifyLightRemoved(this);
					mType = newType;
				}
			}
			else
			{
				LightType newType = mType;
				mType = oldType;
				gRenderer()->notifyLightRemoved(this);
				mType = newType;

				gRenderer()->notifyLightAdded(this);
			}
		}
	}
	void RenderSettings::_setSyncData(UINT8* buffer, UINT32 size)
	{
		char* readSource = (char*)buffer;

		readSource = rttiReadElem(enableAutoExposure, readSource);
		readSource = rttiReadElem(enableTonemapping, readSource);
		readSource = rttiReadElem(exposureScale, readSource);
		readSource = rttiReadElem(gamma, readSource);
		readSource = rttiReadElem(enableFXAA, readSource);
		readSource = rttiReadElem(enableHDR, readSource);
		readSource = rttiReadElem(enableLighting, readSource);
		readSource = rttiReadElem(enableShadows, readSource);
		readSource = rttiReadElem(enableIndirectLighting, readSource);
		readSource = rttiReadElem(overlayOnly, readSource);
		readSource = rttiReadElem(enableSkybox, readSource);

		readSource = rttiReadElem(autoExposure.histogramLog2Min, readSource);
		readSource = rttiReadElem(autoExposure.histogramLog2Max, readSource);
		readSource = rttiReadElem(autoExposure.histogramPctLow, readSource);
		readSource = rttiReadElem(autoExposure.histogramPctHigh, readSource);
		readSource = rttiReadElem(autoExposure.minEyeAdaptation, readSource);
		readSource = rttiReadElem(autoExposure.maxEyeAdaptation, readSource);
		readSource = rttiReadElem(autoExposure.eyeAdaptationSpeedUp, readSource);
		readSource = rttiReadElem(autoExposure.eyeAdaptationSpeedDown, readSource);

		readSource = rttiReadElem(tonemapping.filmicCurveShoulderStrength, readSource);
		readSource = rttiReadElem(tonemapping.filmicCurveLinearStrength, readSource);
		readSource = rttiReadElem(tonemapping.filmicCurveLinearAngle, readSource);
		readSource = rttiReadElem(tonemapping.filmicCurveToeStrength, readSource);
		readSource = rttiReadElem(tonemapping.filmicCurveToeNumerator, readSource);
		readSource = rttiReadElem(tonemapping.filmicCurveToeDenominator, readSource);
		readSource = rttiReadElem(tonemapping.filmicCurveLinearWhitePoint, readSource);

		readSource = rttiReadElem(whiteBalance.temperature, readSource);
		readSource = rttiReadElem(whiteBalance.tint, readSource);

		readSource = rttiReadElem(colorGrading.saturation, readSource);
		readSource = rttiReadElem(colorGrading.contrast, readSource);
		readSource = rttiReadElem(colorGrading.gain, readSource);
		readSource = rttiReadElem(colorGrading.offset, readSource);

		readSource = rttiReadElem(depthOfField.enabled, readSource);
		readSource = rttiReadElem(depthOfField.focalDistance, readSource);
		readSource = rttiReadElem(depthOfField.focalRange, readSource);
		readSource = rttiReadElem(depthOfField.nearTransitionRange, readSource);
		readSource = rttiReadElem(depthOfField.farTransitionRange, readSource);
		readSource = rttiReadElem(depthOfField.nearBlurAmount, readSource);
		readSource = rttiReadElem(depthOfField.farBlurAmount, readSource);

		readSource = rttiReadElem(ambientOcclusion.enabled, readSource);
		readSource = rttiReadElem(ambientOcclusion.radius, readSource);
		readSource = rttiReadElem(ambientOcclusion.bias, readSource);
		readSource = rttiReadElem(ambientOcclusion.fadeRange, readSource);
		readSource = rttiReadElem(ambientOcclusion.fadeDistance, readSource);
		readSource = rttiReadElem(ambientOcclusion.intensity, readSource);
		readSource = rttiReadElem(ambientOcclusion.power, readSource);
		readSource = rttiReadElem(ambientOcclusion.quality, readSource);

		readSource = rttiReadElem(screenSpaceReflections.enabled, readSource);
		readSource = rttiReadElem(screenSpaceReflections.intensity, readSource);
		readSource = rttiReadElem(screenSpaceReflections.maxRoughness, readSource);
		readSource = rttiReadElem(screenSpaceReflections.quality, readSource);

		readSource = rttiReadElem(shadowSettings.directionalShadowDistance, readSource);
		readSource = rttiReadElem(shadowSettings.numCascades, readSource);
		readSource = rttiReadElem(shadowSettings.cascadeDistributionExponent, readSource);
		readSource = rttiReadElem(shadowSettings.shadowFilteringQuality, readSource);
	}