Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit 246b5a5

Browse files
committed
Create RenderTexture version of GetScreenSpaceTemporaryRT
In the places that create a RenderTexture, they need a non-desc dependent function as well. Plus, use it in the ScalableAO infrastructure.
1 parent 3ef7f97 commit 246b5a5

2 files changed

Lines changed: 31 additions & 9 deletions

File tree

PostProcessing/Runtime/Effects/ScalableAO.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,11 @@ void DoLazyInitialization(PostProcessRenderContext context)
4848

4949
if (m_Result == null || !m_Result.IsCreated())
5050
{
51-
var tempAORTDesc = context.GetDescriptor(0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
52-
5351
// Initial allocation
54-
m_Result = new RenderTexture(tempAORTDesc)
55-
{
56-
hideFlags = HideFlags.DontSave,
57-
filterMode = FilterMode.Bilinear
58-
};
52+
m_Result = context.GetScreenSpaceTemporaryRT(0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
53+
m_Result.hideFlags = HideFlags.DontSave;
54+
m_Result.filterMode = FilterMode.Bilinear;
55+
5956
reset = true;
6057
}
6158
else if (m_Result.width != context.width || m_Result.height != context.height) // TODO: convert this to RT width when I implement it

PostProcessing/Runtime/PostProcessRenderContext.cs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,41 @@ public void GetScreenSpaceTemporaryRT(CommandBuffer cmd, int nameID,
141141
}
142142
cmd.GetTemporaryRT(nameID, desc, filter);
143143
#else
144+
int actualWidth = width;
145+
int actualHeight = height
144146
if (dimScaler > 1)
145147
{
146-
int actualWidth = width / dimScaler;
147-
int actualHeight = height / dimScaler;
148+
actualWidth /= dimScaler;
149+
actualHeight /= dimScaler;
148150
}
149151
cmd.GetTemporaryRT(nameID, width, height, depthBufferBits, filter, colorFormat, readWrite);
150152
// TODO: How to handle MSAA for XR in older versions? Query cam?
151153
#endif
152154
}
153155

156+
public RenderTexture GetScreenSpaceTemporaryRT(int depthBufferBits = 0, RenderTextureFormat colorFormat = RenderTextureFormat.Default,
157+
RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default, int dimScaler = 1)
158+
{
159+
#if UNITY_2017_2_OR_NEWER
160+
var desc = GetDescriptor(depthBufferBits, colorFormat, readWrite);
161+
if (dimScaler > 1)
162+
{
163+
desc.width /= dimScaler;
164+
desc.height /= dimScaler;
165+
}
166+
return RenderTexture.GetTemporary(desc);
167+
#else
168+
int actualWidth = width;
169+
int actualHeight = height
170+
if (dimScaler > 1)
171+
{
172+
actualWidth /= dimScaler;
173+
actualHeight /= dimScaler;
174+
}
175+
return RenderTexture.GetTemporary(actualWidth, actualHeight, depthBufferBits, colorFormat, readWrite);
176+
#endif
177+
}
178+
154179
// Current active rendering eye (for XR)
155180
public int xrActiveEye { get; private set; }
156181

0 commit comments

Comments
 (0)