openFrameworksでブラーなどのように前frameの画を残して描く際にofSetBackgroundAuto(false)
を使います.
が.
どうも1frame目から描けない謎がありました.
未だに完全には原因不明ですが, 一応荒業(?)での解決もできたので念のため記録まで.
git
事前) ofSetBackgroundAuto(true)の場合
1frameから描画できることの確認
ofApp.cpp
# include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofSetFrameRate(1);
ofBackground(0);
//ofSetBackgroundAuto(false);
}
//--------------------------------------------------------------
void ofApp::update(){
}
//--------------------------------------------------------------
void ofApp::draw(){
count++;
cout << count << endl;
ofDrawBitmapString(count, 100, 10*count);
}
ofApp.h
# pragma once
# include "ofMain.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
int count = 0;
};
本題) ofSetBackgroundAuto(false)の場合
問題) 4frameから描画されてしまう
ofApp.cpp
# include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofSetFrameRate(1);
ofBackground(0);
ofSetBackgroundAuto(false);
}
//--------------------------------------------------------------
void ofApp::update(){
}
//--------------------------------------------------------------
void ofApp::draw(){
count++;
cout << count << endl;
ofDrawBitmapString(count, 100, 10*count);
}
ofApp.h
# pragma once
# include "ofMain.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
int count = 0;
};
解決) 1frameから描画できた
ofApp.cpp
# include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofSetFrameRate(1);
ofBackground(0);
}
//--------------------------------------------------------------
void ofApp::update(){
ofSetBackgroundAuto(false);
}
//--------------------------------------------------------------
void ofApp::draw(){
ofSetBackgroundAuto(true);
count++;
cout << count << endl;
ofDrawBitmapString(count, 100, 10*count);
}
ofApp.h
# pragma once
# include "ofMain.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
int count = 0;
};