Beispiel #1
0
static cg_sampler_cache_entry_t *
_cg_sampler_cache_get_entry_gl(cg_sampler_cache_t *cache,
                               const cg_sampler_cache_entry_t *key)
{
    cg_sampler_cache_entry_t *entry;

    entry = c_hash_table_lookup(cache->hash_table_gl, key);

    if (entry == NULL) {
        cg_device_t *dev = cache->dev;

        entry = c_slice_dup(cg_sampler_cache_entry_t, key);

        if (_cg_has_private_feature(dev,
                                    CG_PRIVATE_FEATURE_SAMPLER_OBJECTS)) {
            GE(dev, glGenSamplers(1, &entry->sampler_object));

            GE(dev,
               glSamplerParameteri(entry->sampler_object,
                                   GL_TEXTURE_MIN_FILTER,
                                   entry->min_filter));
            GE(dev,
               glSamplerParameteri(entry->sampler_object,
                                   GL_TEXTURE_MAG_FILTER,
                                   entry->mag_filter));

            set_wrap_mode(dev,
                          entry->sampler_object,
                          GL_TEXTURE_WRAP_S,
                          entry->wrap_mode_s);
            set_wrap_mode(dev,
                          entry->sampler_object,
                          GL_TEXTURE_WRAP_T,
                          entry->wrap_mode_t);
            set_wrap_mode(dev,
                          entry->sampler_object,
                          GL_TEXTURE_WRAP_R,
                          entry->wrap_mode_p);
        } else {
            /* If sampler objects aren't supported then we'll invent a
               unique number so that pipelines can still compare the
               unique state just by comparing the sampler object
               numbers */
            entry->sampler_object = cache->next_fake_sampler_object_number++;
        }

        c_hash_table_insert(cache->hash_table_gl, entry, entry);
    }

    return entry;
}
Beispiel #2
0
InfoBox::InfoBox()
{
    auto statMgr(GetStatMgr().lock());
    assert(statMgr);
    //f_stats = statMgr->GetStats();

    // Misc stuff about the label
    //
    set_wrap_mode( Gtk::WRAP_WORD );
    f_infoBuffer = Gtk::TextBuffer::create();
    set_buffer( f_infoBuffer );
    set_editable( false );

    // StatManager
    //
    statMgr->signal_changed().connect( sigc::mem_fun( *this, &InfoBox::OnReloadTables ) );
}
Beispiel #3
0
SamplerState::SamplerState(const ComPtr<ID3D11Device> &device)
: device(device), max_anisotropy(0.0f), compare_mode(comparemode_none), min_filter(filter_linear_mipmap_linear), mag_filter(filter_linear)
{
	sampler_desc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
	sampler_desc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
	sampler_desc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
	sampler_desc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
	sampler_desc.MipLODBias = 0.0f;
	sampler_desc.MinLOD = -FLT_MAX;
	sampler_desc.MaxLOD = FLT_MAX;
	sampler_desc.MaxAnisotropy = 16;
	sampler_desc.ComparisonFunc = D3D11_COMPARISON_NEVER;
	sampler_desc.BorderColor[0] = 0.0f;
	sampler_desc.BorderColor[1] = 0.0f;
	sampler_desc.BorderColor[2] = 0.0f;
	sampler_desc.BorderColor[3] = 0.0f;

	// Modify state to same defaults used by OpenGL target:
	set_min_filter(filter_linear);
	set_mag_filter(filter_linear);
	set_wrap_mode(wrap_clamp_to_edge, wrap_clamp_to_edge, wrap_clamp_to_edge);
}
Beispiel #4
0
  NoteEditor::NoteEditor(const Glib::RefPtr<Gtk::TextBuffer> & buffer)
    : Gtk::TextView(buffer)
  {
    set_wrap_mode(Gtk::WRAP_WORD);
    set_left_margin(default_margin());
    set_right_margin(default_margin());
    property_can_default().set_value(true);

    Glib::RefPtr<Gio::Settings> settings = Preferences::obj().get_schema_settings(Preferences::SCHEMA_GNOTE);
    //Set up the schema to watch the default document font
    Glib::RefPtr<Gio::Settings> desktop_settings = Preferences::obj()
      .get_schema_settings(Preferences::SCHEMA_DESKTOP_GNOME_INTERFACE);
    if(desktop_settings) {
      desktop_settings->signal_changed().connect(
        sigc::mem_fun(*this, &NoteEditor::on_font_setting_changed));
    }

    // Set Font from preference
    if (settings->get_boolean(Preferences::ENABLE_CUSTOM_FONT)) {
      std::string font_string = settings->get_string(Preferences::CUSTOM_FONT_FACE);
      override_font (Pango::FontDescription(font_string));
    }
    else {
      override_font (get_gnome_document_font_description ());
    }

    settings->signal_changed().connect(sigc::mem_fun(*this, &NoteEditor::on_font_setting_changed));

    // Set extra editor drag targets supported (in addition
    // to the default TextView's various text formats)...
    Glib::RefPtr<Gtk::TargetList> list = drag_dest_get_target_list();

    
    list->add ("text/uri-list", (Gtk::TargetFlags)0, 1);
    list->add ("_NETSCAPE_URL", (Gtk::TargetFlags)0, 1);

    signal_key_press_event().connect(sigc::mem_fun(*this, &NoteEditor::key_pressed), false);
    signal_button_press_event().connect(sigc::mem_fun(*this, &NoteEditor::button_pressed), false);
  }
Beispiel #5
0
void Texture::init(const void* data_ptr)
{
	// ------------------------------------------------
	// Check params

#if GLLIB_GLES
	if (is_half(_format))
	{
		// Just in case:
		// FIXME: needed?
		_params.wrap = std::make_pair(WrapMode::Clamp, WrapMode::Clamp);
		//_params.filter = TexFilter::Nearest;
		//_params.filter = TexFilter::Linear;
	}
#endif

	// ------------------------------------------------

	//std::cout << "Uploading Texture..." << std::endl;

	CHECK_FOR_GL_ERROR;

	bind();

	set_filtering(_params.filter);
	set_wrap_mode(_params.wrap.first, _params.wrap.second);

	// ------------------------------------------------

	if (data_ptr) {
		set_data(data_ptr);
	}

	CHECK_FOR_GL_ERROR;

	set_debug_name(_debug_name);

	CHECK_FOR_GL_ERROR;
}