質問編集履歴

16

文章の訂正

2024/01/02 02:41

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,331 +1,166 @@
1
1
  全体的に文を変更しました。
2
-
3
-
4
2
 
5
3
  ```opengl
6
4
 
7
-
8
-
9
5
  class Shader
10
-
11
6
  {
12
7
 
13
-
14
-
15
8
  public:
16
-
17
9
  Shader();
18
-
19
10
  ~Shader();
20
-
21
11
  bool Load(const std::string& vertName,
22
-
23
12
  const std::string& fragName);
24
-
25
13
  void SetActive();
26
-
27
14
  void Unload();
28
-
29
15
  private:
30
-
31
16
  bool CompileShader(const std::string& fileName,
32
-
33
17
  GLenum shaderType,GLuint& outShader);
34
18
 
35
-
36
-
37
19
  bool IsCompiled(GLuint shader);
38
-
39
20
  bool IsValidProgram();
40
21
 
41
-
42
-
43
22
  GLuint mVertexShader;
44
-
45
23
  GLuint mFragShader;
46
-
47
24
  GLuint mShaderProgram;
48
-
49
-
50
25
 
51
26
  };
52
27
 
53
28
 
54
-
55
-
56
-
57
29
  bool Shader:: IsCompiled(GLuint shader){
58
30
 
59
-
60
-
61
31
  GLint status;
62
-
63
32
  glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
64
-
65
33
  if(status !=GL_TRUE)
66
-
67
34
  {
68
35
 
69
-
70
-
71
36
  char buffer[512];
72
-
73
37
  memset(buffer,0,512);
74
-
75
38
  glGetShaderInfoLog(shader,511,NULL,buffer);
76
-
77
39
  printf("GLSLのコンパイルが失敗しました:\n%s",buffer);
78
-
79
40
  return false;
80
-
81
41
  }
82
-
83
42
  return true;
84
-
85
43
  }
86
44
 
87
45
 
88
-
89
-
90
-
91
46
  bool Shader::Load(const std::string& vertName,
92
-
93
47
  const std::string& fragName){
94
-
95
48
 
96
-
97
49
  CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader);
98
-
99
50
  CompileShader(fragName,GL_FRAGMENT_SHADER,mFragShader);
100
-
101
51
 
102
-
103
52
  mShaderProgram=glCreateProgram();
104
-
105
53
  glAttachShader(mShaderProgram,mVertexShader);
106
-
107
54
  glAttachShader(mShaderProgram,mFragShader);
108
-
109
55
  glLinkProgram(mShaderProgram);
110
-
111
-
112
56
 
113
57
  return true;}
114
58
 
115
59
 
116
60
 
117
61
 
62
+ bool Shader::CompileShader(const std::string& fileName,
63
+ GLenum shaderType,GLuint& outShader)
64
+ {
65
+ std::ifstream shaderFile(fileName);
66
+
67
+ if(shaderFile.is_open())
68
+ {
69
+ std::stringstream sstream;
70
+
71
+ sstream << shaderFile.rdbuf();
72
+ std::string contents=sstream.str();
73
+
74
+ const char *contentsChar=contents.c_str();
75
+
76
+ outShader=glCreateShader(shaderType);
77
+
78
+ glShaderSource(outShader,1,&(contentsChar),NULL);
79
+ glCompileShader(outShader);
80
+ if(!IsCompiled (outShader))
81
+ {
82
+ return false;
83
+ }
84
+ }
85
+ else
86
+ {
87
+ return false;
88
+ }
89
+ return true;
90
+ }
118
91
 
119
92
 
120
93
 
94
+ void Shader::SetActive(){
121
95
 
122
-
123
- bool Shader::CompileShader(const std::string& fileName,
124
-
125
- GLenum shaderType,GLuint& outShader)
126
-
127
- {
128
-
129
- std::ifstream shaderFile(fileName);
130
-
131
-
132
-
133
- if(shaderFile.is_open())
134
-
135
- {
136
-
137
- std::stringstream sstream;
138
-
139
-
140
-
141
- sstream << shaderFile.rdbuf();
142
-
143
- std::string contents=sstream.str();
144
-
145
-
146
-
147
- const char *contentsChar=contents.c_str();
148
-
149
-
150
-
151
- outShader=glCreateShader(shaderType);
152
-
153
-
154
-
155
- glShaderSource(outShader,1,&(contentsChar),NULL);
156
-
157
- glCompileShader(outShader);
96
+ glUseProgram(mShaderProgram);
158
-
159
- if(!IsCompiled (outShader))
160
-
161
- {
162
-
163
- return false;
164
-
165
- }
166
-
167
- }
168
-
169
- else
170
-
171
- {
172
-
173
- return false;
174
-
175
- }
176
-
177
- return true;
178
97
 
179
98
  }
180
99
 
181
100
 
182
101
 
183
-
184
-
185
-
186
-
187
- void Shader::SetActive(){
102
+ void Shader::Unload(){
188
-
189
-
190
-
191
- glUseProgram(mShaderProgram);
103
+ glDeleteProgram(mShaderProgram);
192
-
104
+ glDeleteShader(mVertexShader);
193
-
105
+ glDeleteShader(mFragShader);
194
-
195
106
  }
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
- void Shader::Unload(){
204
-
205
- glDeleteProgram(mShaderProgram);
206
-
207
- glDeleteShader(mVertexShader);
208
-
209
- glDeleteShader(mFragShader);
210
-
211
- }
212
-
213
107
  ```opengl
214
108
 
215
109
 
216
-
217
-
218
-
219
110
  Building in directory: /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)
220
-
221
111
  make
222
-
223
112
  make all-recursive
224
-
225
113
  make[1]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)' に入ります
226
-
227
114
  Making all in src
228
-
229
115
  make[2]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/src' に入ります
230
-
231
116
  CXX main.o
232
-
233
117
  main.cc: メンバ関数 ‘bool Shader::CompileShader(const string&, GLenum, GLuint&)’ 内:
234
-
235
118
  /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/main.cc:82:34: エラー: no matching function for call to ‘std::basic_ifstream<char>::basic_ifstream(const string&)’
236
-
237
119
  std::ifstream shaderFile(fileName);
238
-
239
120
  ^
240
-
241
121
  /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/main.cc:82:34: 備考: 候補:
242
-
243
122
  In file included from /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/main.cc:17:0:
244
-
245
123
  /usr/include/c++/4.8.2/fstream:467:7: 備考: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
246
-
247
124
  basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
248
-
249
125
  ^
250
-
251
126
  /usr/include/c++/4.8.2/fstream:467:7: 備考: 第 1 引数を ‘const string {aka const std::basic_string<char>}’ から ‘const char*’ へ変換する方法が不明です
252
-
253
127
  /usr/include/c++/4.8.2/fstream:453:7: 備考: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char; _Traits = std::char_traits<char>]
254
-
255
128
  basic_ifstream() : __istream_type(), _M_filebuf()
256
-
257
129
  ^
258
-
259
130
  /usr/include/c++/4.8.2/fstream:453:7: 備考: 候補では 0 個の引数が予期されますが、1 個の引数が与えられています
260
-
261
131
  /usr/include/c++/4.8.2/fstream:427:11: 備考: std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)
262
-
263
132
  class basic_ifstream : public basic_istream<_CharT, _Traits>
264
-
265
133
  ^
266
-
267
134
  /usr/include/c++/4.8.2/fstream:427:11: 備考: 第 1 引数を ‘const string {aka const std::basic_string<char>}’ から ‘const std::basic_ifstream<char>&’ へ変換する方法が不明です
268
-
269
135
  make[2]: *** [main.o] エラー 1
270
-
271
136
  make[2]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/src' から出ます
272
-
273
137
  make[1]: *** [all-recursive] エラー 1
274
-
275
138
  make: *** [all] エラー 2
276
-
277
139
  make[1]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)' から出ます
278
-
279
140
  完了しました (失敗です)
280
-
281
141
  所要時間: 3秒
282
-
283
-
284
142
 
285
143
  ```
286
144
 
287
145
 
288
146
 
147
+ ```opengl
289
148
 
149
+ class Shader *mSpriteShader=new Shader();
290
150
 
151
+ mSpriteShader->Load("./src/GL_ARRAY_BUFFER.vert","./src/GL_ARRAY_BUFFER.frag");
291
152
 
153
+ mSpriteShader->SetActive();
292
154
 
293
155
  ```opengl
294
156
 
295
-
296
-
297
- class Shader *mSpriteShader=new Shader();
298
-
299
-
300
-
301
- mSpriteShader->Load("./src/GL_ARRAY_BUFFER.vert","./src/GL_ARRAY_BUFFER.frag");
302
-
303
-
304
-
305
- mSpriteShader->SetActive();
306
-
307
-
308
-
309
- ```opengl
310
-
311
-
312
-
313
157
  追記 ● Glewはいれてみました。エラー内容が読めないです。これはどういったエラーでしょうか。
314
-
315
-
316
158
 
317
159
  ```
318
160
 
319
-
320
-
321
161
  シェーダーのリンクなのですが、とある人が数字と文字を画面に出すようなシェーダーをつくっていました。
322
-
323
- で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人はどうやら本を参考にしているだけなようで自分で書いた部分がある)はどうでもいいだが、エラーしたコードが直せません。どこがちがうのでしょうか。
162
+ で自分もその結果が使いたくシェーダの本を手にとってみましたが、コードのエラーが直せません。どこがちがうのでしょうか。
324
-
325
163
  使用した本 ゲームプログラミング c++ //私が提示したコードは同じです。悩んでも仕方ないから回答依頼だすよ
326
164
 
327
-
328
-
329
165
  なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。まだ途中ですけど。
330
-
331
166
  .vertと.fragは読み込んだけど、VAOとVBOって何

15

文の変更

2020/10/22 06:50

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ 全体的に文を変更しました。
2
+
3
+
4
+
1
5
  ```opengl
2
6
 
3
7
 

14

文の改善

2020/10/22 06:50

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -306,7 +306,7 @@
306
306
 
307
307
 
308
308
 
309
- 追記 ● Glewはいれてみました。エラー内容が読めないです。
309
+ 追記 ● Glewはいれてみました。エラー内容が読めないです。これはどういったエラーでしょうか。
310
310
 
311
311
 
312
312
 

13

文の改善

2020/10/22 04:22

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -302,18 +302,18 @@
302
302
 
303
303
 
304
304
 
305
+ ```opengl
306
+
307
+
308
+
309
+ 追記 ● Glewはいれてみました。エラー内容が読めないです。
310
+
311
+
312
+
305
313
  ```
306
314
 
307
315
 
308
316
 
309
- 追記 ● Glewはいれてみました。エラー内容が読めないです。
310
-
311
-
312
-
313
-
314
-
315
-
316
-
317
317
  シェーダーのリンクなのですが、とある人が数字と文字を画面に出すようなシェーダーをつくっていました。
318
318
 
319
319
  で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分がある)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。

12

文の改善

2020/10/22 04:20

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
 
4
4
 
5
-
6
-
7
5
  class Shader
8
6
 
9
7
  {
@@ -14,73 +12,165 @@
14
12
 
15
13
  Shader();
16
14
 
17
- ~Shader();
15
+ ~Shader();
18
16
 
19
17
  bool Load(const std::string& vertName,
20
18
 
21
19
  const std::string& fragName);
22
20
 
23
- void SetActive();
21
+ void SetActive();
24
22
 
25
23
  void Unload();
26
24
 
27
- private:
25
+ private:
28
-
26
+
29
- bool CompileShader(const std::string& fileName,
27
+ bool CompileShader(const std::string& fileName,
30
-
28
+
31
- GLenum shaderType,GLuint& outShader);
29
+ GLenum shaderType,GLuint& outShader);
32
-
33
-
34
-
30
+
31
+
32
+
35
- bool IsCompiled(GLuint shader);
33
+ bool IsCompiled(GLuint shader);
36
-
34
+
37
- bool IsValidProgram();
35
+ bool IsValidProgram();
38
-
39
-
40
-
36
+
37
+
38
+
41
- GLuint mVertexShader;
39
+ GLuint mVertexShader;
42
-
40
+
43
- GLuint mFragShader;
41
+ GLuint mFragShader;
44
-
42
+
45
- GLuint mShaderProgram;
43
+ GLuint mShaderProgram;
44
+
45
+
46
+
47
+ };
48
+
49
+
50
+
51
+
52
+
53
+ bool Shader:: IsCompiled(GLuint shader){
54
+
55
+
56
+
57
+ GLint status;
58
+
59
+ glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
60
+
61
+ if(status !=GL_TRUE)
62
+
63
+ {
64
+
65
+
66
+
67
+ char buffer[512];
68
+
69
+ memset(buffer,0,512);
70
+
71
+ glGetShaderInfoLog(shader,511,NULL,buffer);
72
+
73
+ printf("GLSLのコンパイルが失敗しました:\n%s",buffer);
74
+
75
+ return false;
76
+
77
+ }
78
+
79
+ return true;
80
+
81
+ }
82
+
83
+
84
+
85
+
86
+
87
+ bool Shader::Load(const std::string& vertName,
88
+
89
+ const std::string& fragName){
46
90
 
47
91
 
48
92
 
49
- };
50
-
51
-
52
-
53
-
54
-
55
- bool Shader:: IsCompiled(GLuint shader){
93
+ CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader);
56
-
94
+
57
- GLint status;
95
+ CompileShader(fragName,GL_FRAGMENT_SHADER,mFragShader);
58
-
59
-
60
96
 
61
97
 
62
98
 
99
+ mShaderProgram=glCreateProgram();
100
+
101
+ glAttachShader(mShaderProgram,mVertexShader);
102
+
63
- glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
103
+ glAttachShader(mShaderProgram,mFragShader);
104
+
64
-
105
+ glLinkProgram(mShaderProgram);
106
+
107
+
108
+
109
+ return true;}
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ bool Shader::CompileShader(const std::string& fileName,
120
+
121
+ GLenum shaderType,GLuint& outShader)
122
+
123
+ {
124
+
125
+ std::ifstream shaderFile(fileName);
126
+
127
+
128
+
65
- if(status !=GL_TRUE)
129
+ if(shaderFile.is_open())
130
+
131
+ {
132
+
133
+ std::stringstream sstream;
134
+
135
+
136
+
137
+ sstream << shaderFile.rdbuf();
138
+
139
+ std::string contents=sstream.str();
140
+
141
+
142
+
143
+ const char *contentsChar=contents.c_str();
144
+
145
+
146
+
147
+ outShader=glCreateShader(shaderType);
148
+
149
+
150
+
151
+ glShaderSource(outShader,1,&(contentsChar),NULL);
152
+
153
+ glCompileShader(outShader);
154
+
155
+ if(!IsCompiled (outShader))
156
+
157
+ {
158
+
159
+ return false;
160
+
161
+ }
162
+
163
+ }
164
+
165
+ else
66
166
 
67
167
  {
68
168
 
69
-
70
-
71
- char buffer[512];
72
-
73
- memset(buffer,0,512);
74
-
75
- glGetShaderInfoLog(shader,511,nullptr,buffer);
76
-
77
- // printf("GLSLのコンパイルが失敗しました:\n%s",buffer);
78
-
79
- return false;
169
+ return false;
80
170
 
81
171
  }
82
172
 
83
- return true;
173
+ return true;
84
174
 
85
175
  }
86
176
 
@@ -90,199 +180,101 @@
90
180
 
91
181
 
92
182
 
93
- bool Shader::Load(const std::string& vertName,
94
-
95
- const std::string& fragName)
96
-
97
- {if(!CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader)||
98
-
99
- !CompileShader(fragName,GL_FRAGMENT_SHADER,mFragShader))
100
-
101
- {return false;}
102
-
103
-
104
-
105
- mShaderProgram=glCreateProgram();
183
+ void Shader::SetActive(){
106
-
107
- glAttachShader(mShaderProgram,mVertexShader);
184
+
108
-
109
- glAttachShader(mShaderProgram,mFragShader);
185
+
110
-
186
+
111
- glLinkprogram(mShaderProgram);
187
+ glUseProgram(mShaderProgram);
112
-
113
- if(!isValidProgram())
188
+
114
-
115
- {return false;
189
+
116
-
190
+
117
- }
191
+ }
192
+
193
+
194
+
195
+
196
+
197
+
198
+
118
-
199
+ void Shader::Unload(){
200
+
201
+ glDeleteProgram(mShaderProgram);
202
+
203
+ glDeleteShader(mVertexShader);
204
+
119
- return true;
205
+ glDeleteShader(mFragShader);
120
-
206
+
121
- }
207
+ }
208
+
122
-
209
+ ```opengl
210
+
211
+
212
+
213
+
214
+
123
-
215
+ Building in directory: /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)
216
+
124
-
217
+ make
218
+
125
- 追記 スペルミス というかわからない
219
+ make all-recursive
220
+
126
-
221
+ make[1]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)' に入ります
222
+
127
-
223
+ Making all in src
224
+
128
-
225
+ make[2]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/src' に入ります
226
+
129
-
227
+ CXX main.o
130
-
228
+
131
- bool Shader::CompileShader(const std::string& fileName,
229
+ main.cc: メンバ関数 ‘bool Shader::CompileShader(const string&, GLenum, GLuint&)’ 内:
132
-
230
+
133
- GLenum shaderType,GLuint& outShader)
231
+ /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/main.cc:82:34: エラー: no matching function for call to ‘std::basic_ifstream<char>::basic_ifstream(const string&)
134
-
135
- {
136
232
 
137
233
  std::ifstream shaderFile(fileName);
138
234
 
139
-
140
-
141
- if(shaderFile.is_open())
142
-
143
- {
144
-
145
- std::stringstream sstream;
146
-
147
-
148
-
149
- sstream << shaderFile.rdbuf();
150
-
151
- std::string contents=sstream.str();
152
-
153
-
154
-
155
- const char *contentsChar=contents.c_str();
156
-
157
-
158
-
159
- outShader=glCreateShader(shaderType);
160
-
161
-
162
-
163
- glShaderSource(outShader,1,&(contentsChar),nullptr);
164
-
165
- glCompileShader(outShader);
166
-
167
-
168
-
169
- if(!IsCompiled(outShader))
170
-
171
- {
172
-
173
- // printf("シェダー%sのコンパイルに失敗しました",
174
-
175
- // fileName.c_str());
176
-
177
- return false;
178
-
179
- }
180
-
181
- }
182
-
183
- else{
184
-
185
- //printf("シェーダーの%sがみつかりません",fileName.c_str());
186
-
187
-
188
-
189
- return false;
190
-
191
- }
192
-
193
- return true;
194
-
195
- }
196
-
197
-
198
-
199
-
200
-
201
- {
202
-
203
- printf("シェーダー%sのコンパイルに失敗しました",fileName.c_str());
204
-
205
- return false;
206
-
207
- }
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
- bool Shader::Load(const std::string& vertName,
216
-
217
- const std::string& flagName)
218
-
219
- {if (!CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader)||
220
-
221
- !CompileShader(fragName,GL_FRAGMENT_SHADER,mFragShader))
222
-
223
- {return false;
224
-
225
- }
226
-
227
-
228
-
229
- mShaderProgram=glCreateProgram();
230
-
231
- glAttachShader(mShaderProgram,mVertexShader);
232
-
233
- glAttachShader(mShaderProgram,mFragShader);
234
-
235
- glLinkProgram(mShaderProgram);
236
-
237
-
238
-
239
-
240
-
241
- if(!IsValidProgram ())
242
-
243
- {return false;
244
-
245
- }
246
-
247
- return true;
248
-
249
- }
250
-
251
- }
252
-
253
-
254
-
255
-
256
-
257
- void Shader::SetActive()
258
-
259
- {
260
-
261
-
262
-
263
- glUseProgram(mShaderprogram);
264
-
265
-
266
-
267
- }
268
-
269
-
270
-
271
-
272
-
273
- void Shader::Unload(){
274
-
275
-
276
-
277
- glDeleteProgram(mShaderProgram);
278
-
279
-
280
-
281
- glDeletaShade(mVertexShader);
282
-
283
- glDeleteShade(mFragShader);
284
-
285
- }
235
+ ^
236
+
237
+ /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/main.cc:82:34: 備考: 候補:
238
+
239
+ In file included from /home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/main.cc:17:0:
240
+
241
+ /usr/include/c++/4.8.2/fstream:467:7: 備考: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
242
+
243
+ basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
244
+
245
+ ^
246
+
247
+ /usr/include/c++/4.8.2/fstream:467:7: 備考: 1 引数を ‘const string {aka const std::basic_string<char>}’ から ‘const char*’ へ変換する方法が不明です
248
+
249
+ /usr/include/c++/4.8.2/fstream:453:7: 備考: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char; _Traits = std::char_traits<char>]
250
+
251
+ basic_ifstream() : __istream_type(), _M_filebuf()
252
+
253
+ ^
254
+
255
+ /usr/include/c++/4.8.2/fstream:453:7: 備考: 候補では 0 個の引数が予期されますが、1 個の引数が与えられています
256
+
257
+ /usr/include/c++/4.8.2/fstream:427:11: 備考: std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)
258
+
259
+ class basic_ifstream : public basic_istream<_CharT, _Traits>
260
+
261
+ ^
262
+
263
+ /usr/include/c++/4.8.2/fstream:427:11: 備考: 1 引数を ‘const string {aka const std::basic_string<char>}’ から ‘const std::basic_ifstream<char>&’ へ変換する方法が不明です
264
+
265
+ make[2]: *** [main.o] エラー 1
266
+
267
+ make[2]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)/src' から出ます
268
+
269
+ make[1]: *** [all-recursive] エラ 1
270
+
271
+ make: *** [all] エラー 2
272
+
273
+ make[1]: ディレクトリ `/home/hide/Desktop/foobar_xfile 2 (5 番目のコピー)' から出ます
274
+
275
+ 完了しました (失敗です)
276
+
277
+ 所要時間: 3秒
286
278
 
287
279
 
288
280
 
@@ -294,91 +286,19 @@
294
286
 
295
287
 
296
288
 
297
-
298
-
299
- main.cc: メンバ関数 ‘bool Shader::IsCompiled(GLuint)’ 内:
300
-
301
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
302
-
303
- glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
304
-
305
- ^
306
-
307
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:33: エラー: ‘nullptr’ was not declared in this scope
308
-
309
- glGetShaderInfoLog(shader,511,nullptr,buffer);
310
-
311
- ^
312
-
313
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
314
-
315
- glGetShaderInfoLog(shader,511,nullptr,buffer);
316
-
317
- ^
318
-
319
- main.cc: メンバ関数 ‘bool Shader::Load(const string&, const string&)’ 内:
320
-
321
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:71:20: エラー: ‘flagName’ was not declared in this scope
322
-
323
- !CompileShader(flagName,GL_FRAGMENT_SHADER,mFragShader))
324
-
325
- ^
326
-
327
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:74:32: エラー: ‘glCreateProgram’ was not declared in this scope
328
-
329
- mShaderProgram=glCreateProgram();
289
+ ```opengl
330
-
331
- ^
290
+
332
-
333
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:17: エラー: ‘mShaderprogram’ was not declared in this scope
291
+
334
-
292
+
335
- glAttachShader(mShaderprogram,mVertexShader);
293
+ class Shader *mSpriteShader=new Shader();
336
-
337
- ^
294
+
338
-
295
+
296
+
339
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:45: エラー: ‘glAttachShader’ was not declared in this scope
297
+ mSpriteShader->Load("./src/GL_ARRAY_BUFFER.vert","./src/GL_ARRAY_BUFFER.frag");
340
-
298
+
299
+
300
+
341
- glAttachShader(mShaderprogram,mVertexShader);
301
+ mSpriteShader->SetActive();
342
-
343
- ^
344
-
345
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:77:30: エラー: ‘glLinkprogram’ was not declared in this scope
346
-
347
- glLinkprogram(mShaderProgram);
348
-
349
- ^
350
-
351
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:78:21: エラー: ‘isValidProgram’ was not declared in this scope
352
-
353
- if(!isValidProgram())
354
-
355
- ^
356
-
357
- main.cc: 大域スコープ:
358
-
359
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:89:62: エラー: no ‘bool Shader::Compilehader(const string&, GLenum, GLuint&)’ member function declared in class ‘Shader’
360
-
361
- GLenum shaderType,GLuint& outShader)
362
-
363
- ^
364
-
365
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:120:8: エラー: redefinition of ‘bool Shader::Load(const string&, const string&)’
366
-
367
- bool Shader::Load(const std::string& vertName,
368
-
369
- ^
370
-
371
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:68:6: エラー: ‘bool Shader::Load(const string&, const string&)’ previously defined here
372
-
373
- bool Shader::Load(const std::string& vertName,
374
-
375
- ^
376
-
377
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:138:3: エラー: expected declaration before ‘}’ token
378
-
379
- }
380
-
381
-
382
302
 
383
303
 
384
304
 
@@ -386,31 +306,9 @@
386
306
 
387
307
 
388
308
 
389
-
390
-
391
-
392
-
393
- ```opengl
394
-
395
- class Shader* mSpriteshader;
396
-
397
-
398
-
399
- mSpriteshader=new Shader;
400
-
401
-
402
-
403
- if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRAY_BUFFER.frag"))
404
-
405
- {return false;
406
-
407
-
408
-
409
- }
410
-
411
- mSpriteShader->SetActive ();
309
+ 追記 ● Glewはいれてみました。エラー内容が読めないです。
412
-
413
- ```
310
+
311
+
414
312
 
415
313
 
416
314
 

11

文の変更

2020/10/22 04:19

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -425,3 +425,5 @@
425
425
 
426
426
 
427
427
  なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。まだ途中ですけど。
428
+
429
+ .vertと.fragは読み込んだけど、VAOとVBOって何

10

文の改善

2020/10/20 08:08

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -424,4 +424,4 @@
424
424
 
425
425
 
426
426
 
427
- なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。VBOのはじりましかみてないですけど。
427
+ なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。まだ途中ですけど。

9

文の改善

2020/10/20 07:47

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -424,4 +424,4 @@
424
424
 
425
425
 
426
426
 
427
- なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。VBOまでしかみてないですけど。
427
+ なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。VBOのはじりまでしかみてないですけど。

8

文の改善

2020/10/20 07:34

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -421,3 +421,7 @@
421
421
  で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分がある)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。
422
422
 
423
423
  使用した本 ゲームプログラミング c++ //私が提示したコードは同じです。悩んでも仕方ないから回答依頼だすよ
424
+
425
+
426
+
427
+ なんかエラーでるかもしれないけど[ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)が参考になった。VBOまでしかみてないですけど。

7

文の改善

2020/10/20 07:33

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -2,16 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- 追記
6
-
7
- スペルミス
8
-
9
5
 
10
6
 
11
7
  class Shader
12
8
 
13
-
14
-
15
9
  {
16
10
 
17
11
 
@@ -32,7 +26,9 @@
32
26
 
33
27
  private:
34
28
 
35
- bool CompileShader(const std::string&fileName, GLenum shaderType,GLuint& outShader);
29
+ bool CompileShader(const std::string& fileName,
30
+
31
+ GLenum shaderType,GLuint& outShader);
36
32
 
37
33
 
38
34
 
@@ -54,15 +50,21 @@
54
50
 
55
51
 
56
52
 
53
+
54
+
57
55
  bool Shader:: IsCompiled(GLuint shader){
58
56
 
59
57
  GLint status;
60
58
 
61
59
 
62
60
 
61
+
62
+
63
63
  glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
64
64
 
65
- if(status !=GL_TRUE){
65
+ if(status !=GL_TRUE)
66
+
67
+ {
66
68
 
67
69
 
68
70
 
@@ -72,7 +74,7 @@
72
74
 
73
75
  glGetShaderInfoLog(shader,511,nullptr,buffer);
74
76
 
75
- printf("GLSLのコンパイルが失敗しました:\n%s",buffer);
77
+ // printf("GLSLのコンパイルが失敗しました:\n%s",buffer);
76
78
 
77
79
  return false;
78
80
 
@@ -94,7 +96,7 @@
94
96
 
95
97
  {if(!CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader)||
96
98
 
97
- !CompileShader(flagName,GL_FRAGMENT_SHADER,mFragShader))
99
+ !CompileShader(fragName,GL_FRAGMENT_SHADER,mFragShader))
98
100
 
99
101
  {return false;}
100
102
 
@@ -102,7 +104,7 @@
102
104
 
103
105
  mShaderProgram=glCreateProgram();
104
106
 
105
- glAttachShader(mShaderprogram,mVertexShader);
107
+ glAttachShader(mShaderProgram,mVertexShader);
106
108
 
107
109
  glAttachShader(mShaderProgram,mFragShader);
108
110
 
@@ -112,8 +114,6 @@
112
114
 
113
115
  {return false;
114
116
 
115
-
116
-
117
117
  }
118
118
 
119
119
  return true;
@@ -122,13 +122,13 @@
122
122
 
123
123
 
124
124
 
125
-
125
+ 追記 スペルミス というかわからない
126
-
127
-
128
-
129
-
130
-
126
+
127
+
128
+
129
+
130
+
131
- bool Shader::Compilehader(const std::string& fileName,
131
+ bool Shader::CompileShader(const std::string& fileName,
132
132
 
133
133
  GLenum shaderType,GLuint& outShader)
134
134
 
@@ -148,7 +148,7 @@
148
148
 
149
149
  sstream << shaderFile.rdbuf();
150
150
 
151
- std::string contents=sstream.str();
151
+ std::string contents=sstream.str();
152
152
 
153
153
 
154
154
 
@@ -156,207 +156,259 @@
156
156
 
157
157
 
158
158
 
159
-
160
-
161
159
  outShader=glCreateShader(shaderType);
162
160
 
161
+
162
+
163
- glShaderSource(outShader,1,&(contentsChar),nullptr);
163
+ glShaderSource(outShader,1,&(contentsChar),nullptr);
164
164
 
165
165
  glCompileShader(outShader);
166
166
 
167
-
168
-
167
+
168
+
169
- if(!IsCompiled(outShader)){
169
+ if(!IsCompiled(outShader))
170
+
170
-
171
+ {
172
+
171
- printf("シェーダー%sのコンパイルに失敗しました",
173
+ // printf("シェーダー%sのコンパイルに失敗しました",
172
-
174
+
173
- fileName.c_str());
175
+ // fileName.c_str());
174
-
176
+
175
- return false;}
177
+ return false;
178
+
179
+ }
176
180
 
177
181
  }
178
182
 
179
183
  else{
180
184
 
181
- printf("シェーダーの%sがみつかりません",fileName.c_str());
185
+ //printf("シェーダーの%sがみつかりません",fileName.c_str());
182
186
 
183
187
 
184
188
 
185
189
  return false;
186
190
 
191
+ }
192
+
193
+ return true;
194
+
187
195
  }
188
196
 
197
+
198
+
199
+
200
+
201
+ {
202
+
203
+ printf("シェーダー%sのコンパイルに失敗しました",fileName.c_str());
204
+
205
+ return false;
206
+
207
+ }
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+ bool Shader::Load(const std::string& vertName,
216
+
217
+ const std::string& flagName)
218
+
219
+ {if (!CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader)||
220
+
221
+ !CompileShader(fragName,GL_FRAGMENT_SHADER,mFragShader))
222
+
223
+ {return false;
224
+
225
+ }
226
+
227
+
228
+
229
+ mShaderProgram=glCreateProgram();
230
+
231
+ glAttachShader(mShaderProgram,mVertexShader);
232
+
233
+ glAttachShader(mShaderProgram,mFragShader);
234
+
235
+ glLinkProgram(mShaderProgram);
236
+
237
+
238
+
239
+
240
+
241
+ if(!IsValidProgram ())
242
+
243
+ {return false;
244
+
245
+ }
246
+
189
247
  return true;
190
248
 
191
249
  }
192
250
 
193
-
251
+ }
252
+
253
+
254
+
255
+
256
+
194
-
257
+ void Shader::SetActive()
258
+
259
+ {
260
+
261
+
262
+
263
+ glUseProgram(mShaderprogram);
264
+
265
+
266
+
267
+ }
268
+
269
+
270
+
271
+
272
+
273
+ void Shader::Unload(){
274
+
275
+
276
+
277
+ glDeleteProgram(mShaderProgram);
278
+
279
+
280
+
281
+ glDeletaShade(mVertexShader);
282
+
283
+ glDeleteShade(mFragShader);
284
+
285
+ }
286
+
287
+
288
+
289
+ ```
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+ main.cc: メンバ関数 ‘bool Shader::IsCompiled(GLuint)’ 内:
300
+
301
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
302
+
303
+ glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
304
+
305
+ ^
306
+
307
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:33: エラー: ‘nullptr’ was not declared in this scope
308
+
309
+ glGetShaderInfoLog(shader,511,nullptr,buffer);
310
+
311
+ ^
312
+
313
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
314
+
315
+ glGetShaderInfoLog(shader,511,nullptr,buffer);
316
+
317
+ ^
318
+
319
+ main.cc: メンバ関数 ‘bool Shader::Load(const string&, const string&)’ 内:
320
+
321
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:71:20: エラー: ‘flagName’ was not declared in this scope
322
+
323
+ !CompileShader(flagName,GL_FRAGMENT_SHADER,mFragShader))
324
+
325
+ ^
326
+
327
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:74:32: エラー: ‘glCreateProgram’ was not declared in this scope
328
+
329
+ mShaderProgram=glCreateProgram();
330
+
331
+ ^
332
+
333
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:17: エラー: ‘mShaderprogram’ was not declared in this scope
334
+
335
+ glAttachShader(mShaderprogram,mVertexShader);
336
+
337
+ ^
338
+
339
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:45: エラー: ‘glAttachShader’ was not declared in this scope
340
+
341
+ glAttachShader(mShaderprogram,mVertexShader);
342
+
343
+ ^
344
+
345
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:77:30: エラー: ‘glLinkprogram’ was not declared in this scope
346
+
347
+ glLinkprogram(mShaderProgram);
348
+
349
+ ^
350
+
351
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:78:21: エラー: ‘isValidProgram’ was not declared in this scope
352
+
353
+ if(!isValidProgram())
354
+
355
+ ^
356
+
357
+ main.cc: 大域スコープ:
358
+
359
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:89:62: エラー: no ‘bool Shader::Compilehader(const string&, GLenum, GLuint&)’ member function declared in class ‘Shader’
360
+
361
+ GLenum shaderType,GLuint& outShader)
362
+
363
+ ^
364
+
365
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:120:8: エラー: redefinition of ‘bool Shader::Load(const string&, const string&)’
366
+
195
- bool Shader::Load(const std::string& vertName,
367
+ bool Shader::Load(const std::string& vertName,
368
+
196
-
369
+ ^
370
+
371
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:68:6: エラー: ‘bool Shader::Load(const string&, const string&)’ previously defined here
372
+
197
- const std::string& flagName)
373
+ bool Shader::Load(const std::string& vertName,
374
+
198
-
375
+ ^
376
+
377
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:138:3: エラー: expected declaration before ‘}’ token
378
+
379
+ }
380
+
381
+
382
+
383
+
384
+
385
+ ```
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+ ```opengl
394
+
199
- {if (!CompileShader(vertName,GL_VERTEX_SHADER,mVertexShader)||
395
+ class Shader* mSpriteshader;
396
+
397
+
398
+
200
-
399
+ mSpriteshader=new Shader;
400
+
401
+
402
+
201
- !CompileShader(flagName,GL_FRAGMENT_SHADER,mFragShader))
403
+ if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRAY_BUFFER.frag"))
202
404
 
203
405
  {return false;
204
406
 
407
+
408
+
205
- }
409
+ }
206
-
207
-
208
-
209
- mShaderProgram=glCreateProgram();
410
+
210
-
211
- glAttachShader(mShaderProgram,mVertexShader);
212
-
213
- glAttachShader(mShaderProgram,mFragShader);
214
-
215
- glLinkProgram(mShaderProgram);
216
-
217
-
218
-
219
-
220
-
221
- if(!IsValidProgram ())
222
-
223
- {return false;
224
-
225
- }
226
-
227
- return true;
228
-
229
- }
230
-
231
- }
232
-
233
-
234
-
235
-
236
-
237
- void Shader::SetActive()
411
+ mSpriteShader->SetActive ();
238
-
239
- {
240
-
241
-
242
-
243
- glUseProgram(mShadeprogram);
244
-
245
-
246
-
247
- }
248
-
249
-
250
-
251
- void Shader::Unload(){
252
-
253
-
254
-
255
- glDeleteProgram(mShaderProgram);
256
-
257
-
258
-
259
- glDeletaShade(mVertexShader);
260
-
261
- glDeleteShade(mFragShader);
262
-
263
- }
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
- main.cc: メンバ関数 ‘bool Shader::IsCompiled(GLuint)’ 内:
276
-
277
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
278
-
279
- glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
280
-
281
- ^
282
-
283
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:33: エラー: ‘nullptr’ was not declared in this scope
284
-
285
- glGetShaderInfoLog(shader,511,nullptr,buffer);
286
-
287
- ^
288
-
289
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
290
-
291
- glGetShaderInfoLog(shader,511,nullptr,buffer);
292
-
293
- ^
294
-
295
- main.cc: メンバ関数 ‘bool Shader::Load(const string&, const string&)’ 内:
296
-
297
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:71:20: エラー: ‘flagName’ was not declared in this scope
298
-
299
- !CompileShader(flagName,GL_FRAGMENT_SHADER,mFragShader))
300
-
301
- ^
302
-
303
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:74:32: エラー: ‘glCreateProgram’ was not declared in this scope
304
-
305
- mShaderProgram=glCreateProgram();
306
-
307
- ^
308
-
309
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:17: エラー: ‘mShaderprogram’ was not declared in this scope
310
-
311
- glAttachShader(mShaderprogram,mVertexShader);
312
-
313
- ^
314
-
315
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:45: エラー: ‘glAttachShader’ was not declared in this scope
316
-
317
- glAttachShader(mShaderprogram,mVertexShader);
318
-
319
- ^
320
-
321
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:77:30: エラー: ‘glLinkprogram’ was not declared in this scope
322
-
323
- glLinkprogram(mShaderProgram);
324
-
325
- ^
326
-
327
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:78:21: エラー: ‘isValidProgram’ was not declared in this scope
328
-
329
- if(!isValidProgram())
330
-
331
- ^
332
-
333
- main.cc: 大域スコープ:
334
-
335
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:89:62: エラー: no ‘bool Shader::Compilehader(const string&, GLenum, GLuint&)’ member function declared in class ‘Shader’
336
-
337
- GLenum shaderType,GLuint& outShader)
338
-
339
- ^
340
-
341
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:120:8: エラー: redefinition of ‘bool Shader::Load(const string&, const string&)’
342
-
343
- bool Shader::Load(const std::string& vertName,
344
-
345
- ^
346
-
347
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:68:6: エラー: ‘bool Shader::Load(const string&, const string&)’ previously defined here
348
-
349
- bool Shader::Load(const std::string& vertName,
350
-
351
- ^
352
-
353
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:138:3: エラー: expected declaration before ‘}’ token
354
-
355
- }
356
-
357
-
358
-
359
-
360
412
 
361
413
  ```
362
414
 
@@ -364,34 +416,6 @@
364
416
 
365
417
 
366
418
 
367
-
368
-
369
- ```opengl
370
-
371
- class Shader* mSpriteshader;
372
-
373
-
374
-
375
- mSpriteshader=new Shader;
376
-
377
-
378
-
379
- if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRAY_BUFFER.frag"))
380
-
381
- {return false;
382
-
383
-
384
-
385
- }
386
-
387
- mSpriteShader->SetActive ();
388
-
389
- ```
390
-
391
-
392
-
393
-
394
-
395
419
  シェーダーのリンクなのですが、とある人が数字と文字を画面に出すようなシェーダーをつくっていました。
396
420
 
397
421
  で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分がある)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。

6

文の変更

2020/10/20 01:27

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -376,7 +376,7 @@
376
376
 
377
377
 
378
378
 
379
- if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRY_BUFFER.frag"))
379
+ if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRAY_BUFFER.frag"))
380
380
 
381
381
  {return false;
382
382
 

5

文の変更

2020/10/19 13:49

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -396,4 +396,4 @@
396
396
 
397
397
  で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分がある)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。
398
398
 
399
- 使用した本 ゲームプログラミング c++ //私が提示したコードは同じです。
399
+ 使用した本 ゲームプログラミング c++ //私が提示したコードは同じです。悩んでも仕方ないから回答依頼だすよ

4

文の変更

2020/10/19 13:46

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
-
5
+ 追記
6
+
7
+ スペルミス
6
8
 
7
9
 
8
10
 
@@ -16,9 +18,9 @@
16
18
 
17
19
  public:
18
20
 
19
- Shader(){};
21
+ Shader();
20
-
22
+
21
- ~Shader(){};
23
+ ~Shader();
22
24
 
23
25
  bool Load(const std::string& vertName,
24
26
 
@@ -36,7 +38,7 @@
36
38
 
37
39
  bool IsCompiled(GLuint shader);
38
40
 
39
- bool IsValidProgram(){};
41
+ bool IsValidProgram();
40
42
 
41
43
 
42
44
 
@@ -82,7 +84,7 @@
82
84
 
83
85
 
84
86
 
85
- }
87
+
86
88
 
87
89
 
88
90
 
@@ -98,19 +100,27 @@
98
100
 
99
101
 
100
102
 
101
- mShadeProgram=glCreateProgram();
103
+ mShaderProgram=glCreateProgram();
102
-
104
+
103
- glAttachShader(mShadeprogram,mVertexShader);
105
+ glAttachShader(mShaderprogram,mVertexShader);
104
106
 
105
107
  glAttachShader(mShaderProgram,mFragShader);
106
108
 
107
- glLink(mShaderProgram);
109
+ glLinkprogram(mShaderProgram);
108
-
110
+
109
- if(!isValidProgram()){return false}
111
+ if(!isValidProgram())
110
-
112
+
111
- return true;}
113
+ {return false;
112
-
114
+
115
+
116
+
113
- }
117
+ }
118
+
119
+ return true;
120
+
121
+ }
122
+
123
+
114
124
 
115
125
 
116
126
 
@@ -132,7 +142,7 @@
132
142
 
133
143
  {
134
144
 
135
- std::stringname sstream;
145
+ std::stringstream sstream;
136
146
 
137
147
 
138
148
 
@@ -146,9 +156,11 @@
146
156
 
147
157
 
148
158
 
159
+
160
+
149
161
  outShader=glCreateShader(shaderType);
150
162
 
151
- glShadeSource(outShader,1,&(contentsChar),nullptr);
163
+ glShaderSource(outShader,1,&(contentsChar),nullptr);
152
164
 
153
165
  glCompileShader(outShader);
154
166
 
@@ -178,6 +190,8 @@
178
190
 
179
191
  }
180
192
 
193
+
194
+
181
195
  bool Shader::Load(const std::string& vertName,
182
196
 
183
197
  const std::string& flagName)
@@ -202,6 +216,8 @@
202
216
 
203
217
 
204
218
 
219
+
220
+
205
221
  if(!IsValidProgram ())
206
222
 
207
223
  {return false;
@@ -256,11 +272,9 @@
256
272
 
257
273
 
258
274
 
259
-
260
-
261
275
  main.cc: メンバ関数 ‘bool Shader::IsCompiled(GLuint)’ 内:
262
276
 
263
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
277
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
264
278
 
265
279
  glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
266
280
 
@@ -272,17 +286,75 @@
272
286
 
273
287
  ^
274
288
 
275
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
289
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
276
290
 
277
291
  glGetShaderInfoLog(shader,511,nullptr,buffer);
278
292
 
279
293
  ^
280
294
 
295
+ main.cc: メンバ関数 ‘bool Shader::Load(const string&, const string&)’ 内:
296
+
297
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:71:20: エラー: ‘flagName’ was not declared in this scope
298
+
299
+ !CompileShader(flagName,GL_FRAGMENT_SHADER,mFragShader))
300
+
301
+ ^
302
+
303
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:74:32: エラー: ‘glCreateProgram’ was not declared in this scope
304
+
305
+ mShaderProgram=glCreateProgram();
306
+
307
+ ^
308
+
309
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:17: エラー: ‘mShaderprogram’ was not declared in this scope
310
+
311
+ glAttachShader(mShaderprogram,mVertexShader);
312
+
313
+ ^
314
+
315
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:75:45: エラー: ‘glAttachShader’ was not declared in this scope
316
+
317
+ glAttachShader(mShaderprogram,mVertexShader);
318
+
319
+ ^
320
+
321
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:77:30: エラー: ‘glLinkprogram’ was not declared in this scope
322
+
323
+ glLinkprogram(mShaderProgram);
324
+
325
+ ^
326
+
327
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:78:21: エラー: ‘isValidProgram’ was not declared in this scope
328
+
329
+ if(!isValidProgram())
330
+
331
+ ^
332
+
281
333
  main.cc: 大域スコープ:
282
334
 
335
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:89:62: エラー: no ‘bool Shader::Compilehader(const string&, GLenum, GLuint&)’ member function declared in class ‘Shader’
336
+
337
+ GLenum shaderType,GLuint& outShader)
338
+
339
+ ^
340
+
341
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:120:8: エラー: redefinition of ‘bool Shader::Load(const string&, const string&)’
342
+
343
+ bool Shader::Load(const std::string& vertName,
344
+
345
+ ^
346
+
347
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:68:6: エラー: ‘bool Shader::Load(const string&, const string&)’ previously defined here
348
+
349
+ bool Shader::Load(const std::string& vertName,
350
+
351
+ ^
352
+
283
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:66:1: エラー: expected declaration before ‘}’ token
353
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:138:3: エラー: expected declaration before ‘}’ token
284
-
354
+
285
- }
355
+ }
356
+
357
+
286
358
 
287
359
 
288
360
 

3

文の変更

2020/10/19 09:37

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -322,6 +322,6 @@
322
322
 
323
323
  シェーダーのリンクなのですが、とある人が数字と文字を画面に出すようなシェーダーをつくっていました。
324
324
 
325
- で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分りそう)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。
325
+ で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。
326
326
 
327
327
  使用した本 ゲームプログラミング c++ //私が提示したコードは同じです。

2

文の改善

2020/10/19 08:14

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -320,7 +320,7 @@
320
320
 
321
321
 
322
322
 
323
- シェーダーのリンクなのですが、とある人がスコアを画面出すようなシェーダーをだしていました。
323
+ シェーダーのリンクなのですが、とある人が数字と文字を画面出すようなシェーダーをつくっていました。
324
324
 
325
325
  で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分もありそう)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。
326
326
 

1

文の改善

2020/10/19 08:05

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -254,35 +254,65 @@
254
254
 
255
255
 
256
256
 
257
+
258
+
259
+
260
+
261
+ main.cc: メンバ関数 ‘bool Shader::IsCompiled(GLuint)’ 内:
262
+
263
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
264
+
265
+ glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
266
+
267
+ ^
268
+
269
+ /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:33: エラー: ‘nullptr’ was not declared in this scope
270
+
271
+ glGetShaderInfoLog(shader,511,nullptr,buffer);
272
+
273
+ ^
274
+
275
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
276
+
277
+ glGetShaderInfoLog(shader,511,nullptr,buffer);
278
+
279
+ ^
280
+
281
+ main.cc: 大域スコープ:
282
+
283
+ /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:66:1: エラー: expected declaration before ‘}’ token
284
+
285
+ }
286
+
287
+
288
+
289
+ ```
290
+
291
+
292
+
293
+
294
+
295
+
296
+
257
297
  ```opengl
258
298
 
259
- main.cc: メンバ関数 ‘bool Shader::IsCompiled(GLuint)’ 内:
260
-
261
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:54:49: エラー: ‘glGetShaderiv’ was not declared in this scope
262
-
263
- glGetShaderiv(shader,GL_COMPILE_STATUS, &status);
264
-
265
- ^
266
-
267
- /home/hoge/Desktop/hoge 2 (5 番目のコピー)/main.cc:59:33: エラー: ‘nullptr’ was not declared in this scope
268
-
269
- glGetShaderInfoLog(shader,511,nullptr,buffer);
299
+ class Shader* mSpriteshader;
270
-
271
- ^
300
+
272
-
273
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:59:47: エラー: ‘glGetShaderInfoLog’ was not declared in this scope
301
+
274
-
302
+
275
- glGetShaderInfoLog(shader,511,nullptr,buffer);
303
+ mSpriteshader=new Shader;
276
-
304
+
305
+
306
+
277
- ^
307
+ if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRY_BUFFER.frag"))
278
-
308
+
279
- main.cc: 大域スコープ:
309
+ {return false;
280
-
281
- /home/hoge/Desktop/hoge_xfile 2 (5 番目のコピー)/main.cc:66:1: エラー: expected declaration before ‘}’ token
310
+
282
-
311
+
312
+
283
- }
313
+ }
314
+
284
-
315
+ mSpriteShader->SetActive ();
285
-
286
316
 
287
317
  ```
288
318
 
@@ -290,36 +320,6 @@
290
320
 
291
321
 
292
322
 
293
-
294
-
295
-
296
-
297
- ```使う方
298
-
299
- class Shader* mSpriteshader;
300
-
301
-
302
-
303
- mSpriteshader=new Shader;
304
-
305
-
306
-
307
- if(!mSpriteshader->Load("GL_ARRAY_BUFFER.vert","GL_ARRY_BUFFER.frag"))
308
-
309
- {return false;
310
-
311
-
312
-
313
- }
314
-
315
- mSpriteShader->SetActive ();
316
-
317
- ```
318
-
319
-
320
-
321
-
322
-
323
323
  シェーダーのリンクなのですが、とある人がスコアを画面を出すようなシェーダーをだしていました。
324
324
 
325
325
  で自分もその結果が使いたくシェーダの本を手にとってみましたが(とある人は、どうやら本を参考にしているだけなようで自分で書いた部分もありそう)はどうでもいいのだが、エラーしたコードが直せません。どこがちがうのでしょうか。