File: buffer.h

package info (click to toggle)
megaglest 3.13.0-9
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 13,416 kB
  • sloc: cpp: 144,271; ansic: 11,861; sh: 3,233; perl: 1,904; python: 1,751; objc: 142; asm: 42; makefile: 22
file content (69 lines) | stat: -rw-r--r-- 1,638 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// ==============================================================
//	This file is part of MegaGlest Shared Library (www.megaglest.org)
//
//	Copyright (C) 2012 Mark Vejvoda, Titus Tscharntke
//	The MegaGlest Team, under GNU GPL v3.0
// ==============================================================

#ifndef _SHARED_GRAPHICS_BUFFER_H_
#define _SHARED_GRAPHICS_BUFFER_H_

#include <string>
#include "leak_dumper.h"

using std::string;

namespace Shared{ namespace Graphics{

// =====================================================
//	class VertexBuffer
// =====================================================

class VertexBuffer{
private:
	static const int texCoordCount = 8;
	static const int attribCount = 8;

private:
	void *positionPointer;
	void *normalPointer;

	void *texCoordPointers[texCoordCount];
	int texCoordCoordCounts[texCoordCount];

	void *attribPointers[attribCount];
	int attribCoordCounts[attribCount];
	string attribNames[attribCount];

public:
	VertexBuffer();
	virtual ~VertexBuffer(){};

	virtual void init(int size)= 0;

	void setPositionPointer(void *pointer);
	void setNormalPointer(void *pointer);
	void setTexCoordPointer(void *pointer, int texCoordIndex, int coordCount);
	void setAttribPointer(void *pointer, int attribIndex, int coordCount, const string &name);
};

// =====================================================
//	class IndexBuffer
// =====================================================

class IndexBuffer{
private:
	void *indexPointer;

public:
	IndexBuffer();
	virtual ~IndexBuffer(){}

	virtual void init(int size)= 0;

	void setIndexPointer(void *pointer);
};

}}//end namespace

#endif