Estou trabalhando em uma coleção de jogos para uma instalação de mesa digital personalizada (semelhante às tabelas do Microsoft Surface). Cada jogo será um executável individual que roda em tela cheia. Além disso, é necessário que haja um programa de sobreposição de menu / shell sendo executado simultaneamente. O menu / shell permitirá aos usuários pausar jogos, mudar para outros jogos, verificar seu histórico de jogos etc.
Alguns requisitos principais do shell:
ele intercepta todas as entradas do usuário (principalmente multitoque) antes de repassá-las ao jogo em execução no momento (para que ele possa, por exemplo, saber pop-up com um comando de "pausa");
pode ser revelado em partes arbitrárias da tela, com o jogo atualmente em execução (mas presumivelmente pausado) ainda sendo exibido por baixo, idealmente com sua forma / tamanho dinâmico, para permitir a criação de um efeito de gaveta de entrada / saída animada sobre o jogo.
Atualmente, estou analisando diferentes abordagens arquitetônicas para esse problema, incluindo sobreposições Fraps e DirectX, mas tenho certeza de que estou perdendo algumas maneiras de pensar sobre isso. Quais são as principais abordagens que devo considerar?
(Observe que a tabela atualmente está sendo executada pelo PC com Windows, mas pode ser uma caixa Linux. Por isso, não quero dizer que precise de uma solução independente de SO. Eu ficaria feliz com uma solução específica do Windows. Mas Eu gostaria de considerar mudar para o Linux e usar uma solução específica para Linux, se for muito mais fácil conseguir isso no Linux.)