MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / config_gamma

Function config_gamma

Descent3/config.cpp:555–649  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

553}
554
555static void config_gamma() {
556 newuiTiledWindow gamma_wnd;
557 newuiSheet *sheet;
558 tSliderSettings slider_set;
559 int16_t *gamma_slider;
560 int16_t curpos;
561 int res, gamma_bitmap = -1;
562 float init_gamma;
563
564 // Make gamma bitmap
565 gamma_bitmap = bm_AllocBitmap(128, 128, 0);
566 if (gamma_bitmap <= 0) {
567 gamma_bitmap = 0;
568 } else {
569 uint16_t *dest_data = (uint16_t *)bm_data(gamma_bitmap, 0);
570 int addval = 0;
571 int i, t;
572
573 // This loop makes the checkerboard
574 for (i = 0; i < 128; i++) {
575 addval = (i & 1) ? 1 : 0;
576
577 for (t = 0; t < 128; t++) {
578 if (((t + addval) % 2) == 0) {
579 dest_data[i * 128 + t] = OPAQUE_FLAG | (1 << 10) | (1 << 5) | (1);
580 } else {
581 dest_data[i * 128 + t] = OPAQUE_FLAG;
582 }
583 }
584 }
585 }
586
587 // create ui.
588 gamma_wnd.Create(TXT_AUTO_GAMMA, 0, 0, GAMMA_MENU_W, GAMMA_MENU_H);
589 gamma_wnd.SetData(&gamma_bitmap);
590 gamma_wnd.SetOnDrawCB(gamma_callback);
591
592 sheet = gamma_wnd.GetSheet();
593
594 // ok, cancel buttons.
595 sheet->NewGroup(NULL, 130, 224, NEWUI_ALIGN_HORIZ);
596 sheet->AddButton(TXT_APPLY, IDV_GAMMAAPPLY);
597 sheet->AddText(" ");
598 sheet->AddButton(TXT_OK, UID_OK);
599 sheet->AddButton(TXT_CANCEL, UID_CANCEL);
600
601 sheet->NewGroup(NULL, 0, 145);
602 sheet->AddText(TXT_GAMMAADJUSTA);
603 sheet->AddText(TXT_GAMMAADJUSTB);
604
605 // add slider!
606 sheet->NewGroup(NULL, 0, 175);
607 slider_set.min_val.f = 1.0f;
608 slider_set.max_val.f = 3.0f;
609 slider_set.type = SLIDER_UNITS_FLOAT;
610
611 init_gamma = Render_preferred_state.gamma;
612 curpos = CALC_SLIDER_POS_FLOAT(init_gamma, &slider_set, GAMMA_SLIDER_UNITS);

Callers 1

processMethod · 0.85

Calls 15

bm_AllocBitmapFunction · 0.85
bm_dataFunction · 0.85
CALC_SLIDER_POS_FLOATFunction · 0.85
CALC_SLIDER_FLOAT_VALUEFunction · 0.85
bm_FreeBitmapFunction · 0.85
SetDataMethod · 0.80
SetOnDrawCBMethod · 0.80
GetSheetMethod · 0.80
NewGroupMethod · 0.80
AddButtonMethod · 0.80
AddTextMethod · 0.80
AddSliderMethod · 0.80

Tested by

no test coverage detected