[C++] 77 FLTK : OpenGLグラフィックの切替

[M1 Mac, Big Sur 11.6.7, clang 13.0.0, NO IDE]

複数のOpenGLグラフィックをボタンで切替できるようにしました。

Windowに埋め込んだままでの切替は今の私のスキルではできず、2枚目からは別ウインドウになります。

glgraph= new GL_Graph(380, 10, 190, 190, nullptr);
        
next_btn = new Fl_Button(575,85,20,20,"[絵文字]");
next_btn->callback(next_cb);
int box_num = 0; グラフィック番号の初期値
int box_nums = 2; グラフィックの個数

void next_cb(Fl_Widget*, void*) {
    box_num +=1;
    if (box_num >= box_nums){
        box_num = 0;
    }

    switch(box_num){
        case 0:
        {
            delete(glgraph2);
            glgraph= new GL_Graph(380+100, 10+100, 190, 190, nullptr);
            glgraph->show(); // draw,redrawではうまくいかず
            break;
        }
        case 1:
        {
            delete(glgraph);
            glgraph2= new GL_Graph2(380+100, 10+100, 190, 190, nullptr);
            glgraph2->show();
            break;
        }
    }

    output_line->insert((to_string(box_num)).c_str());
    output_line->insert("\n");
}

[C++] 76 FLTK : OpenGLグラフィックの埋め込み

[M1 Mac, Big Sur 11.6.7, clang 13.0.0, NO IDE]

FLTKアプリにOpenGLグラフィックを埋め込みました。

アプリ開発の合間にグラフィックのコードを試し書きして描画したりできるので活用したいです。


#pragma once
#include <cppstd.h> //自製標準ヘッダファイル群
#include <FLstd.h> //自製FLヘッダファイル群
#include <GL/glew.h> //この順序で固定
#include <FL/glut.h> //この順序で固定

const GLfloat MY_LIGHT0_POS[4] = { 2.0f, 4.0f, 1.0f, 0.0f };
const GLfloat MY_LIGHT_AMBI[4] = { 0.1f, 0.1f, 0.1f, 1.0f };
const GLfloat MY_LIGHT_DIFF[4] = { 0.9f, 0.9f, 0.9f, 1.0f };
const GLfloat MY_LIGHT_SPEC[4] = { 0.2f, 0.2f, 0.2f, 1.0f };

class GL_Box : public Fl_Gl_Window
{
    public:
    GL_Box(int x_, int y_, int w_, int h_, const char* l);
    ~GL_Box();

    void InitGL(void);
    void Resize(int w, int h);
    void Display(void);

    private:
    void draw(void);
};

参考サイト