27 lines
		
	
	
		
			899 B
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			899 B
		
	
	
	
		
			C
		
	
	
| #define HANDMADE_MATH_IMPLEMENTATION
 | |
| #define HANDMADE_MATH_NO_SSE
 | |
| #include "HandmadeMath.h"
 | |
| 
 | |
| void calc_matrices(void *res, float w, float h, float rx, float ry, float scale){
 | |
| 	hmm_mat4 proj = HMM_Perspective(60.0f, w/h, 0.01f, 10.0f);
 | |
| 	hmm_mat4 view = HMM_LookAt(HMM_Vec3(0.0f, 0.0f, 6.0f), HMM_Vec3(0.0f, 0.0f, 0.0f), HMM_Vec3(0.0f, 1.0f, 0.0f));
 | |
| 	hmm_mat4 view_proj = HMM_MultiplyMat4(proj, view);
 | |
| 	//state.rx += 1.0f; state.ry += 2.0f;
 | |
| 
 | |
| 	
 | |
| 	hmm_mat4 rxm = HMM_Rotate(rx, HMM_Vec3(1.0f, 0.0f, 0.0f));
 | |
| 	hmm_mat4 rym = HMM_Rotate(ry, HMM_Vec3(0.0f, 1.0f, 0.0f));
 | |
| 
 | |
| 	hmm_mat4 model = HMM_MultiplyMat4(rxm, rym);
 | |
| 	hmm_mat4 scale_mx = HMM_Scale(HMM_Vec3(scale, scale, scale));
 | |
| 	model = HMM_MultiplyMat4(model, scale_mx);
 | |
| 	hmm_mat4 tmp_res = HMM_MultiplyMat4(view_proj, model);
 | |
| 
 | |
| 	// copy the matrix to V
 | |
| 	int i = 0;
 | |
| 	float *p = &tmp_res.Elements[0];
 | |
| 	while(i < 16){
 | |
| 		((float*)(res))[i]= p[i];
 | |
| 		i++;
 | |
| 	}
 | |
| } |