コード例 #1
0
ファイル: PlotCartesianWidget.cpp プロジェクト: wdas/brdf
void PlotCartesianWidget::initializeGL()
{
    glcontext->makeCurrent(this);

    glf->glClearColor( 1, 1, 1, 1 );
    glf->glDisable(GL_DEPTH_TEST);

    // this being a line graph, turn on line smoothing
    glf->glEnable( GL_LINE_SMOOTH );
    glf->glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
    glf->glEnable(GL_BLEND);
    glf->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    initializeText();

    plotShader = new DGLShader( (getShaderTemplatesPath() + "Plots.vert").c_str(),
                                (getShaderTemplatesPath() + "Plots.frag").c_str(),
                                (getShaderTemplatesPath() + "Plots.geom").c_str());
    glf->glGenVertexArrays(1,&axisVAO);
    glf->glGenBuffers(2, axisVBO);
    updateAxisVAO();

    glf->glGenVertexArrays(1, &dataLineVAO);
    glf->glGenBuffers(1, &dataLineVBO);
    fWidth = float(width()*devicePixelRatio());
    fHeight = float(height()*devicePixelRatio());
    updateInputDataLineVAO();
}
コード例 #2
0
void LikertHCI::initializeContextSpecificVars(int threadId,MinVR::WindowRef window)
{
	
	//load in shaders
	std::map<std::string, std::string> args, dummyArgs;
	_shader.reset(new GLSLProgram());
	_shader->compileShader(MinVR::DataFileUtils::findDataFile("tex.vert").c_str(), GLSLShader::VERTEX, dummyArgs);
	_shader->compileShader(MinVR::DataFileUtils::findDataFile("tex.frag").c_str(), GLSLShader::FRAGMENT, args);
	_shader->link();

	initializeText(threadId, window);

	std::cout << "Likert initialization" << std::endl;
}
コード例 #3
0
ファイル: overlay.c プロジェクト: jtdaugherty/t2
int initialize_overlay(struct configuration *config)
{
    int ret;

    text_config = initializeText(config);

    ret = loadFont(OVERLAY_FONT_FILENAME, &stats_font, OVERLAY_FONT_PIXEL_HEIGHT);
    if (ret) {
        log_error("Could not load overlay font %s, exiting", OVERLAY_FONT_FILENAME);
        return 1;
    } else
        log_info("Loaded overlay font %s", OVERLAY_FONT_FILENAME);

    return 0;
}
コード例 #4
0
ファイル: LetterHunter.cpp プロジェクト: BillyKim/directxcode
void LetterHunter::initialize()
{
	// Initizlie text objects
	initializeText();
	initializeBullet();
}
コード例 #5
0
void LikertHCI::initializeText(int threadId, MinVR::WindowRef window)
{

	
	int fontNormal = FONS_INVALID;
	struct FONScontext* fs = nullptr;

	fs = glfonsCreate(512, 512, FONS_ZERO_TOPLEFT);
	if (fs == NULL) {
		BOOST_ASSERT_MSG(false, "Could not create stash.");
	}

	fontNormal = fonsAddFont(fs, "sans", MinVR::ConfigVal("RegularFontFile", "app/fonts/DroidSansMono.ttf", false).c_str());
	if (fontNormal == FONS_INVALID) {
		BOOST_ASSERT_MSG(false, "Could not add font normal.\n");
	}

	glUseProgram(0);
	glPushAttrib(GL_VIEWPORT_BIT | GL_ENABLE_BIT);

	GLuint textFBO;
	glGenFramebuffers(1, &textFBO);
	glBindFramebuffer(GL_DRAW_FRAMEBUFFER, textFBO);
	glDrawBuffer(GL_COLOR_ATTACHMENT0);

	std::map<std::string, std::string> dummyArgs;
	std::shared_ptr<GLSLProgram> shader(new GLSLProgram());
	shader->compileShader(MinVR::DataFileUtils::findDataFile("textRendering.vert").c_str(), GLSLShader::VERTEX, dummyArgs);
	shader->compileShader(MinVR::DataFileUtils::findDataFile("textRendering.frag").c_str(), GLSLShader::FRAGMENT, dummyArgs);
	shader->link();
	shader->use();

	glClearColor(1.0, 1.0, 1.0, 1.0);

	initializeText(threadId, fs, fontNormal, _maxNumLinesInQuestions, 20.0f, shader, 72.0f, _questions, "QuestionText_", _questionTextures, _questionSizes);

	initializeText(threadId, fs, fontNormal, _maxNumLinesInAnswers, 15.0f, shader, 35.0f, _answers, "AnswerText_", _answerTextures, _answerSizes);

	double windowHeight = window->getHeight();
	double windowWidth = window->getWidth();
	_padding = 0.05;
	double numAnswersPerQuestion = 7.0;
	_availableWidth = glm::length(offAxisCamera->getBottomRight() - offAxisCamera->getBottomLeft()) - (2*_padding);
	_individualSize = _availableWidth/ (numAnswersPerQuestion);
	glm::dvec3 start(offAxisCamera->getBottomLeft().x + _padding + _individualSize/2.0, 0.0, 0.5);
	glm::dvec3 spacing(_individualSize, 0.0, 0.0);
	for(int i=0; i < _answers.size(); i++) {
		double texHeight = _answerTextures[0][i]->getHeight(); // all answers are the same dimensions;
		double texWidth = _answerTextures[0][i]->getWidth();
		double quadHeightScreen =  texHeight/windowHeight;
		double quadWidthScreen = texWidth/windowWidth;
		glm::dvec3 quad = glm::abs(convertScreenToRoomCoordinates(glm::dvec2(quadWidthScreen+0.5, quadHeightScreen+0.5)));
		_answerHeights.push_back(quad.z);

		glm::dvec2 size = _answerSizes[threadId][i];
		double halfWidth = _answerHeights[i] * size.x / size.y / 2.0f;
		double halfHeight = _answerHeights[i] / 2.0f;
		glm::dvec3 centerPt = start+ (double)i*spacing;
		glm::dvec3 low(-halfWidth, -0.001, -halfHeight);
		glm::dvec3 high(halfWidth, 0.001, halfHeight);
		AABox bounds(start + (double)i*spacing + low, start + (double)i*spacing +high);
		_answerBounds.push_back(bounds);
		
	}

	for(int i=0; i < _questions.size(); i++) {
		double texHeight = _questionTextures[0][i]->getHeight(); // all answers are the same dimensions;
		double texWidth = _questionTextures[0][i]->getWidth();
		double quadHeightScreen =  texHeight/windowHeight;
		double quadWidthScreen = texWidth/windowWidth;
		glm::dvec3 quad = glm::abs(convertScreenToRoomCoordinates(glm::dvec2(quadWidthScreen+0.5, quadHeightScreen+0.5)));
		_questionHeights.push_back(quad.z);	
	}
	
	glfonsDelete(fs);
	glUseProgram(0);
	glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
	glDeleteFramebuffers(1, &textFBO);

	glPopAttrib(); // restore viewport and enabled bits

	glEnable(GL_TEXTURE_2D);
	// restore the clear color
	glm::dvec3 clearColor = MinVR::ConfigVal("ClearColor", glm::dvec3(0.1), false);
	glClearColor(clearColor.r, clearColor.g, clearColor.b, 1.0f);
}