Skip to content

Commit 9ee1785

Browse files
Guillaume SabranGuillaume Sabran
authored andcommitted
improve texture stretching
1 parent d672184 commit 9ee1785

File tree

2 files changed

+42
-18
lines changed

2 files changed

+42
-18
lines changed

HelloOpenGL_Swift/OpenGLView.swift

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ struct Vertex {
2323
var TexCoord: (Float, Float)
2424
}
2525

26+
let TEX_COORD_MAX : Float = 1.0
27+
2628
class OpenGLView: UIView {
2729
var _context: EAGLContext?
2830
var _colorRenderBuffer = GLuint()
@@ -41,35 +43,57 @@ class OpenGLView: UIView {
4143

4244

4345
var _vertices = [
44-
Vertex(Position: ( 1, -1, 0), Color: (1, 0, 0, 1), TexCoord: (1, 0)),
45-
Vertex(Position: ( 1, 1, 0), Color: (1, 0, 0, 1), TexCoord: (1, 1)),
46-
Vertex(Position: (-1, 1, 0), Color: (0, 1, 0, 1), TexCoord: (0, 1)),
47-
Vertex(Position: (-1, -1, 0), Color: (0, 1, 0, 1), TexCoord: (0, 0)),
48-
Vertex(Position: ( 1, -1, -1), Color: (1, 0, 0, 1), TexCoord: (1, 0)),
49-
Vertex(Position: ( 1, 1, -1), Color: (1, 0, 0, 1), TexCoord: (1, 1)),
50-
Vertex(Position: (-1, 1, -1), Color: (0, 1, 0, 1), TexCoord: (0, 1)),
51-
Vertex(Position: (-1, -1, -1), Color: (0, 1, 0, 1), TexCoord: (0, 0))
46+
// Front
47+
Vertex(Position: (1, -1, 0), Color: (1, 0, 0, 1), TexCoord: (TEX_COORD_MAX, 0)),
48+
Vertex(Position: (1, 1, 0), Color: (0, 1, 0, 1), TexCoord: (TEX_COORD_MAX, TEX_COORD_MAX)),
49+
Vertex(Position: (-1, 1, 0), Color: (0, 0, 1, 1), TexCoord: (0, TEX_COORD_MAX)),
50+
Vertex(Position: (-1, -1, 0), Color: (0, 0, 0, 1), TexCoord: (0, 0)),
51+
// Back
52+
Vertex(Position: (1, 1, -2), Color: (1, 0, 0, 1), TexCoord: (TEX_COORD_MAX, 0)),
53+
Vertex(Position: (-1, -1, -2), Color: (0, 1, 0, 1), TexCoord: (TEX_COORD_MAX, TEX_COORD_MAX)),
54+
Vertex(Position: (1, -1, -2), Color: (0, 0, 1, 1), TexCoord: (0, TEX_COORD_MAX)),
55+
Vertex(Position: (-1, 1, -2), Color: (0, 0, 0, 1), TexCoord: (0, 0)),
56+
// Left
57+
Vertex(Position: (-1, -1, 0), Color: (1, 0, 0, 1), TexCoord: (TEX_COORD_MAX, 0)),
58+
Vertex(Position: (-1, 1, 0), Color: (0, 1, 0, 1), TexCoord: (TEX_COORD_MAX, TEX_COORD_MAX)),
59+
Vertex(Position: (-1, 1, -2), Color: (0, 0, 1, 1), TexCoord: (0, TEX_COORD_MAX)),
60+
Vertex(Position: (-1, -1, -2), Color: (0, 0, 0, 1), TexCoord: (0, 0)),
61+
// Right
62+
Vertex(Position: (1, -1, -2), Color: (1, 0, 0, 1), TexCoord: (TEX_COORD_MAX, 0)),
63+
Vertex(Position: (1, 1, -2), Color: (0, 1, 0, 1), TexCoord: (TEX_COORD_MAX, TEX_COORD_MAX)),
64+
Vertex(Position: (1, 1, 0), Color: (0, 0, 1, 1), TexCoord: (0, TEX_COORD_MAX)),
65+
Vertex(Position: (1, -1, 0), Color: (0, 0, 0, 1), TexCoord: (0, 0)),
66+
// Top
67+
Vertex(Position: (1, 1, 0), Color: (1, 0, 0, 1), TexCoord: (TEX_COORD_MAX, 0)),
68+
Vertex(Position: (1, 1, -2), Color: (0, 1, 0, 1), TexCoord: (TEX_COORD_MAX, TEX_COORD_MAX)),
69+
Vertex(Position: (-1, 1, -2), Color: (0, 0, 1, 1), TexCoord: (0, TEX_COORD_MAX)),
70+
Vertex(Position: (-1, 1, 0), Color: (0, 0, 0, 1), TexCoord: (0, 0)),
71+
// Bottom
72+
Vertex(Position: (1, -1, -2), Color: (1, 0, 0, 1), TexCoord: (TEX_COORD_MAX, 0)),
73+
Vertex(Position: (1, -1, 0), Color: (0, 1, 0, 1), TexCoord: (TEX_COORD_MAX, TEX_COORD_MAX)),
74+
Vertex(Position: (-1, -1, 0), Color: (0, 0, 1, 1), TexCoord: (0, TEX_COORD_MAX)),
75+
Vertex(Position: (-1, -1, -2), Color: (0, 0, 0, 1), TexCoord: (0, 0)),
5276
]
5377

5478
var _indices : [GLubyte] = [
5579
// Front
5680
0, 1, 2,
5781
2, 3, 0,
5882
// Back
59-
4, 6, 5,
60-
4, 7, 6,
83+
4, 5, 6,
84+
4, 5, 7,
6185
// Left
62-
2, 7, 3,
63-
7, 6, 2,
86+
8, 9, 10,
87+
10, 11, 8,
6488
// Right
65-
0, 4, 1,
66-
4, 1, 5,
89+
12, 13, 14,
90+
14, 15, 12,
6791
// Top
68-
6, 2, 1,
69-
1, 6, 5,
92+
16, 17, 18,
93+
18, 19, 16,
7094
// Bottom
71-
0, 3, 7,
72-
0, 7, 4
95+
20, 21, 22,
96+
22, 23, 20
7397
]
7498

7599
override init(frame: CGRect) {

0 commit comments

Comments
 (0)