}
}
+static unsigned int tts_screen_prerotation_hint;
static tdm_test_server tts_data;
static int tts_buffer_key;
#define TTS_BUFFER_KEY ((unsigned long)&tts_buffer_key)
{
tdm_test_server_buffer *tb = calloc(1, sizeof *tb);
TDM_EXIT_IF_FAIL(tb != NULL);
+ if (tts_screen_prerotation_hint % 180)
+ TDM_SWAP(width, height);
tb->b = tbm_surface_internal_create_with_flags(width, height, format, flags);
TDM_EXIT_IF_FAIL(tb->b != NULL);
tdm_helper_clear_buffer(tb->b);
char temp[TDM_SERVER_REPLY_MSG_LEN];
int len = sizeof temp;
tdm_error ret;
+ const char *value;
+
+ value = (const char*)getenv("SCREEN_PREROTATION_HINT");
+ if (value) {
+ char *end;
+ tts_screen_prerotation_hint = strtol(value, &end, 10);
+ printf("SCREEN_PREROTATION_HINT = %d", tts_screen_prerotation_hint);
+ }
signal(SIGINT, exit_test); /* 2 */
signal(SIGTERM, exit_test); /* 15 */
/* The size and format information should be same with buffer's */
tbm_surface_get_info(b, &info);
- if (IS_RGB(info.format)) {
- l->info.src_config.size.h = info.planes[0].stride >> 2;
- l->info.src_config.size.v = info.height;
+ if (tts_screen_prerotation_hint % 180) {
+ if (IS_RGB(info.format)) {
+ l->info.src_config.size.h = info.height;
+ l->info.src_config.size.v = info.planes[0].stride >> 2;
+ } else {
+ l->info.src_config.size.h = info.height;
+ l->info.src_config.size.v = info.planes[0].stride;
+ }
} else {
- l->info.src_config.size.h = info.planes[0].stride;
- l->info.src_config.size.v = info.height;
+ if (IS_RGB(info.format)) {
+ l->info.src_config.size.h = info.planes[0].stride >> 2;
+ l->info.src_config.size.v = info.height;
+ } else {
+ l->info.src_config.size.h = info.planes[0].stride;
+ l->info.src_config.size.v = info.height;
+ }
}
l->info.src_config.format = info.format;