| 553 | } |
| 554 | |
| 555 | static 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); |
no test coverage detected