View difference between Paste ID: 3seyY2aJ and jzFmSFdQ
SHOW: | | - or go back to the newest paste.
1
void CVisibilityPlugins__RenderAlphaAtomic(CLink<AlphaObjectInfo> *entry)
2
{
3
	bool zWriteEnable;
4
	bool vertexAlphaEnable;
5
	int alphaTestFunc;
6
	char alphaRef;
7
8
	char *nodeName;
9
10
	nodeName = GetFrameNodeName(entry->m_info.m_pAtomic->object.object.parent);
11
12
	if(!strncmp(v3, "moving_prop", 11))
13
	{
14
		// Store renderstates.
15
		RwRenderStateGet(rwRENDERSTATEZWRITEENABLE, &zWriteEnable);
16
		RwRenderStateGet(rwRENDERSTATEVERTEXALPHAENABLE, &vertexAlphaEnable);
17
		RwRenderStateGet(rwRENDERSTATEALPHATESTFUNCTION, &alphaTestFunc);
18
		RwRenderStateGet(rwRENDERSTATEALPHATESTFUNCTIONREF, &alphaRef);
19
20
		// Here is the trick.
21
		{
22
			//RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, false);
23
			RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTION, rwALPHATESTFUNCTIONEQUAL);
24
			RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTIONREF, 255);
25
26
			AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
27
			//entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
28
29
			RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, false);
30
			RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, true);
31
			RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTION, rwALPHATESTFUNCTIONLESS);
32
33
			AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
34
			//entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
35
		}
36
37
		// Restore renderstates.
38
		RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, zWriteEnable);
39
		RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, vertexAlphaEnable);
40
		RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTION, alphaTestFunc);
41
		RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTIONREF, alphaRef);
42
	}
43
	else if(!strncmp(v2, "static_prop", 11))
44
	{
45
		AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
46
		//entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
47
	}
48
	else
49
	{
50
		// Store renderstate.
51
		RwRenderStateGet(rwRENDERSTATEALPHATESTFUNCTIONREF, &alphaRef);
52
53
		RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTIONREF, 0);
54
55
		AtomicDefaultRenderCallBack(entry->m_info.m_pAtomic);
56
		//entry->m_info.m_pCallback(entry->m_info.m_pAtomic, entry->m_info.depth);
57
58
		// Restore renderstate.
59
		RwRenderStateSet(rwRENDERSTATEALPHATESTFUNCTIONREF, alphaRef);
60
	}
61
}