mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 22:00:39 -06:00
set svn:eol-style=native for **.h
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1438 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -1,114 +1,114 @@
|
||||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#ifndef _DECODED_VARRAY_H
|
||||
#define _DECODED_VARRAY_H
|
||||
|
||||
#include "Vec3.h"
|
||||
#include "Common.h"
|
||||
|
||||
typedef Vec3 DecPos;
|
||||
typedef Vec3 DecNormal;
|
||||
|
||||
struct DecUV
|
||||
{
|
||||
float u,v;
|
||||
};
|
||||
|
||||
typedef u32 DecColor;
|
||||
typedef u8 DecMtxInd;
|
||||
|
||||
int ComputeVertexSize(u32 components);
|
||||
|
||||
//TODO(ector): Change the internal implementation to pack it tight according to components
|
||||
// The tight packing will be fed directly to the gfx card in the mystic future.
|
||||
class DecodedVArray
|
||||
{
|
||||
int size;
|
||||
u32 components;
|
||||
int vertexSize;
|
||||
|
||||
public:
|
||||
int count;
|
||||
DecodedVArray();
|
||||
~DecodedVArray();
|
||||
void SetComponents(u32 comps) {components = comps; vertexSize = ComputeVertexSize(components);
|
||||
ComputeComponents(); }
|
||||
u32 GetComponents() const {return components;}
|
||||
void Create(int _size, int pmcount, int tmcount, int nrmcount, int colcount, int tccount);
|
||||
void Zero();
|
||||
void Destroy();
|
||||
void Reset() {count=0;}
|
||||
int GetSize() {return size;}
|
||||
int GetCount() {return count;}
|
||||
void Next() {count++;}
|
||||
void SetPosNrmIdx(int i) {posMtxInds[count] = i;}
|
||||
void SetTcIdx(int n, int i) {texMtxInds[n][count] = i;}
|
||||
void SetPosX(float x) {positions[count].x=x;}
|
||||
void SetPosY(float y) {positions[count].y=y;}
|
||||
void SetPosZ(float z) {positions[count].z=z;}
|
||||
|
||||
void SetNormalX(int n,float x) {normals[n][count].x=x;}
|
||||
void SetNormalY(int n,float y) {normals[n][count].y=y;}
|
||||
void SetNormalZ(int n,float z) {normals[n][count].z=z;}
|
||||
void SetU(int n, float u) {uvs[n][count].u = u;}
|
||||
void SetV(int n, float v) {uvs[n][count].v = v;}
|
||||
void SetPosition(float x, float y, float z) {
|
||||
positions[count].x=x;
|
||||
positions[count].y=y;
|
||||
positions[count].z=z;
|
||||
}
|
||||
void SetNormal(int n, float x, float y, float z) {
|
||||
normals[n][count].x=x;
|
||||
normals[n][count].y=y;
|
||||
normals[n][count].z=z;
|
||||
}
|
||||
void SetColor(int n, u32 c)
|
||||
{
|
||||
colors[n][count] = c;
|
||||
}
|
||||
void SetUV(int n, float u, float v) {
|
||||
uvs[n][count].u=u;
|
||||
uvs[n][count].v=v;
|
||||
}
|
||||
|
||||
void ComputeComponents() {
|
||||
hasPosMatIdx = (components & (1 << 1)) != 0;
|
||||
for(int i = 0; i < 8; i++)
|
||||
hasTexMatIdx[i] = (components & (1 << (i + 2))) != 0;
|
||||
hasNrm = (components & (1 << 10)) != 0;
|
||||
}
|
||||
|
||||
const DecPos &GetPos(int n) const { return positions[n]; }
|
||||
const DecNormal &GetNormal(int i, int n) const { return normals[i][n]; }
|
||||
const DecColor &GetColor(int i, int n) const { return colors[i][n]; }
|
||||
const DecUV &GetUV(int i, int n) const { return uvs[i][n]; }
|
||||
const DecMtxInd &GetPosMtxInd(int n) const { return posMtxInds[n]; }
|
||||
const DecMtxInd &GetTexMtxInd(int i, int n) const { return texMtxInds[i][n]; }
|
||||
//private:
|
||||
DecPos *positions;
|
||||
DecNormal *normals[3];
|
||||
DecColor *colors[2];
|
||||
DecUV *uvs[8];
|
||||
DecMtxInd *posMtxInds;
|
||||
DecMtxInd *texMtxInds[8];
|
||||
|
||||
// Component data
|
||||
bool hasPosMatIdx, hasTexMatIdx[8], hasNrm;
|
||||
};
|
||||
|
||||
#endif
|
||||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#ifndef _DECODED_VARRAY_H
|
||||
#define _DECODED_VARRAY_H
|
||||
|
||||
#include "Vec3.h"
|
||||
#include "Common.h"
|
||||
|
||||
typedef Vec3 DecPos;
|
||||
typedef Vec3 DecNormal;
|
||||
|
||||
struct DecUV
|
||||
{
|
||||
float u,v;
|
||||
};
|
||||
|
||||
typedef u32 DecColor;
|
||||
typedef u8 DecMtxInd;
|
||||
|
||||
int ComputeVertexSize(u32 components);
|
||||
|
||||
//TODO(ector): Change the internal implementation to pack it tight according to components
|
||||
// The tight packing will be fed directly to the gfx card in the mystic future.
|
||||
class DecodedVArray
|
||||
{
|
||||
int size;
|
||||
u32 components;
|
||||
int vertexSize;
|
||||
|
||||
public:
|
||||
int count;
|
||||
DecodedVArray();
|
||||
~DecodedVArray();
|
||||
void SetComponents(u32 comps) {components = comps; vertexSize = ComputeVertexSize(components);
|
||||
ComputeComponents(); }
|
||||
u32 GetComponents() const {return components;}
|
||||
void Create(int _size, int pmcount, int tmcount, int nrmcount, int colcount, int tccount);
|
||||
void Zero();
|
||||
void Destroy();
|
||||
void Reset() {count=0;}
|
||||
int GetSize() {return size;}
|
||||
int GetCount() {return count;}
|
||||
void Next() {count++;}
|
||||
void SetPosNrmIdx(int i) {posMtxInds[count] = i;}
|
||||
void SetTcIdx(int n, int i) {texMtxInds[n][count] = i;}
|
||||
void SetPosX(float x) {positions[count].x=x;}
|
||||
void SetPosY(float y) {positions[count].y=y;}
|
||||
void SetPosZ(float z) {positions[count].z=z;}
|
||||
|
||||
void SetNormalX(int n,float x) {normals[n][count].x=x;}
|
||||
void SetNormalY(int n,float y) {normals[n][count].y=y;}
|
||||
void SetNormalZ(int n,float z) {normals[n][count].z=z;}
|
||||
void SetU(int n, float u) {uvs[n][count].u = u;}
|
||||
void SetV(int n, float v) {uvs[n][count].v = v;}
|
||||
void SetPosition(float x, float y, float z) {
|
||||
positions[count].x=x;
|
||||
positions[count].y=y;
|
||||
positions[count].z=z;
|
||||
}
|
||||
void SetNormal(int n, float x, float y, float z) {
|
||||
normals[n][count].x=x;
|
||||
normals[n][count].y=y;
|
||||
normals[n][count].z=z;
|
||||
}
|
||||
void SetColor(int n, u32 c)
|
||||
{
|
||||
colors[n][count] = c;
|
||||
}
|
||||
void SetUV(int n, float u, float v) {
|
||||
uvs[n][count].u=u;
|
||||
uvs[n][count].v=v;
|
||||
}
|
||||
|
||||
void ComputeComponents() {
|
||||
hasPosMatIdx = (components & (1 << 1)) != 0;
|
||||
for(int i = 0; i < 8; i++)
|
||||
hasTexMatIdx[i] = (components & (1 << (i + 2))) != 0;
|
||||
hasNrm = (components & (1 << 10)) != 0;
|
||||
}
|
||||
|
||||
const DecPos &GetPos(int n) const { return positions[n]; }
|
||||
const DecNormal &GetNormal(int i, int n) const { return normals[i][n]; }
|
||||
const DecColor &GetColor(int i, int n) const { return colors[i][n]; }
|
||||
const DecUV &GetUV(int i, int n) const { return uvs[i][n]; }
|
||||
const DecMtxInd &GetPosMtxInd(int n) const { return posMtxInds[n]; }
|
||||
const DecMtxInd &GetTexMtxInd(int i, int n) const { return texMtxInds[i][n]; }
|
||||
//private:
|
||||
DecPos *positions;
|
||||
DecNormal *normals[3];
|
||||
DecColor *colors[2];
|
||||
DecUV *uvs[8];
|
||||
DecMtxInd *posMtxInds;
|
||||
DecMtxInd *texMtxInds[8];
|
||||
|
||||
// Component data
|
||||
bool hasPosMatIdx, hasTexMatIdx[8], hasNrm;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user