#ifndef RES_TGA_H_INCLUDED #define RES_TGA_H_INCLUDED #include #include #include "RenderUtils.h" enum { Tga_Unload = 0, Tga_Loaded, Tga_TexGen, Tga_LoadFail, }; static const char *tgaFilePath[] = { "./Res/image/logo.tga", "./Res/image/AI_parking_available_leftarea.tga", "./Res/image/AI_parking_available_leftslot1.tga", "./Res/image/AI_parking_available_leftslot2.tga", "./Res/image/AI_parking_available_leftslot3.tga", "./Res/image/AI_parking_available_rightarea.tga", "./Res/image/AI_parking_available_rightslot1.tga", "./Res/image/AI_parking_available_rightslot2.tga", "./Res/image/AI_parking_available_rightslot3.tga", "./Res/image/AI_parking_unavailable_leftslot1.tga", "./Res/image/AI_parking_unavailable_leftslot2.tga", "./Res/image/AI_parking_unavailable_leftslot3.tga", "./Res/image/AI_parking_unavailable_rightslot1.tga", "./Res/image/AI_parking_unavailable_rightslot2.tga", "./Res/image/AI_parking_unavailable_rightslot3.tga", "./Res/image/AI_parking_used_leftslot1.tga", "./Res/image/AI_parking_used_leftslot2.tga", "./Res/image/AI_parking_used_leftslot3.tga", "./Res/image/AI_parking_used_rigthslot1.tga", "./Res/image/AI_parking_used_rigthslot2.tga", "./Res/image/AI_parking_used_rigthslot3.tga", "./Res/image/alert_dialog_background.tga", "./Res/image/alert_dialog_cancel.tga", "./Res/image/alert_dialog_confirm.tga", "./Res/image/alert_dialog_confirm_single.tga", "./Res/image/alert_simple_background.tga", "./Res/image/charging_range_digit_0.tga", "./Res/image/charging_range_digit_1.tga", "./Res/image/charging_range_digit_2.tga", "./Res/image/charging_range_digit_3.tga", "./Res/image/charging_range_digit_4.tga", "./Res/image/charging_range_digit_5.tga", "./Res/image/charging_range_digit_6.tga", "./Res/image/charging_range_digit_7.tga", "./Res/image/charging_range_digit_8.tga", "./Res/image/charging_range_digit_9.tga", "./Res/image/charging_range_unit_KM.tga", "./Res/image/cruise_arrow.tga", "./Res/image/cruise_pointer_blue.tga", "./Res/image/cruise_scale_disk_blue.tga", "./Res/image/driving_high_beam.tga", "./Res/image/driving_low_beam.tga", "./Res/image/driving_white_body.tga", "./Res/image/driving_white_led_brake.tga", "./Res/image/driving_white_led_off.tga", "./Res/image/driving_white_led_position.tga", "./Res/image/driving_white_led_turn_left.tga", "./Res/image/driving_white_led_turn_right.tga", "./Res/image/hint_background.tga", "./Res/image/gear_tip_d.tga", // "./Res/image/gear_tip_d_gray.tga", "./Res/image/gear_tip_n.tga", // "./Res/image/gear_tip_n_gray.tga", "./Res/image/gear_tip_p.tga", // "./Res/image/gear_tip_p_gray.tga", "./Res/image/gear_tip_r.tga", // "./Res/image/gear_tip_r_gray.tga", "./Res/image/led_acc_blue.tga", "./Res/image/led_acc_blue_pointer.tga", "./Res/image/led_acc_white_arrow.tga", "./Res/image/led_brake_syserr.tga", "./Res/image/led_main_alert.tga", "./Res/image/led_charge_conn.tga", "./Res/image/led_rear_fog.tga", "./Res/image/led_high_beam.tga", "./Res/image/led_high_beam_A.tga", "./Res/image/led_low_beam.tga", "./Res/image/led_low_beam_A.tga", "./Res/image/led_position_hint.tga", "./Res/image/led_epb.tga", "./Res/image/led_seatbelt_d.tga", "./Res/image/led_seatbelt_p.tga", "./Res/image/led_car_body.tga", "./Res/image/led_door_lb.tga", "./Res/image/led_door_lf.tga", "./Res/image/led_door_rb.tga", "./Res/image/led_door_rf.tga", "./Res/image/led_seatbelt_bl.tga", "./Res/image/led_seatbelt_bl_gray.tga", "./Res/image/led_seatbelt_bm.tga", "./Res/image/led_seatbelt_bm_gray.tga", "./Res/image/led_seatbelt_br.tga", "./Res/image/led_seatbelt_br_gray.tga", // "./Res/image/led_auto_pilot_blue.tga", // "./Res/image/led_auto_pilot_gray.tga", // "./Res/image/led_auto_pilot_red.tga", "./Res/image/led_ac_overcost.tga", "./Res/image/led_acc_hold.tga", "./Res/image/led_battery_cold.tga", "./Res/image/led_speed_limit_bg.tga", "./Res/image/led_traffic_camera.tga", "./Res/image/led_turn_left.tga", "./Res/image/led_turn_right.tga", "./Res/image/led_12v_bat.tga", "./Res/image/led_abs.tga", "./Res/image/led_air_bag.tga", "./Res/image/led_anti_theft.tga", "./Res/image/led_avh_green.tga", "./Res/image/led_avh_yellow.tga", "./Res/image/led_back_trunk_err.tga", "./Res/image/led_battery_err.tga", "./Res/image/led_bat_lack.tga", "./Res/image/led_battery_lack.tga", "./Res/image/led_battery_off.tga", "./Res/image/led_battery_overheat.tga", "./Res/image/led_epb_err.tga", "./Res/image/led_eps.tga", "./Res/image/led_esp.tga", "./Res/image/led_esp_off.tga", "./Res/image/led_hdc_green.tga", "./Res/image/led_hdc_yellow.tga", "./Res/image/led_intelligent_sys_err.tga", "./Res/image/led_motor_err.tga", "./Res/image/led_motor_overheat.tga", "./Res/image/led_scrubbing_lack.tga", "./Res/image/led_tpms.tga", "./Res/image/led_power_limit.tga", "./Res/image/menu_2nd_bg.tga", "./Res/image/menu_2nd_icon_brightness.tga", "./Res/image/menu_2nd_icon_fan.tga", "./Res/image/menu_2nd_icon_temp_bg.tga", "./Res/image/menu_2nd_icon_temp_progress.tga", "./Res/image/menu_2nd_icon_windymode_down.tga", "./Res/image/menu_2nd_icon_windymode_side.tga", "./Res/image/menu_2nd_icon_windymode_up.tga", "./Res/image/menu_2nd_value_set_cursor.tga", "./Res/image/menu_2nd_value_set_progress.tga", "./Res/image/menu_2nd_value_set_progress_bg.tga", "./Res/image/menu_icon_brightness.tga", "./Res/image/menu_icon_camera.tga", "./Res/image/menu_icon_fan.tga", "./Res/image/menu_icon_media.tga", "./Res/image/menu_icon_thermometer.tga", "./Res/image/menu_icon_version.tga", "./Res/image/menu_icon_windymode.tga", "./Res/image/menu_2nd_icon_music_blt.tga", "./Res/image/menu_2nd_icon_music_local.tga", "./Res/image/menu_2nd_icon_radio_local.tga", "./Res/image/menu_2nd_icon_radio_tbook.tga", "./Res/image/menu_left_acc_1.tga", "./Res/image/menu_left_acc_2.tga", "./Res/image/menu_left_acc_3.tga", "./Res/image/menu_left_acc_4.tga", "./Res/image/menu_left_acc_5.tga", "./Res/image/menu_left_bg.tga", "./Res/image/menu_left_icon_voice.tga", "./Res/image/menu_left_progress_bar.tga", "./Res/image/menu_left_progress_cursor.tga", "./Res/image/menu_left_shadow.tga", "./Res/image/menu_left_txt_acc.tga", "./Res/image/menu_left_txt_voice_ai.tga", "./Res/image/menu_left_txt_voice_media.tga", "./Res/image/menu_left_txt_voice_phone.tga", "./Res/image/module_L0_text_energy.tga", "./Res/image/module_L0_text_media.tga", "./Res/image/module_L0_text_navigation.tga", "./Res/image/module_L0_text_null.tga", "./Res/image/module_L0_text_status.tga", "./Res/image/module_L0_text_telephone.tga", "./Res/image/module_L0_text_trip.tga", "./Res/image/module_L0_text_weather.tga", "./Res/image/module_L0_text_clock.tga", "./Res/image/nav_icon_nav_disable.tga", "./Res/image/nav_icon_destination.tga", "./Res/image/nav_icon_enter_roundabout.tga", "./Res/image/nav_icon_enter_toll_station.tga", "./Res/image/nav_icon_enter_tunnel.tga", "./Res/image/nav_icon_exit_roundabout.tga", "./Res/image/nav_icon_go_straight.tga", "./Res/image/nav_icon_left_back.tga", "./Res/image/nav_icon_left_front.tga", "./Res/image/nav_icon_right_back.tga", "./Res/image/nav_icon_right_front.tga", "./Res/image/nav_icon_turn_left.tga", "./Res/image/nav_icon_turn_right.tga", "./Res/image/nav_icon_turn_round.tga", "./Res/image/nav_tips_arrive_destination.tga", "./Res/image/nav_tips_cost_left.tga", "./Res/image/nav_tips_next_enter.tga", "./Res/image/nav_unit_next_distance_km.tga", "./Res/image/nav_unit_next_distance_m.tga", "./Res/image/nav_module_shadow.tga", "./Res/image/nav_tips_disable.tga", "./Res/image/traffic_line_dotted.tga", "./Res/image/traffic_line_solid.tga", "./Res/image/ui3_basic_battery_bg.tga", "./Res/image/ui3_basic_battery_full_green.tga", "./Res/image/ui3_basic_battery_full_red.tga", "./Res/image/ui3_basic_battery_full_yellow.tga", "./Res/image/ui3_basic_battery_high_light.tga", // "./Res/image/ui3_basic_bg_backing.tga", "./Res/image/ui3_basic_bg_bottom.tga", // "./Res/image/ui3_basic_bg_parking.tga", "./Res/image/ui3_basic_temperature_icon.tga", "./Res/image/ui3_basic_mute_icon.tga", // "./Res/image/ui3_basic_bg_backing_night.tga", "./Res/image/ui3_basic_bg_bottom_night.tga", // "./Res/image/ui3_basic_bg_parking_night.tga", "./Res/image/ui3_gear_D_gray.tga", "./Res/image/ui3_gear_N_gray.tga", "./Res/image/ui3_gear_PRND_gray.tga", "./Res/image/ui3_gear_P_gray.tga", "./Res/image/ui3_gear_R_gray.tga", "./Res/image/ui3_led_ready.tga", }; static const Vec2i tgaLtp[] = { {0,0},//logo {630,397},//AI_parking_available_leftarea {773,401},//AI_parking_available_leftslot1 {740,474},//AI_parking_available_leftslot2 {704,548},//AI_parking_available_leftslot3 {1040,397},//AI_parking_available_rightarea {1057,401},//AI_parking_available_rightslot1 {1085,474},//AI_parking_available_rightslot2 {1113,548},//AI_parking_available_rightslot3 {773,401},//AI_parking_unavailable_leftslot1 {738,474},//AI_parking_unavailable_leftslot2 {704,548},//AI_parking_unavailable_leftslot3 {1057,401},//AI_parking_unavailable_rightslot1 {1084,474},//AI_parking_unavailable_rightslot2 {1113,548},//AI_parking_unavailable_rightslot3 {773,401},//AI_parking_used_leftslot1 {738,474},//AI_parking_used_leftslot2 {704,548},//AI_parking_used_leftslot3 {1057,401},//AI_parking_used_rigthslot1 {1082,474},//AI_parking_used_rigthslot2 {1113,548},//AI_parking_used_rigthslot3 {715,448},//alert_dialog_background {778,546},//alert_dialog_cancel {943,546},//alert_dialog_confirm {840,546},//alert_dialog_confirm_single {715,518},//alert_simple_background {898,566},//charging_range_digit_0 {903,566},//charging_range_digit_1 {897,566},//charging_range_digit_2 {898,566},//charging_range_digit_3 {895,566},//charging_range_digit_4 {898,567},//charging_range_digit_5 {897,566},//charging_range_digit_6 {898,567},//charging_range_digit_7 {898,566},//charging_range_digit_8 {898,566},//charging_range_digit_9 {1041,599},//charging_range_unit_KM {749+41-10,156+44-60},//cruise_arrow {769+41-10,155+44-60},//cruise_pointer_blue {764+41-10,136+44-60},//cruise_scale_disk_blue {821,385},//driving_high_beam {821,410},//driving_low_beam {786,428},//driving_white_body {898,528},//driving_white_led_brake {897,542},//driving_white_led_off {898,556},//driving_white_led_position {899,562},//driving_white_led_turn_left {983,562},//driving_white_led_turn_right {715,270},//hint_background {853+36,86+16},//gear_tip_d // {853,91},//gear_tip_d_gray {853+36,86+16},//gear_tip_n // {853,91},//gear_tip_n_gray {853+36,86+16},//gear_tip_p // {853,91},//gear_tip_p_gray {853+36,86+16},//gear_tip_r // {853+36,91},//gear_tip_r_gray {831,204},//led_acc_blue {0,0},//led_acc_blue_pointer {0,0},//led_acc_white_arrow {1665,47},//led_brake_syserr {1593,47},//led_main_alert {1521,47},//led_charge_conn {1449,47},//led_rear_fog {1377,47},//led_high_beam {1377,47},//led_high_beam_A {1377,47},//led_low_beam {1377,47},//led_low_beam_A {1305,47},//led_position_hint {1233,47},//led_epb {758,47},//led_seatbelt_d {1161,47},//led_seatbelt_p {686,47},//led_car_body {671,49},//led_door_lb {671,40},//led_door_lf {694,50},//led_door_rb {694,41},//led_door_rf {470,47},//led_seatbelt_bl {470,47},//led_seatbelt_bl_gray {542,46},//led_seatbelt_bm {542,46},//led_seatbelt_bm_gray {614,47},//led_seatbelt_br {614,47},//led_seatbelt_br_gray // {1092+3,203-57},//led_auto_pilot_blue // {1092+3,203-57},//led_auto_pilot_gray // {1092,203-60},//led_auto_pilot_red {752,662},//led_ac_overcost {959,225+7},//led_acc_hold {753,662},//led_battery_cold {849,313},//led_speed_limit_bg {1068,313},//led_traffic_camera {732,202},//led_turn_left {1188,202},//led_turn_right {0,0},//led_12v_bat {0,0},//led_abs {0,0},//led_air_bag {0,0},//led_anti_theft {0,0},//led_avh_green {0,0},//led_avh_yellow {0,0},//led_back_trunk_err {0,0},//led_bat_lack {0,0},//led_battery_err {0,0},//led_battery_lack {0,0},//led_battery_off {0,0},//led_battery_overheat {0,0},//led_epb_err {0,0},//led_eps {0,0},//led_esp {0,0},//led_esp_off {0,0},//led_hdc_green {0,0},//led_hdc_yellow {0,0},//led_intelligent_sys_err {0,0},//led_motor_err {0,0},//led_motor_overheat {0,0},//led_scrubbing_lack {0,0},//led_tpms {0,0},//led_power_limit {1302,250},//menu_2nd_bg {1337,312},//menu_2nd_icon_brightness {1337,297},//menu_2nd_icon_fan {1342,298},//menu_2nd_icon_temp_bg {1354,323},//menu_2nd_icon_temp_progress {1407,432},//menu_2nd_icon_windymode_down {1407,251},//menu_2nd_icon_windymode_side {1407,251},//menu_2nd_icon_windymode_up {1672,381},//menu_2nd_value_set_cursor {1673,250},//menu_2nd_value_set_progress {1673,250},//menu_2nd_value_set_progress_bg {1413,514},//menu_icon_brightness {1416,348},//menu_icon_camera {1413,248},//menu_icon_fan {1417,428},//menu_icon_media {1423,157},//menu_icon_thermometer {1418,519},//menu_icon_version {1407,348},//menu_icon_windymode {0,0},//menu_2nd_icon_music_blt {0,0},//menu_2nd_icon_music_local {0,0},//menu_2nd_icon_radio_local {0,0},//menu_2nd_icon_radio_tbook {463,323},//menu_left_acc_1 {450,323},//menu_left_acc_2 {437,323},//menu_left_acc_3 {423,323},//menu_left_acc_4 {410,323},//menu_left_acc_5 {184,273},//menu_left_bg {259,335},//menu_left_icon_voice {607,288},//menu_left_progress_bar {575,388},//menu_left_progress_cursor {176,528},//menu_left_shadow {245,390},//menu_left_txt_acc {450,389},//menu_left_txt_voice_ai {450,389},//menu_left_txt_voice_media {450,389},//menu_left_txt_voice_phone {408,345-35-8},//module_L0_text_energy {408,345-35-8},//module_L0_text_media {408,345-35-8},//module_L0_text_navigation {408,345-35-8},//module_L0_text_null {408,345-35-8},//module_L0_text_status {408,345-35-8},//module_L0_text_telephone {408,345-35-8},//module_L0_text_trip {408,345-35-8},//module_L0_text_weather {408,345-35-8},//module_L0_text_clock {166,263},//nav_icon_nav_disable {171,265},//nav_icon_destination {187,266},//nav_icon_enter_roundabout {163,274},//nav_icon_enter_toll_station {182,284},//nav_icon_enter_tunnel {187,265},//nav_icon_exit_roundabout {216,262},//nav_icon_go_straight {204,262},//nav_icon_left_back {208,262},//nav_icon_left_front {186,262},//nav_icon_right_back {188,262},//nav_icon_right_front {190,262},//nav_icon_turn_left {190,262},//nav_icon_turn_right {186,262},//nav_icon_turn_round {331,346},//nav_tips_arrive_destination {332,407},//nav_tips_cost_left {331,346},//nav_tips_next_enter {456,314},//nav_unit_next_distance_km {456,313},//nav_unit_next_distance_m {103,483},//nav_module_shadow {418,341},//nav_tips_disable {0,0},//traffic_line_dotted {0,0},//traffic_line_solid {834,656},//ui3_basic_battery_bg {834,656},//ui3_basic_battery_full_green {834,656},//ui3_basic_battery_full_red {834,656},//ui3_basic_battery_full_yellow {838,662},//ui3_basic_battery_high_light // {0,0},//ui3_basic_bg_backing {0,626},//ui3_basic_bg_bottom // {0,0},//ui3_basic_bg_parking {1447,653},//ui3_basic_temperature_icon {100,338-6},//ui3_basic_mute_icon // {0,0},//ui3_basic_bg_backing_night {0,630},//ui3_basic_bg_bottom_night // {0,0},//ui3_basic_bg_parking_night {1081,23},//ui3_gear_D_gray {1024,23},//ui3_gear_N_gray {923,33},//ui3_gear_PRND_gray {910,23},//ui3_gear_P_gray {967,23},//ui3_gear_R_gray {800,34},//ui3_led_ready }; enum { TGA_logo, TGA_AI_parking_available_leftarea, TGA_AI_parking_available_leftslot1, TGA_AI_parking_available_leftslot2, TGA_AI_parking_available_leftslot3, TGA_AI_parking_available_rightarea, TGA_AI_parking_available_rightslot1, TGA_AI_parking_available_rightslot2, TGA_AI_parking_available_rightslot3, TGA_AI_parking_unavailable_leftslot1, TGA_AI_parking_unavailable_leftslot2, TGA_AI_parking_unavailable_leftslot3, TGA_AI_parking_unavailable_rightslot1, TGA_AI_parking_unavailable_rightslot2, TGA_AI_parking_unavailable_rightslot3, TGA_AI_parking_used_leftslot1, TGA_AI_parking_used_leftslot2, TGA_AI_parking_used_leftslot3, TGA_AI_parking_used_rigthslot1, TGA_AI_parking_used_rigthslot2, TGA_AI_parking_used_rigthslot3, TGA_alert_dialog_background, TGA_alert_dialog_cancel, TGA_alert_dialog_confirm, TGA_alert_dialog_confirm_single, TGA_alert_simple_background, TGA_charging_range_digit_0, TGA_charging_range_digit_1, TGA_charging_range_digit_2, TGA_charging_range_digit_3, TGA_charging_range_digit_4, TGA_charging_range_digit_5, TGA_charging_range_digit_6, TGA_charging_range_digit_7, TGA_charging_range_digit_8, TGA_charging_range_digit_9, TGA_charging_range_unit_KM, TGA_cruise_arrow, TGA_cruise_pointer_blue, TGA_cruise_scale_disk_blue, TGA_driving_high_beam, TGA_driving_low_beam, TGA_driving_white_body, TGA_driving_white_led_brake, TGA_driving_white_led_off, TGA_driving_white_led_position, TGA_driving_white_led_turn_left, TGA_driving_white_led_turn_right, TGA_hint_background, TGA_gear_tip_D, // TGA_gear_tip_D_gray, TGA_gear_tip_N, // TGA_gear_tip_N_gray, TGA_gear_tip_P, // TGA_gear_tip_P_gray, TGA_gear_tip_R, // TGA_gear_tip_R_gray, TGA_led_acc_blue, TGA_led_acc_blue_pointer, TGA_led_acc_white_arrow, TGA_led_brake_syserr, TGA_led_main_alert, TGA_led_charge_conn, TGA_led_rear_fog, TGA_led_high_beam, TGA_led_high_beam_A, TGA_led_low_beam, TGA_led_low_beam_A, TGA_led_position_hint, TGA_led_epb, TGA_led_seatbelt_d, TGA_led_seatbelt_p, TGA_led_car_body, TGA_led_door_lb, TGA_led_door_lf, TGA_led_door_rb, TGA_led_door_rf, TGA_led_seatbelt_bl, TGA_led_seatbelt_bl_gray, TGA_led_seatbelt_bm, TGA_led_seatbelt_bm_gray, TGA_led_seatbelt_br, TGA_led_seatbelt_br_gray, // TGA_led_auto_pilot_blue, // TGA_led_auto_pilot_gray, // TGA_led_auto_pilot_red, TGA_led_ac_overcost, TGA_led_acc_hold, TGA_led_battery_cold, TGA_led_speed_limit_bg, TGA_led_traffic_camera, TGA_led_turn_left, TGA_led_turn_right, TGA_led_12v_bat, TGA_led_abs, TGA_led_air_bag, TGA_led_anti_theft, TGA_led_avh_green, TGA_led_avh_yellow, TGA_led_back_trunk_err, TGA_led_battery_err, TGA_led_bat_lack, TGA_led_battery_lack, TGA_led_battery_off, TGA_led_battery_overheat, TGA_led_epb_err, TGA_led_eps, TGA_led_esp, TGA_led_esp_off, TGA_led_hdc_green, TGA_led_hdc_yellow, TGA_led_intelligent_sys_err, TGA_led_motor_err, TGA_led_motor_overheat, TGA_led_scrubbing_lack, TGA_led_tpms, TGA_led_power_limit, TGA_menu_2nd_bg, TGA_menu_2nd_icon_brightness, TGA_menu_2nd_icon_fan, TGA_menu_2nd_icon_temp_bg, TGA_menu_2nd_icon_temp_progress, TGA_menu_2nd_icon_windymode_down, TGA_menu_2nd_icon_windymode_side, TGA_menu_2nd_icon_windymode_up, TGA_menu_2nd_value_set_cursor, TGA_menu_2nd_value_set_progress, TGA_menu_2nd_value_set_progress_bg, TGA_menu_icon_brightness, TGA_menu_icon_camera, TGA_menu_icon_fan, TGA_menu_icon_media, TGA_menu_icon_thermometer, TGA_menu_icon_version, TGA_menu_icon_windymode, TGA_menu_2nd_icon_music_blt, TGA_menu_2nd_icon_music_local, TGA_menu_2nd_icon_radio_local, TGA_menu_2nd_icon_radio_tbook, TGA_menu_left_acc_1, TGA_menu_left_acc_2, TGA_menu_left_acc_3, TGA_menu_left_acc_4, TGA_menu_left_acc_5, TGA_menu_left_bg, TGA_menu_left_icon_voice, TGA_menu_left_progress_bar, TGA_menu_left_progress_cursor, TGA_menu_left_shadow, TGA_menu_left_txt_acc, TGA_menu_left_txt_voice_ai, TGA_menu_left_txt_voice_media, TGA_menu_left_txt_voice_phone, TGA_module_L0_text_energy, TGA_module_L0_text_media, TGA_module_L0_text_navigation, TGA_module_L0_text_null, TGA_module_L0_text_status, TGA_module_L0_text_telephone, TGA_module_L0_text_trip, TGA_module_L0_text_weather, TGA_module_L0_text_clock, TGA_nav_icon_nav_disable, TGA_nav_icon_destination, TGA_nav_icon_enter_roundabout, TGA_nav_icon_enter_toll_station, TGA_nav_icon_enter_tunnel, TGA_nav_icon_exit_roundabout, TGA_nav_icon_go_straight, TGA_nav_icon_left_back, TGA_nav_icon_left_front, TGA_nav_icon_right_back, TGA_nav_icon_right_front, TGA_nav_icon_turn_left, TGA_nav_icon_turn_right, TGA_nav_icon_turn_round, TGA_nav_tips_arrive_destination, TGA_nav_tips_cost_left, TGA_nav_tips_next_enter, TGA_nav_unit_next_distance_km, TGA_nav_unit_next_distance_m, TGA_nav_module_shadow, TGA_nav_tips_disable, TGA_traffic_line_dotted, TGA_traffic_line_solid, TGA_ui3_basic_battery_bg, TGA_ui3_basic_battery_full_green, TGA_ui3_basic_battery_full_red, TGA_ui3_basic_battery_full_yellow, TGA_ui3_basic_battery_high_light, // TGA_ui3_basic_bg_backing, TGA_ui3_basic_bg_bottom, // TGA_ui3_basic_bg_parking, TGA_ui3_basic_temperature_icon, TGA_ui3_basic_mute_icon, // TGA_ui3_basic_bg_backing_night, TGA_ui3_basic_bg_bottom_night, // TGA_ui3_basic_bg_parking_night, TGA_ui3_gear_D, TGA_ui3_gear_N, TGA_ui3_gear_PRND_gray, TGA_ui3_gear_P, TGA_ui3_gear_R, TGA_ui3_led_ready, TGA_NUM }; static UInt08 tgaStatus[TGA_NUM]; static Image tgaImg[TGA_NUM]; static void Once_InitTgaInfo() { static Bool flag = INS_FALSE; if(flag == INS_TRUE)return; flag = INS_TRUE; Int32 i; for(i = 0; i < TGA_NUM; i++) { tgaImg[i].ltx = tgaLtp[i].x; tgaImg[i].lty = tgaLtp[i].y; tgaImg[i].dat = NULL; tgaImg[i].tex = INS_INVALID_RES_ID; tgaImg[i].w = 0; tgaImg[i].h = 0; tgaStatus[i] = Tga_Unload; } } static void Once_LoadTgaData(Int32 id) { if(id < 0 || id >= TGA_NUM || tgaStatus[id] != Tga_Unload)return; if(LoadTga(tgaFilePath[id], &tgaImg[id]) != INS_TRUE) { printf("load tga file fail[%s]\n", tgaFilePath[id]); tgaStatus[id] = Tga_LoadFail; return; } // tgaImg[id].ltx = tgaLtp[id].x; // tgaImg[id].lty = tgaLtp[id].y; // printf("Image ltx:%d, lty:%d w:%d, h:%d, fmt:0x%x[%s]\n", // tgaImg[id].ltx, tgaImg[id].lty, // tgaImg[id].w, tgaImg[id].h, tgaImg[id].fmt, tgaFilePath[id]); tgaStatus[id] = Tga_Loaded; // PrintCurrentTimeMs(); } static void Once_GenTgaTexture(Int32 id, GLint interalformat, GLenum format) { if(id < 0 || id >= TGA_NUM || tgaStatus[id] != Tga_Loaded)return;// || tgaImg[id].tex[id] != 0 tgaStatus[id] = Tga_TexGen; //printf("before Once_GenTgaTexture GL_ERR_CODE[0x%x]\n", glGetError()); glGenTextures(1, &(tgaImg[id].tex)); //printf("glGenTextures GL_ERR_CODE[0x%x]\n", glGetError()); glBindTexture(GL_TEXTURE_2D, tgaImg[id].tex); //printf("glBindTexture GL_ERR_CODE[0x%x]\n", glGetError()); if(interalformat == GL_RGBA) { glPixelStorei(GL_UNPACK_ALIGNMENT, 4); //printf("glPixelStorei 4 GL_ERR_CODE[0x%x]\n", glGetError()); } else { glPixelStorei(GL_UNPACK_ALIGNMENT, 1); //printf("glPixelStorei 1 GL_ERR_CODE[0x%x]\n", glGetError()); } glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); //printf("glTexParameteri GL_ERR_CODE[0x%x]\n", glGetError()); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); //printf("glTexParameteri GL_ERR_CODE[0x%x]\n", glGetError()); glTexImage2D(GL_TEXTURE_2D, 0, interalformat, tgaImg[id].w, tgaImg[id].h, 0, format, GL_UNSIGNED_BYTE, tgaImg[id].dat); //printf("glTexImage2D GL_ERR_CODE[0x%x]\n", glGetError()); if(tgaImg[id].dat != NULL) { free(tgaImg[id].dat); tgaImg[id].dat = NULL; } } static void DestroyTgaResources(Int32 idRangeBegin, Int32 idRangeEnd) { Int32 i; if(idRangeBegin < 0) { idRangeBegin = 0; } if(idRangeEnd >= PNG_NUM) { idRangeEnd = PNG_NUM-1; } for(i = idRangeBegin; i <= idRangeEnd; i++) { if(tgaImg[i].dat != NULL) { free(tgaImg[i].dat); tgaImg[i].dat = NULL; } if(tgaImg[i].tex != INS_INVALID_RES_ID) { glDeleteTextures(1, &(tgaImg[i].tex)); tgaImg[i].tex = INS_INVALID_RES_ID; } tgaStatus[i] = Tga_Unload; } } #endif // RES_TGA_H_INCLUDED