Vboを作成しDrawしたいのですが、エラーがでます。
以下のスクリプトでは、ボタンを押すとpad1on()が呼び出されます
その後CreateHexを開始し、childDraw()内でvboをDrawしています。このDraw時にエラーとなります、、
調べても原因がわかりません。。
C++
1#include "Sean-1.h" 2 3 4void Sean_1::Setup() { 5 _vbos.clear(); 6 ofBackground(0, 0, 0); 7 ofEnableDepthTest(); 8 ofEnableBlendMode(OF_BLENDMODE_ADD); 9 10 cam.setDistance(100); 11 12 ofSetColor(214, 181, 255, 100); 13 14 } 15void Sean_1::Update() { 16 ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)); 17 18} 19 20void Sean_1::pad1on() { 21 createHex(22,3); 22} 23 24void Sean_1::createHex(float x,float y) { 25 26 ofVbo vb; 27 ofVec3f vec[6]; 28 float seta = TWO_PI / 6; 29 30 ofTranslate(ofGetWidth() / 2, ofGetHeight() / 2); 31 32 for (int i =0; i < 5; i++) { 33 vec[i].set(10 * cos(ofGetElapsedTimef() + seta*i)+x,10 * sin(ofGetElapsedTimef() + seta*i)+y, 0); 34 } 35 36 vb.setVertexData(vec,6,GL_DYNAMIC_DRAW); 37 38 _vbos.push_back(vb); 39 40} 41 42 43void Sean_1::childDraw() { 44 cam.begin(); 45 46 glPointSize(2.0); 47 for (int i = 0; i < _vbos.size(); i++) { 48 _vbos[i].draw(GL_POLYGON, 0, 6); 49 } 50 cam.end(); 51 52} 53 54
ちなみに、エラーは以下です
0x55C71363 (nvoglv32.dll) で例外がスローされました (myFile_debug.exe 内): 0xC0000005: 場所 0x00000000 の読み取り中にアクセス違反が発生しました この例外のハンドラーがある場合は、プログラムを安全に続行できます。
名前から想像できるかとは思いますが一応ヘッダファイル内容も記述させていただきます
C++
1private: 2 3 void createHex(float x, float y); 4 5 ofEasyCam cam; 6 7 ofMesh mesh; 8 9 vector<ofVbo> _vbos; 10 11 vector<ofVec3f> vecs; 12
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。