修订版 | 5aed6816050b6c93bb8c5412f8871963496d8f33 (tree) |
---|---|
时间 | 2019-11-05 05:35:37 |
作者 | <Kuddel@c0f5...> |
- replaced oapiGetSize(hObj) calls of VObject descendants by 'size' (no functional change).
- some trailing spaces removed by IDE (no functional change).
@@ -100,7 +100,7 @@ | ||
100 | 100 | Grp = new GROUPREC[nGrp]; memset2(Grp, 0, sizeof(GROUPREC) * nGrp); |
101 | 101 | |
102 | 102 | for (DWORD i=0;i<nGrp;i++) { |
103 | - SetGroupRec(i, hGroup[i]); | |
103 | + SetGroupRec(i, hGroup[i]); | |
104 | 104 | Grp[i].TexIdxEx[0] = SPEC_DEFAULT; |
105 | 105 | Grp[i].TexMixEx[0] = 0.0f; |
106 | 106 | Grp[i].TexIdx = i; |
@@ -137,7 +137,7 @@ | ||
137 | 137 | D3D9Mesh::D3D9Mesh(const MESHGROUPEX *pGroup, const MATERIAL *pMat, D3D9ClientSurface *pTex) : D3D9Effect() |
138 | 138 | { |
139 | 139 | Null(); |
140 | - | |
140 | + | |
141 | 141 | // template meshes are stored in system memory |
142 | 142 | nGrp = 1; |
143 | 143 | Grp = new GROUPREC[nGrp]; memset2(Grp, 0, sizeof(GROUPREC) * nGrp); |
@@ -149,7 +149,7 @@ | ||
149 | 149 | Mtrl = new D3D9MatExt[nMtrl]; |
150 | 150 | pGrpTF = new D3DXMATRIX[nGrp]; |
151 | 151 | |
152 | - SetGroupRec(0, pGroup); | |
152 | + SetGroupRec(0, pGroup); | |
153 | 153 | |
154 | 154 | HR(pDev->CreateVertexBuffer(MaxVert*sizeof(NMVERTEX), 0, 0, D3DPOOL_DEFAULT, &pVB, NULL)); |
155 | 155 | HR(pDev->CreateIndexBuffer(MaxFace*sizeof(WORD)*3, 0, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &pIB, NULL)); |
@@ -184,7 +184,7 @@ | ||
184 | 184 | MaxVert = mesh.MaxVert; |
185 | 185 | |
186 | 186 | memcpy2(Grp, mesh.Grp, sizeof(GROUPREC)*nGrp); |
187 | - | |
187 | + | |
188 | 188 | HR(pDev->CreateVertexBuffer(MaxVert*sizeof(NMVERTEX), 0, 0, D3DPOOL_DEFAULT, &pVB, NULL)); |
189 | 189 | HR(pDev->CreateIndexBuffer(MaxFace*sizeof(WORD)*3, 0, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &pIB, NULL)); |
190 | 190 |
@@ -198,7 +198,7 @@ | ||
198 | 198 | memcpy2(pITgt, pISrc, MaxFace*6); |
199 | 199 | HR(mesh.pIB->Unlock()); |
200 | 200 | HR(pIB->Unlock()); |
201 | - | |
201 | + | |
202 | 202 | |
203 | 203 | HR(mesh.pVB->Lock(0, 0, (LPVOID*)&pVSrc, 0)); |
204 | 204 | HR(pVB->Lock(0, 0, (LPVOID*)&pVTgt, 0)); |
@@ -273,7 +273,7 @@ | ||
273 | 273 | void D3D9Mesh::Release() |
274 | 274 | { |
275 | 275 | SAFE_DELETEA(Locals); |
276 | - SAFE_DELETEA(Grp); | |
276 | + SAFE_DELETEA(Grp); | |
277 | 277 | SAFE_DELETEA(Tex); |
278 | 278 | SAFE_DELETEA(Mtrl); |
279 | 279 | SAFE_DELETEA(pGrpTF); |
@@ -534,7 +534,7 @@ | ||
534 | 534 | if (!pVB) return; |
535 | 535 | |
536 | 536 | if (bTextured) { |
537 | - | |
537 | + | |
538 | 538 | XMVECTOR *ta = (XMVECTOR*)_aligned_malloc(sizeof(__m128)*(nVtx+1), 16); |
539 | 539 | XMVECTOR zero = XMVectorSet(0, 0, 0, 0); |
540 | 540 | for (DWORD i = 0; i < nVtx; i++) ta[i] = zero; |
@@ -670,7 +670,7 @@ | ||
670 | 670 | Grp[i].nFace = mg->nIdx/3; |
671 | 671 | Grp[i].nVert = mg->nVtx; |
672 | 672 | MaxFace += Grp[i].nFace; |
673 | - MaxVert += Grp[i].nVert; | |
673 | + MaxVert += Grp[i].nVert; | |
674 | 674 | } |
675 | 675 | |
676 | 676 |
@@ -784,7 +784,7 @@ | ||
784 | 784 | pIB->Unlock(); |
785 | 785 | } |
786 | 786 | } |
787 | - | |
787 | + | |
788 | 788 | if (mg->nVtx>0) BoundingBox(pVert, mg->nVtx, &grp->BBox); |
789 | 789 | else D9ZeroAABB(&grp->BBox); |
790 | 790 |
@@ -864,7 +864,7 @@ | ||
864 | 864 | NTVERTEX Convert(NMVERTEX &v) |
865 | 865 | { |
866 | 866 | NTVERTEX n; |
867 | - n.x = v.x; n.y = v.y; n.z = v.z; | |
867 | + n.x = v.x; n.y = v.y; n.z = v.z; | |
868 | 868 | n.nx = v.nx; n.ny = v.ny; n.nz = v.nz; |
869 | 869 | n.tu = v.u; n.tv = v.v; |
870 | 870 | return n; |
@@ -1154,42 +1154,42 @@ | ||
1154 | 1154 | // SET --------------------------------------------------------------- |
1155 | 1155 | if (bSet && value) { |
1156 | 1156 | switch (mid) { |
1157 | - case MESHM_DIFFUSE: | |
1158 | - Mtrl[idx].Diffuse = *((D3DXVECTOR4*)value); | |
1157 | + case MESHM_DIFFUSE: | |
1158 | + Mtrl[idx].Diffuse = *((D3DXVECTOR4*)value); | |
1159 | 1159 | Mtrl[idx].ModFlags |= D3D9MATEX_DIFFUSE; |
1160 | 1160 | bMtrlModidied = true; |
1161 | 1161 | return 0; |
1162 | - case MESHM_AMBIENT: | |
1163 | - Mtrl[idx].Ambient = *((D3DXVECTOR3*)value); | |
1162 | + case MESHM_AMBIENT: | |
1163 | + Mtrl[idx].Ambient = *((D3DXVECTOR3*)value); | |
1164 | 1164 | Mtrl[idx].ModFlags |= D3D9MATEX_AMBIENT; |
1165 | 1165 | bMtrlModidied = true; |
1166 | 1166 | return 0; |
1167 | - case MESHM_SPECULAR: | |
1168 | - Mtrl[idx].Specular = *((D3DXVECTOR4*)value); | |
1167 | + case MESHM_SPECULAR: | |
1168 | + Mtrl[idx].Specular = *((D3DXVECTOR4*)value); | |
1169 | 1169 | Mtrl[idx].ModFlags |= D3D9MATEX_SPECULAR; |
1170 | 1170 | bMtrlModidied = true; |
1171 | 1171 | return 0; |
1172 | 1172 | case MESHM_EMISSION: |
1173 | - Mtrl[idx].Emissive = *((D3DXVECTOR3*)value); | |
1173 | + Mtrl[idx].Emissive = *((D3DXVECTOR3*)value); | |
1174 | 1174 | Mtrl[idx].ModFlags |= D3D9MATEX_EMISSIVE; |
1175 | 1175 | bMtrlModidied = true; |
1176 | 1176 | return 0; |
1177 | - case MESHM_EMISSION2: | |
1178 | - Mtrl[idx].Emission2 = *((D3DXVECTOR3*)value); | |
1177 | + case MESHM_EMISSION2: | |
1178 | + Mtrl[idx].Emission2 = *((D3DXVECTOR3*)value); | |
1179 | 1179 | Mtrl[idx].ModFlags |= D3D9MATEX_EMISSION2; |
1180 | 1180 | bMtrlModidied = true; |
1181 | 1181 | return 0; |
1182 | - case MESHM_REFLECT: | |
1183 | - Mtrl[idx].Reflect = *((D3DXVECTOR3*)value); | |
1182 | + case MESHM_REFLECT: | |
1183 | + Mtrl[idx].Reflect = *((D3DXVECTOR3*)value); | |
1184 | 1184 | Mtrl[idx].ModFlags |= D3D9MATEX_REFLECT; |
1185 | 1185 | bMtrlModidied = true; |
1186 | 1186 | return 0; |
1187 | 1187 | case MESHM_ROUGHNESS: |
1188 | - Mtrl[idx].Roughness = value->g; | |
1188 | + Mtrl[idx].Roughness = value->g; | |
1189 | 1189 | Mtrl[idx].ModFlags |= D3D9MATEX_ROUGHNESS; |
1190 | 1190 | bMtrlModidied = true; |
1191 | 1191 | return 0; |
1192 | - case MESHM_FRESNEL: | |
1192 | + case MESHM_FRESNEL: | |
1193 | 1193 | Mtrl[idx].Fresnel = *((D3DXVECTOR3*)value); |
1194 | 1194 | Mtrl[idx].ModFlags |= D3D9MATEX_FRESNEL; |
1195 | 1195 | bMtrlModidied = true; |
@@ -1256,24 +1256,24 @@ | ||
1256 | 1256 | Mtrl[idx].ModFlags &= (~D3D9MATEX_EMISSIVE); |
1257 | 1257 | bMtrlModidied = true; |
1258 | 1258 | return 0; |
1259 | - case MESHM_EMISSION2: | |
1260 | - Mtrl[idx].Emission2 = D3DXVECTOR3(1, 1, 1); | |
1261 | - Mtrl[idx].ModFlags &= (~D3D9MATEX_EMISSION2); | |
1259 | + case MESHM_EMISSION2: | |
1260 | + Mtrl[idx].Emission2 = D3DXVECTOR3(1, 1, 1); | |
1261 | + Mtrl[idx].ModFlags &= (~D3D9MATEX_EMISSION2); | |
1262 | 1262 | bMtrlModidied = true; |
1263 | 1263 | return 0; |
1264 | - case MESHM_REFLECT: | |
1265 | - Mtrl[idx].Reflect = D3DXVECTOR3(0,0,0); | |
1266 | - Mtrl[idx].ModFlags &= (~D3D9MATEX_REFLECT); | |
1264 | + case MESHM_REFLECT: | |
1265 | + Mtrl[idx].Reflect = D3DXVECTOR3(0,0,0); | |
1266 | + Mtrl[idx].ModFlags &= (~D3D9MATEX_REFLECT); | |
1267 | 1267 | bMtrlModidied = true; |
1268 | 1268 | return 0; |
1269 | - case MESHM_ROUGHNESS: | |
1270 | - Mtrl[idx].Roughness = 0.0f; | |
1271 | - Mtrl[idx].ModFlags &= (~D3D9MATEX_ROUGHNESS); | |
1269 | + case MESHM_ROUGHNESS: | |
1270 | + Mtrl[idx].Roughness = 0.0f; | |
1271 | + Mtrl[idx].ModFlags &= (~D3D9MATEX_ROUGHNESS); | |
1272 | 1272 | bMtrlModidied = true; |
1273 | 1273 | return 0; |
1274 | - case MESHM_FRESNEL: | |
1275 | - Mtrl[idx].Fresnel = D3DXVECTOR3(1, 0, 1024.0f); | |
1276 | - Mtrl[idx].ModFlags &= (~D3D9MATEX_FRESNEL); | |
1274 | + case MESHM_FRESNEL: | |
1275 | + Mtrl[idx].Fresnel = D3DXVECTOR3(1, 0, 1024.0f); | |
1276 | + Mtrl[idx].ModFlags &= (~D3D9MATEX_FRESNEL); | |
1277 | 1277 | bMtrlModidied = true; |
1278 | 1278 | return 0; |
1279 | 1279 | } |
@@ -1387,7 +1387,7 @@ | ||
1387 | 1387 | |
1388 | 1388 | Grp[g].Shader = SHADER_PBR; |
1389 | 1389 | Grp[g].PBRStatus = 0; |
1390 | - | |
1390 | + | |
1391 | 1391 | DWORD ti = Grp[g].TexIdx; |
1392 | 1392 | |
1393 | 1393 | if (Tex[ti] != NULL) { |
@@ -1424,7 +1424,7 @@ | ||
1424 | 1424 | // |
1425 | 1425 | void D3D9Mesh::Render(const LPD3DXMATRIX pW, int iTech, LPDIRECT3DCUBETEXTURE9 *pEnv, int nEnv) |
1426 | 1426 | { |
1427 | - | |
1427 | + | |
1428 | 1428 | _TRACE; |
1429 | 1429 | |
1430 | 1430 | // Check material status |
@@ -1465,11 +1465,11 @@ | ||
1465 | 1465 | bool bMeshCull = true; |
1466 | 1466 | bool bTextured = true; |
1467 | 1467 | bool bGroupCull = true; |
1468 | - bool bUpdateFlow = true; | |
1468 | + bool bUpdateFlow = true; | |
1469 | 1469 | bool bShadowProjection = false; |
1470 | 1470 | |
1471 | - | |
1472 | - | |
1471 | + | |
1472 | + | |
1473 | 1473 | switch (iTech) { |
1474 | 1474 | case RENDER_VC: |
1475 | 1475 | EnablePlanetGlow(false); |
@@ -1510,7 +1510,7 @@ | ||
1510 | 1510 | } |
1511 | 1511 | |
1512 | 1512 | D3DXMATRIX mWorldMesh; |
1513 | - | |
1513 | + | |
1514 | 1514 | if (bGlobalTF) D3DXMatrixMultiply(&mWorldMesh, &mTransform, pW); |
1515 | 1515 | else mWorldMesh = *pW; |
1516 | 1516 |
@@ -1518,7 +1518,7 @@ | ||
1518 | 1518 | |
1519 | 1519 | D3D9MatExt *mat, *old_mat = NULL; |
1520 | 1520 | LPD3D9CLIENTSURFACE old_tex = NULL; |
1521 | - | |
1521 | + | |
1522 | 1522 | pDev->SetVertexDeclaration(pMeshVertexDecl); |
1523 | 1523 | pDev->SetStreamSource(0, pVB, 0, sizeof(NMVERTEX)); |
1524 | 1524 | pDev->SetIndices(pIB); |
@@ -1549,7 +1549,7 @@ | ||
1549 | 1549 | int nMeshLights = 0; |
1550 | 1550 | D3DXVECTOR3 pos; |
1551 | 1551 | D3DXVec3TransformCoord(&pos, &D3DXVECTOR3f4(BBox.bs), pW); |
1552 | - | |
1552 | + | |
1553 | 1553 | // Find all local lights effecting this mesh ------------------------------------------ |
1554 | 1554 | // |
1555 | 1555 | for (int i = 0; i < nSceneLights; i++) { |
@@ -1564,21 +1564,21 @@ | ||
1564 | 1564 | |
1565 | 1565 | FX->SetBool(eLightsEnabled, true); |
1566 | 1566 | |
1567 | - // If any, Sort the list based on illuminance ------------------------------------------- | |
1567 | + // If any, Sort the list based on illuminance ------------------------------------------- | |
1568 | 1568 | qsort(LightList, nMeshLights, sizeof(_LightList), compare_lights); |
1569 | 1569 | |
1570 | 1570 | nMeshLights = min(nMeshLights, Config->MaxLights()); |
1571 | 1571 | |
1572 | 1572 | // Create a list of N most effective lights --------------------------------------------- |
1573 | - for (int i = 0; i < nMeshLights; i++) memcpy2(&Locals[i], &pLights[LightList[i].idx], sizeof(LightStruct)); | |
1573 | + for (int i = 0; i < nMeshLights; i++) memcpy2(&Locals[i], &pLights[LightList[i].idx], sizeof(LightStruct)); | |
1574 | 1574 | } |
1575 | 1575 | } |
1576 | 1576 | |
1577 | 1577 | FX->SetValue(eLights, Locals, sizeof(LightStruct) * Config->MaxLights()); |
1578 | - | |
1578 | + | |
1579 | 1579 | |
1580 | 1580 | if (nEnv >= 1 && pEnv[0]) FX->SetTexture(eEnvMapA, pEnv[0]); |
1581 | - | |
1581 | + | |
1582 | 1582 | |
1583 | 1583 | UINT numPasses = 0; |
1584 | 1584 | HR(FX->Begin(&numPasses, D3DXFX_DONOTSAVESTATE)); |
@@ -1592,10 +1592,10 @@ | ||
1592 | 1592 | |
1593 | 1593 | for (DWORD g=0; g<nGrp; g++) { |
1594 | 1594 | |
1595 | - | |
1595 | + | |
1596 | 1596 | bool bHUD = (Grp[g].MFDScreenId == 0x100); |
1597 | 1597 | |
1598 | - // Inline engine renders HUD/MFDs in a separate rendering pass and flag 0x2 is used to disable rendering during the main rendering pass | |
1598 | + // Inline engine renders HUD/MFDs in a separate rendering pass and flag 0x2 is used to disable rendering during the main rendering pass | |
1599 | 1599 | if ((Grp[g].UsrFlag & 0x2) && (!bHUD)) continue; |
1600 | 1600 | |
1601 | 1601 |
@@ -1625,7 +1625,7 @@ | ||
1625 | 1625 | HR(FX->BeginPass(Grp[g].Shader)); |
1626 | 1626 | CurrentShader = Grp[g].Shader; |
1627 | 1627 | } |
1628 | - | |
1628 | + | |
1629 | 1629 | |
1630 | 1630 | |
1631 | 1631 | // Mesh Debugger ------------------------------------------------------------------------------------------- |
@@ -1682,7 +1682,7 @@ | ||
1682 | 1682 | |
1683 | 1683 | if (CurrentShader == SHADER_LEGACY) { |
1684 | 1684 | if (tni && Grp[g].TexMixEx[0] < 0.5f) tni = 0; |
1685 | - if (tni && Tex[tni]) FX->SetTexture(eEmisMap, Tex[tni]->GetTexture()); | |
1685 | + if (tni && Tex[tni]) FX->SetTexture(eEmisMap, Tex[tni]->GetTexture()); | |
1686 | 1686 | } |
1687 | 1687 | else { |
1688 | 1688 |
@@ -1747,14 +1747,14 @@ | ||
1747 | 1747 | old_mat = NULL; |
1748 | 1748 | reset(FC); |
1749 | 1749 | bUpdateFlow = true; |
1750 | - | |
1750 | + | |
1751 | 1751 | SURFHANDLE hMFD; |
1752 | 1752 | if (bHUD) hMFD = gc->GetVCHUDSurface(&hudspec); |
1753 | 1753 | else hMFD = gc->GetMFDSurface(Grp[g].MFDScreenId - 1); |
1754 | 1754 | |
1755 | 1755 | if (hMFD) FX->SetTexture(eTex0, SURFACE(hMFD)->GetTexture()); |
1756 | 1756 | else FX->SetTexture(eTex0, gc->GetDefaultTexture()->GetTexture()); |
1757 | - | |
1757 | + | |
1758 | 1758 | if (Grp[g].MtrlIdx==SPEC_DEFAULT) mat = &mfdmat; |
1759 | 1759 | else mat = &Mtrl[Grp[g].MtrlIdx]; |
1760 | 1760 |
@@ -1801,7 +1801,7 @@ | ||
1801 | 1801 | bUpdateFlow = false; |
1802 | 1802 | HR(FX->SetValue(eFlow, &FC, sizeof(TexFlow))); |
1803 | 1803 | } |
1804 | - | |
1804 | + | |
1805 | 1805 | bool bPBR = (Grp[g].PBRStatus & 0xF) == (0x8 + 0x4); |
1806 | 1806 | bool bRGH = (Grp[g].PBRStatus & 0xE) == (0x8 + 0x2); |
1807 | 1807 | bool bNoL = (Grp[g].UsrFlag & 0x04) != 0; |
@@ -1816,7 +1816,7 @@ | ||
1816 | 1816 | FX->SetBool(eNoColor, bNoC); |
1817 | 1817 | FX->SetBool(eSwitch, bPBR); |
1818 | 1818 | FX->SetBool(eRghnSw, bRGH); |
1819 | - | |
1819 | + | |
1820 | 1820 | |
1821 | 1821 | // Update envmap and fresnel status as required |
1822 | 1822 | if (bRefl) { |
@@ -2054,17 +2054,17 @@ | ||
2054 | 2054 | |
2055 | 2055 | FX->SetBool(eLightsEnabled, true); |
2056 | 2056 | |
2057 | - // If any, Sort the list based on illuminance ------------------------------------------- | |
2057 | + // If any, Sort the list based on illuminance ------------------------------------------- | |
2058 | 2058 | qsort(LightList, nMeshLights, sizeof(_LightList), compare_lights); |
2059 | 2059 | |
2060 | 2060 | nMeshLights = min(nMeshLights, Config->MaxLights()); |
2061 | 2061 | |
2062 | 2062 | // Create a list of N most effective lights --------------------------------------------- |
2063 | 2063 | int i; |
2064 | - for (i = 0; i < nMeshLights; i++) memcpy2(&Locals[i], &pLights[LightList[i].idx], sizeof(LightStruct)); | |
2064 | + for (i = 0; i < nMeshLights; i++) memcpy2(&Locals[i], &pLights[LightList[i].idx], sizeof(LightStruct)); | |
2065 | 2065 | } |
2066 | 2066 | } |
2067 | - | |
2067 | + | |
2068 | 2068 | FX->SetValue(eLights, Locals, sizeof(LightStruct) * Config->MaxLights()); |
2069 | 2069 | |
2070 | 2070 | UINT numPasses = 0; |
@@ -2132,7 +2132,7 @@ | ||
2132 | 2132 | D3D9Stats.Mesh.TexChanges++; |
2133 | 2133 | |
2134 | 2134 | if (DebugControls::IsActive()) if (pTune) FX->SetValue(eTune, &pTune[ti], sizeof(D3D9Tune)); |
2135 | - | |
2135 | + | |
2136 | 2136 | old_tex = Tex[ti]; |
2137 | 2137 | FX->SetTexture(eTex0, Tex[ti]->GetTexture()); |
2138 | 2138 |
@@ -2327,7 +2327,7 @@ | ||
2327 | 2327 | D3D9MatExt *mat, *old_mat = NULL; |
2328 | 2328 | LPD3D9CLIENTSURFACE old_tex = NULL; |
2329 | 2329 | LPDIRECT3DTEXTURE9 pNorm = NULL; |
2330 | - | |
2330 | + | |
2331 | 2331 | pDev->SetVertexDeclaration(pMeshVertexDecl); |
2332 | 2332 | pDev->SetStreamSource(0, pVB, 0, sizeof(NMVERTEX)); |
2333 | 2333 | pDev->SetIndices(pIB); |
@@ -2341,8 +2341,8 @@ | ||
2341 | 2341 | //FX->SetBool(eUseSpec, false); |
2342 | 2342 | //FX->SetBool(eUseEmis, false); |
2343 | 2343 | //FX->SetBool(eUseRefl, false); |
2344 | - | |
2345 | - | |
2344 | + | |
2345 | + | |
2346 | 2346 | UINT numPasses = 0; |
2347 | 2347 | HR(FX->Begin(&numPasses, D3DXFX_DONOTSAVESTATE)); |
2348 | 2348 |
@@ -2363,7 +2363,7 @@ | ||
2363 | 2363 | DWORD tni=Grp[g].TexIdxEx[0]; |
2364 | 2364 | |
2365 | 2365 | if (ti==0 && tni!=0) continue; |
2366 | - | |
2366 | + | |
2367 | 2367 | if (Tex[ti]==NULL || ti==0) bTextured = false; |
2368 | 2368 | else bTextured = true; |
2369 | 2369 |
@@ -2440,7 +2440,7 @@ | ||
2440 | 2440 | if (!pIB || !pGB) return; |
2441 | 2441 | |
2442 | 2442 | D3DXMATRIX GroupMatrix, mWorldMesh; UINT numPasses = 0; |
2443 | - | |
2443 | + | |
2444 | 2444 | if (bGlobalTF) D3DXMatrixMultiply(&mWorldMesh, &mTransform, pW); |
2445 | 2445 | else mWorldMesh = *pW; |
2446 | 2446 |
@@ -2461,7 +2461,7 @@ | ||
2461 | 2461 | |
2462 | 2462 | bool bInit = true; |
2463 | 2463 | bool bCurrentState = false; |
2464 | - | |
2464 | + | |
2465 | 2465 | for (DWORD g = 0; g < nGrp; g++) { |
2466 | 2466 | |
2467 | 2467 |
@@ -2485,7 +2485,7 @@ | ||
2485 | 2485 | |
2486 | 2486 | |
2487 | 2487 | if (bShadowMap) { |
2488 | - | |
2488 | + | |
2489 | 2489 | bool bDisable = (Grp[g].UsrFlag & 0x1) != 0; |
2490 | 2490 | |
2491 | 2491 | if (bDisable != bCurrentState) { |
@@ -2516,7 +2516,7 @@ | ||
2516 | 2516 | void D3D9Mesh::RenderShadowsEx(float alpha, const LPD3DXMATRIX pP, const LPD3DXMATRIX pW, const D3DXVECTOR4 *light, const D3DXVECTOR4 *param) |
2517 | 2517 | { |
2518 | 2518 | if (!pVB || !pGB) return; |
2519 | - | |
2519 | + | |
2520 | 2520 | D3D9Stats.Mesh.Meshes++; |
2521 | 2521 | |
2522 | 2522 | pDev->SetVertexDeclaration(pVector4Decl); |
@@ -2746,9 +2746,9 @@ | ||
2746 | 2746 | void D3D9Mesh::SetRotation(D3DXMATRIX &rot) |
2747 | 2747 | { |
2748 | 2748 | bGlobalTF = true; |
2749 | - | |
2749 | + | |
2750 | 2750 | memcpy(&mTransform, &rot, 48); |
2751 | - | |
2751 | + | |
2752 | 2752 | D3DXMatrixInverse(&mTransformInv, NULL, &mTransform); |
2753 | 2753 | |
2754 | 2754 | for (DWORD i = 0; i<nGrp; i++) { |
@@ -2869,7 +2869,7 @@ | ||
2869 | 2869 | |
2870 | 2870 | float dst = D3DXVec3Dot(&bs, vDir); |
2871 | 2871 | float len2 = D3DXVec3Dot(&bs, &bs); |
2872 | - | |
2872 | + | |
2873 | 2873 | if (dst < -rad) continue; |
2874 | 2874 | if (sqrt(len2 - dst*dst) > rad) continue; |
2875 | 2875 |
@@ -2880,7 +2880,7 @@ | ||
2880 | 2880 | |
2881 | 2881 | WORD *pIdc = &pIBSys[Grp[g].FaceOff*3]; |
2882 | 2882 | D3DXVECTOR3 *pVrt = &pGBSys[Grp[g].VertOff]; |
2883 | - | |
2883 | + | |
2884 | 2884 | D3DXMATRIX mWI; float det; |
2885 | 2885 | D3DXMatrixInverse(&mWI, &det, &mW); |
2886 | 2886 |
@@ -2894,7 +2894,7 @@ | ||
2894 | 2894 | WORD a = pIdc[i*3+0]; |
2895 | 2895 | WORD b = pIdc[i*3+1]; |
2896 | 2896 | WORD c = pIdc[i*3+2]; |
2897 | - | |
2897 | + | |
2898 | 2898 | _a = pVrt[a]; |
2899 | 2899 | _b = pVrt[b]; |
2900 | 2900 | _c = pVrt[c]; |
@@ -2902,7 +2902,7 @@ | ||
2902 | 2902 | float u, v, dst; |
2903 | 2903 | |
2904 | 2904 | D3DXVec3Cross(&cp, &(_c - _b), &(_a - _b)); |
2905 | - | |
2905 | + | |
2906 | 2906 | if (D3DXVec3Dot(&cp, &dir)<0) { |
2907 | 2907 | if (D3DXIntersectTri(&_c, &_b, &_a, &pos, &dir, &u, &v, &dst)) { |
2908 | 2908 | if (dst > 0.1f) { |
@@ -2920,7 +2920,7 @@ | ||
2920 | 2920 | } |
2921 | 2921 | } |
2922 | 2922 | |
2923 | - | |
2923 | + | |
2924 | 2924 | if (result.idx >= 0 && result.group >= 0) { |
2925 | 2925 | |
2926 | 2926 | int i = result.idx; |
@@ -2956,7 +2956,7 @@ | ||
2956 | 2956 | D3DXVec3Normalize(&result.normal, &cp); |
2957 | 2957 | |
2958 | 2958 | D3DXVECTOR3 p = (_b * u) + (_a * v) + (_c * (1.0f - u - v)); |
2959 | - D3DXVec3TransformCoord(&result.pos, &p, &mW); | |
2959 | + D3DXVec3TransformCoord(&result.pos, &p, &mW); | |
2960 | 2960 | } |
2961 | 2961 | |
2962 | 2962 | return result; |
@@ -3133,4 +3133,4 @@ | ||
3133 | 3133 | UpdateGeometryBuffer(); |
3134 | 3134 | CheckMeshStatus(); |
3135 | 3135 | return true; |
3136 | -} | |
\ No newline at end of file | ||
3136 | +} |
@@ -20,7 +20,7 @@ | ||
20 | 20 | #include "D3D9Client.h" |
21 | 21 | #include "D3D9Effect.h" |
22 | 22 | #include "AABBUtil.h" |
23 | -#include <d3d9.h> | |
23 | +#include <d3d9.h> | |
24 | 24 | #include <d3dx9.h> |
25 | 25 | #include <vector> |
26 | 26 |
@@ -54,7 +54,7 @@ | ||
54 | 54 | float illuminace; |
55 | 55 | }; |
56 | 56 | |
57 | - | |
57 | + | |
58 | 58 | /** |
59 | 59 | * \brief Mesh object with D3D9-specific vertex buffer |
60 | 60 | * |
@@ -62,7 +62,7 @@ | ||
62 | 62 | * textures. |
63 | 63 | */ |
64 | 64 | |
65 | -class D3D9Mesh : private D3D9Effect | |
65 | +class D3D9Mesh : private D3D9Effect | |
66 | 66 | { |
67 | 67 | |
68 | 68 | public: |
@@ -72,7 +72,7 @@ | ||
72 | 72 | bool bMtrlModidied; |
73 | 73 | |
74 | 74 | D9BBox BBox; |
75 | - | |
75 | + | |
76 | 76 | struct GROUPREC { // mesh group definition |
77 | 77 | DWORD VertOff; // Main mesh Vertex Offset |
78 | 78 | DWORD FaceOff; // Main mesh Index Offset |
@@ -92,7 +92,7 @@ | ||
92 | 92 | bool bUpdate; // Bounding box update required |
93 | 93 | bool bDualSided; |
94 | 94 | bool bDeleted; // This entry is deleted by DelGroup() |
95 | - bool bRendered; | |
95 | + bool bRendered; | |
96 | 96 | //bool bAdvanced; // This group reguires more advanced shader than default one |
97 | 97 | D3DXMATRIX Transform; // Group specific transformation matrix |
98 | 98 | D9BBox BBox; |
@@ -102,7 +102,7 @@ | ||
102 | 102 | |
103 | 103 | explicit D3D9Mesh(const char *name); |
104 | 104 | D3D9Mesh(const D3D9Mesh &mesh) : D3D9Effect() { Copy(mesh); } |
105 | - | |
105 | + | |
106 | 106 | /** |
107 | 107 | * \brief Create a mesh consisting of a single mesh group |
108 | 108 | * \param client graphics client |
@@ -125,12 +125,12 @@ | ||
125 | 125 | void UnLockIndexBuffer(); |
126 | 126 | NMVERTEX * LockVertexBuffer(DWORD grp, DWORD flags); |
127 | 127 | WORD * LockIndexBuffer(DWORD grp, DWORD flags); |
128 | - | |
128 | + | |
129 | 129 | void SetName(const char *name); |
130 | 130 | const char * GetName() const { return name; } |
131 | 131 | |
132 | 132 | void SetClass(DWORD cl) { vClass = cl; } |
133 | - | |
133 | + | |
134 | 134 | |
135 | 135 | /** |
136 | 136 | * \brief Check if a mesh is casting shadows |
@@ -151,7 +151,7 @@ | ||
151 | 151 | * \brief Returns number of material specifications. |
152 | 152 | * \return Number of materials. |
153 | 153 | */ |
154 | - SURFHANDLE GetTexture(DWORD idx) const { return Tex[idx]; } | |
154 | + SURFHANDLE GetTexture(DWORD idx) const { return Tex[idx]; } | |
155 | 155 | bool HasTexture(SURFHANDLE hSurf); |
156 | 156 | bool IsReflective() const { return bIsReflective; } |
157 | 157 |
@@ -210,7 +210,7 @@ | ||
210 | 210 | void RenderRings(const LPD3DXMATRIX pW, LPDIRECT3DTEXTURE9 pTex); |
211 | 211 | void RenderRings2(const LPD3DXMATRIX pW, LPDIRECT3DTEXTURE9 pTex, float irad, float orad); |
212 | 212 | void RenderAxisVector(LPD3DXMATRIX pW, const LPD3DXCOLOR pColor, float len); |
213 | - | |
213 | + | |
214 | 214 | void CheckMeshStatus(); |
215 | 215 | void ConvertToDynamic(); |
216 | 216 | void ResetTransformations(); |
@@ -222,9 +222,9 @@ | ||
222 | 222 | void UpdateGroup(MESHHANDLE hMesh, DWORD idx); |
223 | 223 | |
224 | 224 | void SetSunLight(const D3D9Sun *pLight); |
225 | - | |
225 | + | |
226 | 226 | D3D9Pick Pick(const LPD3DXMATRIX pW, const LPD3DXMATRIX pT, const D3DXVECTOR3 *vDir); |
227 | - | |
227 | + | |
228 | 228 | void UpdateBoundingBox(); |
229 | 229 | void BoundingBox(const NMVERTEX *vtx, DWORD n, D9BBox *box); |
230 | 230 |
@@ -244,7 +244,7 @@ | ||
244 | 244 | * calculated as the product of material and texture alpha value. |
245 | 245 | */ |
246 | 246 | inline void EnableMatAlpha (bool enable) { bModulateMatAlpha = enable; } |
247 | - | |
247 | + | |
248 | 248 | DWORD AddTexture(D3D9ClientSurface *pTex); |
249 | 249 | DWORD AddMaterial(D3D9MatExt *pMat); |
250 | 250 | void SetMeshGroupTextureIdx(DWORD grp, DWORD tex_idx); |
@@ -267,7 +267,7 @@ | ||
267 | 267 | |
268 | 268 | D3DXVECTOR3 *pGBSys; |
269 | 269 | WORD *pIBSys; |
270 | - | |
270 | + | |
271 | 271 | DWORD MaxVert; |
272 | 272 | DWORD MaxFace; |
273 | 273 | DWORD Constr; |
@@ -289,9 +289,9 @@ | ||
289 | 289 | |
290 | 290 | _LightList LightList[MAX_SCENE_LIGHTS]; |
291 | 291 | LightStruct *Locals; |
292 | - | |
293 | 292 | |
294 | - bool bDynamic; // Mesh is using a dynamic vertex buffer for faster read-modify-write | |
293 | + | |
294 | + bool bDynamic; // Mesh is using a dynamic vertex buffer for faster read-modify-write | |
295 | 295 | bool bBSRecompute; // Bounding sphere must be recomputed |
296 | 296 | bool bBSRecomputeAll; |
297 | 297 | bool bModulateMatAlpha; // mix material and texture alpha channels |
@@ -299,7 +299,7 @@ | ||
299 | 299 | |
300 | 300 | char name[128]; |
301 | 301 | |
302 | - | |
302 | + | |
303 | 303 | }; |
304 | 304 | |
305 | -#endif // !__MESH_H | |
\ No newline at end of file | ||
305 | +#endif // !__MESH_H |
@@ -51,11 +51,11 @@ | ||
51 | 51 | , bOmit (false) |
52 | 52 | , scn( (Scene *)scene) // should be const! |
53 | 53 | , sunapprad() |
54 | - , sundst() | |
54 | + , sundst () | |
55 | + , size (oapiGetSize(_hObj)) | |
55 | 56 | { |
56 | 57 | _TRACE; |
57 | 58 | D3DXMatrixIdentity(&mWorld); |
58 | - size = oapiGetSize(hObj); | |
59 | 59 | cdist = 0.0; |
60 | 60 | dmWorld = identity4(); |
61 | 61 | albedo = _V(1,1,1); |
@@ -303,14 +303,13 @@ | ||
303 | 303 | cpos = gpos - scn->GetCameraGPos(); |
304 | 304 | cdist = length(cpos); |
305 | 305 | |
306 | - double rad = oapiGetSize(hObj); | |
307 | - double alt = max(1.0, cdist-rad); | |
308 | - double apr = rad * scn->ViewH()*0.5 / (alt * tan(scn->GetCameraAperture())); | |
306 | + double alt = max(1.0, cdist - size); | |
307 | + double apr = size * scn->ViewH()*0.5 / (alt * tan(scn->GetCameraAperture())); | |
309 | 308 | |
310 | 309 | double ds = 10000.0 / cdist; |
311 | 310 | double s = 2.0; |
312 | 311 | if (apr<0.3) s = 1.0; |
313 | - float size = float(rad * ds * s/apr); | |
312 | + float scale = float(size * ds * s/apr); | |
314 | 313 | |
315 | 314 | D3DXMATRIX W; |
316 | 315 | D3DXVECTOR3 vCam; |
@@ -318,7 +317,7 @@ | ||
318 | 317 | vPos*=float(ds); |
319 | 318 | |
320 | 319 | D3DXVec3Normalize(&vCam, &vPos); |
321 | - D3DMAT_CreateX_Billboard(&vCam, &vPos, size, &W); | |
320 | + D3DMAT_CreateX_Billboard(&vCam, &vPos, scale, &W); | |
322 | 321 | |
323 | 322 | float ints = float(sqrt(1.0+dotp(unit(gpos-spos), unit(cpos)))) * 1.0f; |
324 | 323 |
@@ -77,7 +77,7 @@ | ||
77 | 77 | } |
78 | 78 | prm.horizon_minelev = *(double*)oapiGetObjectParam(_hObj, OBJPRM_PLANET_MINELEVATION); |
79 | 79 | prm.horizon_minrad = min (1.0 + prm.horizon_minelev / size, 1.0 - 1e-4); |
80 | - | |
80 | + | |
81 | 81 | prm.bAtm = oapiPlanetHasAtmosphere (_hObj); |
82 | 82 | if (prm.bAtm) { |
83 | 83 | const ATMCONST *atmc = oapiGetPlanetAtmConstants(_hObj); |
@@ -143,7 +143,7 @@ | ||
143 | 143 | } else { |
144 | 144 | ringmgr = 0; |
145 | 145 | } |
146 | - | |
146 | + | |
147 | 147 | memcpy2 (&fog, oapiGetObjectParam (_hObj, OBJPRM_PLANET_FOGPARAM), sizeof (FogParam)); |
148 | 148 | prm.bFogEnabled = (fog.dens_0 > 0); |
149 | 149 |
@@ -151,7 +151,7 @@ | ||
151 | 151 | |
152 | 152 | //if (*(bool*)gc->GetConfigParam(CFGPRM_ATMFOG)==false) prm.bFogEnabled = false; |
153 | 153 | |
154 | - | |
154 | + | |
155 | 155 | nbase = oapiGetBaseCount (_hObj); |
156 | 156 | if (nbase) vbase = new vBase*[nbase]; |
157 | 157 | else vbase = NULL; |
@@ -168,8 +168,8 @@ | ||
168 | 168 | vbase[i] = new vBase (hBase, scn, this); |
169 | 169 | } |
170 | 170 | } |
171 | - } | |
172 | - | |
171 | + } | |
172 | + | |
173 | 173 | mesh = NULL; |
174 | 174 | if (surfmgr && surfmgr->GetMaxLevel() == 0) { |
175 | 175 | char cbuf[256]; |
@@ -184,8 +184,8 @@ | ||
184 | 184 | // Create a rock patch mesh -------------------------------------------------------------- |
185 | 185 | // |
186 | 186 | pRockPatch = NULL; |
187 | - | |
188 | - | |
187 | + | |
188 | + | |
189 | 189 | // Add a cursor object into the scene ------------------------ |
190 | 190 | // |
191 | 191 | hCursor[0] = AddMarker(D3D9SM_SPHERE, 0.0, 0.0, 80.0f, &D3DXCOLOR(0, 0, 0.75, 0.5f)); // Cursor |
@@ -319,9 +319,9 @@ | ||
319 | 319 | |
320 | 320 | float dst = D3DXVec3Length(&pos); |
321 | 321 | |
322 | - *dmin = dst - float(oapiGetSize(hObj)); | |
322 | + *dmin = dst - float(size); | |
323 | 323 | *zmin = *dmin; |
324 | - *zmax = dst + float(oapiGetSize(hObj)); | |
324 | + *zmax = dst + float(size); | |
325 | 325 | |
326 | 326 | return true; |
327 | 327 | } |
@@ -348,7 +348,7 @@ | ||
348 | 348 | void vPlanet::PickSurface(TILEPICK *result) |
349 | 349 | { |
350 | 350 | if (surfmgr2) { |
351 | - | |
351 | + | |
352 | 352 | surfmgr2->Pick(result); |
353 | 353 | |
354 | 354 | if (result->pTile) { |
@@ -399,7 +399,7 @@ | ||
399 | 399 | HSRFOBJ vPlanet::AddObject(D3D9Mesh *pMesh, double lng, double lat, float rot, bool bDual, float scale) |
400 | 400 | { |
401 | 401 | _SRFMARKER m; memset(&m, 0, sizeof(_SRFMARKER)); |
402 | - | |
402 | + | |
403 | 403 | m.lng = lng; |
404 | 404 | m.lat = lat; |
405 | 405 | m.rot = rot; |
@@ -409,10 +409,10 @@ | ||
409 | 409 | m.pMesh = pMesh; |
410 | 410 | m.type = 0; |
411 | 411 | m.bEnabled = true; |
412 | - | |
412 | + | |
413 | 413 | D3DXMatrixRotationAxis(&m.mWorld, &D3DXVEC(m.uPos), rot); |
414 | 414 | D3DXMatrixScaling(&m.mWorld, scale, scale, scale); |
415 | - | |
415 | + | |
416 | 416 | Markers.push_front(m); |
417 | 417 | return Markers.begin(); |
418 | 418 | } |
@@ -431,10 +431,10 @@ | ||
431 | 431 | m.vColor = D3DXC2V(*color); |
432 | 432 | m.type = WORD(type); |
433 | 433 | m.bEnabled = true; |
434 | - | |
434 | + | |
435 | 435 | switch (type) { |
436 | 436 | case D3D9SM_SPHERE: |
437 | - { | |
437 | + { | |
438 | 438 | m.bDual = true; |
439 | 439 | m.pMesh = hStockMesh[type]; |
440 | 440 | } |
@@ -487,7 +487,7 @@ | ||
487 | 487 | { |
488 | 488 | _TRACE; |
489 | 489 | if (!active) return false; |
490 | - | |
490 | + | |
491 | 491 | vObject::Update(bMainScene); |
492 | 492 | |
493 | 493 | // Update Sunlight direction ------------------------------------- |
@@ -565,7 +565,7 @@ | ||
565 | 565 | } |
566 | 566 | |
567 | 567 | // check all base visuals |
568 | - if (nbase) { | |
568 | + if (nbase) { | |
569 | 569 | VECTOR3 pos, cpos = scn->GetCameraGPos(); |
570 | 570 | double scale = (double)scn->ViewH()/scn->GetTanAp(); |
571 | 571 | for (DWORD i = 0; i < nbase; i++) { |
@@ -591,11 +591,11 @@ | ||
591 | 591 | } |
592 | 592 | |
593 | 593 | // Toggle surface base on/off based on visual size ----------------- |
594 | - // | |
594 | + // | |
595 | 595 | if (vbase[i]) { |
596 | 596 | if (apprad < 1.0) vbase[i]->Activate(false); |
597 | 597 | else if (apprad > 2.0) vbase[i]->Activate(true); |
598 | - vbase[i]->Update(bMainScene); | |
598 | + vbase[i]->Update(bMainScene); | |
599 | 599 | } |
600 | 600 | } |
601 | 601 | } |
@@ -631,8 +631,8 @@ | ||
631 | 631 | if (hazemgr) { delete hazemgr; hazemgr = NULL; } |
632 | 632 | if (hazemgr2) { delete hazemgr2; hazemgr2 = NULL; } |
633 | 633 | } else { |
634 | - if (tilever>1 && bScatter) { | |
635 | - if (!hazemgr2) hazemgr2 = new HazeManager2 (scn->GetClient(), this); | |
634 | + if (tilever>1 && bScatter) { | |
635 | + if (!hazemgr2) hazemgr2 = new HazeManager2 (scn->GetClient(), this); | |
636 | 636 | } |
637 | 637 | else if (!hazemgr) hazemgr = new HazeManager (scn->GetClient(), this); |
638 | 638 | } |
@@ -683,7 +683,7 @@ | ||
683 | 683 | HR(D3D9Effect::FX->SetBool(D3D9Effect::eShadowToggle, true)); |
684 | 684 | } |
685 | 685 | } |
686 | - | |
686 | + | |
687 | 687 | |
688 | 688 | PlanetRenderer::InitializeScattering(this); |
689 | 689 | PlanetRenderer::SetViewProjectionMatrix(scn->GetProjectionViewMatrix()); |
@@ -721,9 +721,9 @@ | ||
721 | 721 | |
722 | 722 | if (ringmgr) { |
723 | 723 | ringmgr->Render(dev, mWorld, false); |
724 | - dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); | |
724 | + dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); | |
725 | 725 | } |
726 | - | |
726 | + | |
727 | 727 | if (hazemgr2) { |
728 | 728 | double apr = 180.0 * scn->GetCameraAperture() / (scn->GetCameraAspect() * PI); |
729 | 729 | hazemgr2->Render(mWorld, float(apr)); |
@@ -733,8 +733,8 @@ | ||
733 | 733 | RenderCloudLayer (dev, D3DCULL_NONE); // render clouds from below |
734 | 734 | |
735 | 735 | if (hazemgr) hazemgr->Render(dev, mWorld); // horizon ring |
736 | - | |
737 | - | |
736 | + | |
737 | + | |
738 | 738 | if (prm.bAtm) { |
739 | 739 | if (ModLighting (amb)) |
740 | 740 | prm.AmbColor = D3DXCOLOR(amb); |
@@ -785,7 +785,7 @@ | ||
785 | 785 | mesh->SetSunLight(scn->GetSun()); |
786 | 786 | mesh->Render(&mWorld, RENDER_ASTEROID); |
787 | 787 | } else { |
788 | - RenderSphere (dev); | |
788 | + RenderSphere (dev); | |
789 | 789 | } |
790 | 790 | |
791 | 791 | if (nbase) RenderBaseStructures (dev); |
@@ -796,7 +796,7 @@ | ||
796 | 796 | if (hazemgr) hazemgr->Render (dev, mWorld, true); // haze across planet disc |
797 | 797 | if (ringmgr) { |
798 | 798 | ringmgr->Render (dev, mWorld, true); |
799 | - dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); | |
799 | + dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); | |
800 | 800 | } |
801 | 801 | |
802 | 802 | } |
@@ -811,14 +811,14 @@ | ||
811 | 811 | |
812 | 812 | void vPlanet::RenderBeacons(LPDIRECT3DDEVICE9 dev) |
813 | 813 | { |
814 | - // Beacons rendered elsewhere before the cloud layer | |
814 | + // Beacons rendered elsewhere before the cloud layer | |
815 | 815 | } |
816 | 816 | |
817 | 817 | // ============================================================== |
818 | 818 | /* |
819 | 819 | void vPlanet::RenderSurfaceMicroDetails(LPDIRECT3DDEVICE9 dev) |
820 | 820 | { |
821 | - | |
821 | + | |
822 | 822 | } |
823 | 823 | */ |
824 | 824 | // ============================================================== |
@@ -869,9 +869,9 @@ | ||
869 | 869 | } |
870 | 870 | |
871 | 871 | if (bLog) D3D9SetTime(D3D9Stats.Timer.Surface, tot_surf); |
872 | - } | |
872 | + } | |
873 | 873 | else { |
874 | - dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); | |
874 | + dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); | |
875 | 875 | if (prm.bFog) D3D9Effect::FX->SetFloat(D3D9Effect::eFogDensity, fogfactor/dist_scale); |
876 | 876 | surfmgr->SetAmbientColor(prm.AmbColor); |
877 | 877 | surfmgr->Render (dev, mWorld, dist_scale, patchres, 0.0, prm.bFog); // surface |
@@ -900,7 +900,7 @@ | ||
900 | 900 | double tot_cloud = D3D9GetTime(); |
901 | 901 | |
902 | 902 | if (cullmode != D3DCULL_CCW) dev->SetRenderState (D3DRS_CULLMODE, cullmode); |
903 | - if (cloudmgr2) { | |
903 | + if (cloudmgr2) { | |
904 | 904 | cloudmgr2->Render(dmWorld, false, prm); |
905 | 905 | } |
906 | 906 | else |
@@ -917,12 +917,12 @@ | ||
917 | 917 | if (cloudmgr2) { |
918 | 918 | //if (prm.bCloudFlatShadows) |
919 | 919 | // cloudmgr2->RenderFlatCloudShadows (dmWorld, prm); |
920 | - } | |
920 | + } | |
921 | 921 | else if (clouddata) { // legacy method |
922 | 922 | float fogfactor; |
923 | 923 | D3D9Effect::FX->GetFloat(D3D9Effect::eFogDensity, &fogfactor); |
924 | 924 | if (prm.bFog) D3D9Effect::FX->SetFloat(D3D9Effect::eFogDensity, fogfactor/dist_scale); |
925 | - clouddata->cloudmgr->RenderShadow(dev, clouddata->mWorldC0, dist_scale, min(patchres,8), clouddata->viewap, clouddata->shadowalpha); | |
925 | + clouddata->cloudmgr->RenderShadow(dev, clouddata->mWorldC0, dist_scale, min(patchres,8), clouddata->viewap, clouddata->shadowalpha); | |
926 | 926 | if (prm.bFog) D3D9Effect::FX->SetFloat(D3D9Effect::eFogDensity, fogfactor); |
927 | 927 | } |
928 | 928 | } |
@@ -932,7 +932,7 @@ | ||
932 | 932 | void vPlanet::RenderBaseSurfaces(LPDIRECT3DDEVICE9 dev) |
933 | 933 | { |
934 | 934 | for (DWORD i=0;i<nbase;i++) if (vbase[i]) { |
935 | - vbase[i]->RenderSurface(dev); | |
935 | + vbase[i]->RenderSurface(dev); | |
936 | 936 | vbase[i]->RenderRunwayLights(dev); |
937 | 937 | } |
938 | 938 | } |
@@ -995,14 +995,14 @@ | ||
995 | 995 | |
996 | 996 | D3DXVECTOR3 lambda4 = D3DXVECTOR3(pow(float(SPrm.red),rp), pow(float(SPrm.green),rp), pow(float(SPrm.blue),rp)); |
997 | 997 | D3DXVECTOR3 lambda2 = D3DXVECTOR3(pow(float(SPrm.red),mp), pow(float(SPrm.green),mp), pow(float(SPrm.blue),mp)); |
998 | - | |
998 | + | |
999 | 999 | D3DXVec3Normalize(&lambda4, &lambda4); |
1000 | 1000 | D3DXVec3Normalize(&lambda2, &lambda2); |
1001 | 1001 | |
1002 | 1002 | D3DXVECTOR3 vOutTotSun = lambda4*float(SPrm.rout) + lambda2*float(SPrm.mie); |
1003 | 1003 | D3DXVECTOR3 vRayInSct = lambda4*float(SPrm.rin * SPrm.rout); |
1004 | 1004 | |
1005 | - double fDPS = max(0.34, dotp(unit(vPos), sundir)); | |
1005 | + double fDPS = max(0.34, dotp(unit(vPos), sundir)); | |
1006 | 1006 | double fDns = exp2(-fAlt * prm.InvSclHeight); |
1007 | 1007 | |
1008 | 1008 | return exp2(-vOutTotSun * float(fDns * AngleCoEff(fDPS))); |
@@ -1050,12 +1050,12 @@ | ||
1050 | 1050 | double R = R0 + alt; |
1051 | 1051 | |
1052 | 1052 | double rdt = -R * cos(dir); |
1053 | - double Ray = rdt + sqrt(R1*R1 - (R*R - rdt*rdt)); | |
1053 | + double Ray = rdt + sqrt(R1*R1 - (R*R - rdt*rdt)); | |
1054 | 1054 | |
1055 | - double p0 = Ray * 0.0; | |
1056 | - double p1 = Ray * 0.2765; | |
1057 | - double p2 = Ray * 0.7235; | |
1058 | - double p3 = Ray * 1.0; | |
1055 | + double p0 = Ray * 0.0; | |
1056 | + double p1 = Ray * 0.2765; | |
1057 | + double p2 = Ray * 0.7235; | |
1058 | + double p3 = Ray * 1.0; | |
1059 | 1059 | |
1060 | 1060 | double a0 = sqrt(R*R + p0*p0 + 2.0*R*p0*cos(dir)) - R0; |
1061 | 1061 | double a1 = sqrt(R*R + p1*p1 + 2.0*R*p1*cos(dir)) - R0; |
@@ -1090,7 +1090,7 @@ | ||
1090 | 1090 | for (int i=0;i<samples;i++) { |
1091 | 1091 | double exact = ExactOpticalDepth(0.0, angle, size, outer, prm.SclHeight) / prm.SclHeight; |
1092 | 1092 | double gauss = GaussLobatto(0.0, angle, size, outer, prm.SclHeight) / prm.SclHeight; |
1093 | - double accur = OpticalDepth(0.0, cos(angle)) / double(prm.SclHeight); | |
1093 | + double accur = OpticalDepth(0.0, cos(angle)) / double(prm.SclHeight); | |
1094 | 1094 | angle += delta; |
1095 | 1095 | fprintf(fp,"%d %6.6g %6.6g %6.6g\n", i, exact, accur, gauss); |
1096 | 1096 | } |
@@ -1108,9 +1108,9 @@ | ||
1108 | 1108 | if (mode==0 && alt>0.5) mode = 2; |
1109 | 1109 | if (mode==0 && alt<0.5) mode = 1; |
1110 | 1110 | |
1111 | - if (mode==1) return &SPrm; // Surface configuration | |
1111 | + if (mode==1) return &SPrm; // Surface configuration | |
1112 | 1112 | if (mode==2) return &OPrm; // Orbital configuration |
1113 | - | |
1113 | + | |
1114 | 1114 | // ---------------------------------------------------- |
1115 | 1115 | CPrm.aux1 = lerp(SPrm.aux1, OPrm.aux1, alt); |
1116 | 1116 | CPrm.aux2 = lerp(SPrm.aux2, OPrm.aux2, alt); |
@@ -1135,11 +1135,11 @@ | ||
1135 | 1135 | CPrm.hazei = lerp(SPrm.hazei, OPrm.hazei, alt); |
1136 | 1136 | // ---------------------------------------------------- |
1137 | 1137 | CPrm.height = SPrm.height; |
1138 | - | |
1138 | + | |
1139 | 1139 | return &CPrm; |
1140 | 1140 | } |
1141 | - | |
1142 | - | |
1141 | + | |
1142 | + | |
1143 | 1143 | |
1144 | 1144 | // ============================================================== |
1145 | 1145 |
@@ -1191,14 +1191,14 @@ | ||
1191 | 1191 | oapiReadItem_float(hFile, "AGamma", prm->agamma); |
1192 | 1192 | oapiReadItem_float(hFile, "HazeClr", prm->hazec); |
1193 | 1193 | oapiReadItem_float(hFile, "HazeIts", prm->hazei); |
1194 | - | |
1194 | + | |
1195 | 1195 | oapiCloseFile(hFile, FILE_IN_ZEROONFAIL); |
1196 | 1196 | |
1197 | 1197 | if (!oapiPlanetHasAtmosphere(hObj)) return false; |
1198 | 1198 | |
1199 | 1199 | UpdateAtmoConfig(); |
1200 | 1200 | return true; |
1201 | - | |
1201 | + | |
1202 | 1202 | } |
1203 | 1203 | |
1204 | 1204 | // ============================================================== |
@@ -1237,7 +1237,7 @@ | ||
1237 | 1237 | // ----------------------------------------------------------------- |
1238 | 1238 | oapiWriteItem_float(hFile, "MiePower", prm->mie); |
1239 | 1239 | oapiWriteItem_float(hFile, "MiePhase", prm->mphase); |
1240 | - // ----------------------------------------------------------------- | |
1240 | + // ----------------------------------------------------------------- | |
1241 | 1241 | oapiWriteItem_float(hFile, "Aux1", prm->aux1); |
1242 | 1242 | oapiWriteItem_float(hFile, "Aux2", prm->aux2); |
1243 | 1243 | oapiWriteItem_float(hFile, "Aux3", prm->aux3); |
@@ -1245,7 +1245,7 @@ | ||
1245 | 1245 | oapiWriteItem_float(hFile, "AGamma", prm->agamma); |
1246 | 1246 | oapiWriteItem_float(hFile, "HazeClr", prm->hazec); |
1247 | 1247 | oapiWriteItem_float(hFile, "HazeIts", prm->hazei); |
1248 | - | |
1248 | + | |
1249 | 1249 | oapiCloseFile(hFile, FILE_OUT); |
1250 | 1250 | |
1251 | 1251 | DumpDebugFile(); |
@@ -1312,7 +1312,7 @@ | ||
1312 | 1312 | bool vPlanet::ParseMicroTextures() |
1313 | 1313 | { |
1314 | 1314 | if (Config->MicroMode==0) return false; // Micro textures are disabled |
1315 | - if (surfmgr2==NULL) return false; // Only supported with tile format 2 | |
1315 | + if (surfmgr2==NULL) return false; // Only supported with tile format 2 | |
1316 | 1316 | |
1317 | 1317 | // Parse file (only once!) |
1318 | 1318 | if (!bMicroTexFileRead) { |
@@ -20,7 +20,6 @@ | ||
20 | 20 | |
21 | 21 | vStar::vStar(OBJHANDLE _hObj, const Scene *scene): vObject (_hObj, scene) |
22 | 22 | { |
23 | -// size = oapiGetSize(_hObj); | |
24 | 23 | maxdist = 0.5*scene->GetCameraFarPlane(); |
25 | 24 | } |
26 | 25 |
@@ -71,7 +70,7 @@ | ||
71 | 70 | mWorld._21 = -(mWorld._12*mWorld._33 - mWorld._32*mWorld._13); //0; |
72 | 71 | mWorld._22 = -(mWorld._13*mWorld._31 - mWorld._33*mWorld._11); //1; |
73 | 72 | mWorld._23 = -(mWorld._11*mWorld._32 - mWorld._31*mWorld._12); // 0; |
74 | - | |
73 | + | |
75 | 74 | // artificially reduce size reduction with distance |
76 | 75 | // to make star appear larger |
77 | 76 | size_hack = float(1.0+pow(cdist,0.6)*1e-6); |
@@ -781,7 +781,7 @@ | ||
781 | 781 | |
782 | 782 | DWORD bfvmode = *(DWORD*)gc->GetConfigParam(CFGPRM_SHOWBODYFORCEVECTORSFLAG); |
783 | 783 | float sclset = *(float*)gc->GetConfigParam(CFGPRM_BODYFORCEVECTORSSCALE); |
784 | - float scale = float(oapiGetSize(hObj)) / 50.0f; | |
784 | + float scale = float(size) / 50.0f; | |
785 | 785 | |
786 | 786 | // ------------------------------------- |
787 | 787 | // Render Body Force Vectors |
@@ -802,10 +802,10 @@ | ||
802 | 802 | if (bfvmode & BFV_TOTAL) { vessel->GetForceVector(vector); if (length(vector)>len) len = length(vector); } |
803 | 803 | if (bfvmode & BFV_TORQUE) { vessel->GetTorqueVector(vector); if (length(vector)>len) len = length(vector); } |
804 | 804 | |
805 | - lscale = float(oapiGetSize(hObj)*sclset/len); | |
805 | + lscale = float(size * sclset / len); | |
806 | 806 | } |
807 | 807 | else { |
808 | - lscale = float(oapiGetSize(hObj))*sclset/50.0f; | |
808 | + lscale = float(size * sclset / 50.0); | |
809 | 809 | } |
810 | 810 | |
811 | 811 | alpha = *(float*)gc->GetConfigParam(CFGPRM_BODYFORCEVECTORSOPACITY); |
@@ -881,7 +881,7 @@ | ||
881 | 881 | { |
882 | 882 | float sclset = *(float*)gc->GetConfigParam(CFGPRM_COORDINATEAXESSCALE); |
883 | 883 | scale *= 0.99f; // 1% "slimmer" to avoid z-fighting with force vector(s) |
884 | - float ascale = float(oapiGetSize(hObj))*sclset*0.5f; | |
884 | + float ascale = float(size)*sclset*0.5f; | |
885 | 885 | |
886 | 886 | RenderAxisVector(pSkp, &D3DXCOLOR(1,0,0,alpha), _V(1,0,0), ascale, scale); |
887 | 887 | RenderAxisLabel(pSkp, &D3DXCOLOR(1,0,0,alpha), _V(1,0,0), ascale, scale, "X"); |