36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <cstdint>
 | 
						|
#include <tuple>
 | 
						|
#include <iostream>
 | 
						|
#include "vertex.h"
 | 
						|
#include "parray.h"
 | 
						|
 | 
						|
//方案一,使用静态变量存储数据
 | 
						|
//方案二,模板元编程,传递数据
 | 
						|
int main() {
 | 
						|
	cout << "std::is_aggregate_v<PosVertex> = "<< is_aggregate_v<PosVertex> << endl;
 | 
						|
	cout << "std::is_aggregate_v<TexVertex> = "<< is_aggregate_v<TexVertex> << endl;
 | 
						|
	cout << "std::is_aggregate_v<BoneVertex> = "<< is_aggregate_v<BoneVertex> << endl;
 | 
						|
	float x1 = 1.0, x2 = 2.0, x3 = 3.0;
 | 
						|
	PosVertex p;
 | 
						|
	TexVertex t;
 | 
						|
	BoneVertex b;
 | 
						|
	ptarray<Vertex, PosVertex> vertices(10);
 | 
						|
	//ptarray<Vertex, TexVertex> vertices2(10);
 | 
						|
	vertices.push_back(p);
 | 
						|
	parray<Vertex> pv = vertices;
 | 
						|
 | 
						|
	auto Position = make_tuple(1, 2, 3);
 | 
						|
 | 
						|
	auto pv0 = *(PosVertex*)pv.at(0);
 | 
						|
	//vertices.push_back(t);
 | 
						|
	cout<< "sizeof " << sizeof(p) << "," << sizeof(t) << "," << sizeof(b)<<"\n";
 | 
						|
	//auto r1 = b.BindLayout();
 | 
						|
	//auto r2 = t.BindLayout();
 | 
						|
	//auto r3 = p.BindLayout();
 | 
						|
	//cout << "vector " << get<0>(r1[0]) << "," << get<0>(r2[0]) << "," << get<0>(r3[0]) << "\n";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |