ReactOS
0.4.16-dev-336-gb667d82
trimvertpool.cc
Go to the documentation of this file.
1
/*
2
** License Applicability. Except to the extent portions of this file are
3
** made subject to an alternative license as permitted in the SGI Free
4
** Software License B, Version 1.1 (the "License"), the contents of this
5
** file are subject only to the provisions of the License. You may not use
6
** this file except in compliance with the License. You may obtain a copy
7
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
8
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
9
**
10
** http://oss.sgi.com/projects/FreeB
11
**
12
** Note that, as provided in the License, the Software is distributed on an
13
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
14
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
15
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
16
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
17
**
18
** Original Code. The Original Code is: OpenGL Sample Implementation,
19
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
20
** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
21
** Copyright in any portions created by third parties is as indicated
22
** elsewhere herein. All Rights Reserved.
23
**
24
** Additional Notice Provisions: The application programming interfaces
25
** established by SGI in conjunction with the Original Code are The
26
** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
27
** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
28
** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
29
** Window System(R) (Version 1.3), released October 19, 1998. This software
30
** was created using the OpenGL(R) version 1.2.1 Sample Implementation
31
** published by SGI, but has not been independently verified as being
32
** compliant with the OpenGL(R) version 1.2.1 Specification.
33
*/
34
35
/*
36
* trimvertexpool.c++
37
*
38
*/
39
40
//#include "glimports.h"
41
//#include "myassert.h"
42
//#include "mystdio.h"
43
//#include "mystring.h"
44
#include "
trimvertex.h
"
45
#include "
trimvertpool.h
"
46
//#include "bufpool.h"
47
48
/*----------------------------------------------------------------------------
49
* TrimVertexPool::TrimVertexPool
50
*----------------------------------------------------------------------------
51
*/
52
TrimVertexPool::TrimVertexPool
(
void
)
53
:
pool
(
sizeof
(
TrimVertex
)*3, 32,
"Threevertspool"
)
54
{
55
// initialize array of pointers to vertex lists
56
nextvlistslot
= 0;
57
vlistsize
=
INIT_VERTLISTSIZE
;
58
vlist
=
new
TrimVertex_p
[
vlistsize
];
59
}
60
61
/*----------------------------------------------------------------------------
62
* TrimVertexPool::~TrimVertexPool
63
*----------------------------------------------------------------------------
64
*/
65
TrimVertexPool::~TrimVertexPool
(
void
)
66
{
67
// free all arrays of TrimVertices vertices
68
while
(
nextvlistslot
) {
69
delete
[]
vlist
[--
nextvlistslot
];
70
}
71
72
// reallocate space for array of pointers to vertex lists
73
if
(
vlist
)
delete
[]
vlist
;
74
}
75
76
/*----------------------------------------------------------------------------
77
* TrimVertexPool::clear
78
*----------------------------------------------------------------------------
79
*/
80
void
81
TrimVertexPool::clear
(
void
)
82
{
83
// reinitialize pool of 3 vertex arrays
84
pool
.clear();
85
86
// free all arrays of TrimVertices vertices
87
while
(
nextvlistslot
) {
88
delete
[]
vlist
[--
nextvlistslot
];
89
vlist
[
nextvlistslot
] = 0;
90
}
91
92
// reallocate space for array of pointers to vertex lists
93
if
(
vlist
)
delete
[]
vlist
;
94
vlist
=
new
TrimVertex_p
[
vlistsize
];
95
}
96
97
98
/*----------------------------------------------------------------------------
99
* TrimVertexPool::get - allocate a vertex list
100
*----------------------------------------------------------------------------
101
*/
102
TrimVertex
*
103
TrimVertexPool::get
(
int
n
)
104
{
105
TrimVertex
*
v
;
106
if
(
n
== 3 ) {
107
v
= (
TrimVertex
*)
pool
.new_buffer();
108
}
else
{
109
if
(
nextvlistslot
==
vlistsize
) {
110
vlistsize
*= 2;
111
TrimVertex_p
*nvlist =
new
TrimVertex_p
[
vlistsize
];
112
memcpy
( nvlist,
vlist
,
nextvlistslot
*
sizeof
(
TrimVertex_p
) );
113
if
(
vlist
)
delete
[]
vlist
;
114
vlist
= nvlist;
115
}
116
v
=
vlist
[
nextvlistslot
++] =
new
TrimVertex
[
n
];
117
}
118
return
v
;
119
}
TrimVertexPool::get
TrimVertex * get(int)
Definition:
trimvertpool.cc:103
TrimVertexPool::~TrimVertexPool
~TrimVertexPool(void)
Definition:
trimvertpool.cc:65
TrimVertexPool::vlist
TrimVertex ** vlist
Definition:
trimvertpool.h:53
TrimVertexPool::vlistsize
int vlistsize
Definition:
trimvertpool.h:55
TrimVertexPool::clear
void clear(void)
Definition:
trimvertpool.cc:81
TrimVertexPool::nextvlistslot
int nextvlistslot
Definition:
trimvertpool.h:54
TrimVertexPool::TrimVertexPool
TrimVertexPool(void)
Definition:
trimvertpool.cc:52
TrimVertex
Definition:
trimvertex.h:43
v
const GLdouble * v
Definition:
gl.h:2040
n
GLdouble n
Definition:
glext.h:7729
memcpy
#define memcpy(s1, s2, n)
Definition:
mkisofs.h:878
pool
Definition:
dbghelp_private.h:53
trimvertex.h
TrimVertex_p
class TrimVertex * TrimVertex_p
Definition:
trimvertex.h:53
trimvertpool.h
INIT_VERTLISTSIZE
#define INIT_VERTLISTSIZE
Definition:
trimvertpool.h:43
sizeof
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
dll
opengl
glu32
src
libnurbs
internals
trimvertpool.cc
Generated on Tue Dec 10 2024 06:03:14 for ReactOS by
1.9.6