LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Вообще мне идея вызова XCompositeUnredirectWindow вместо отключения композитора кажется ненадежной.

Я написал код на SDL2, для создания окна без перирисовки. По идее, без композитора, проводя окном по окну, должен оставаться след. Я запустил два окна _NET_WM_BYPASS_COMPOSITOR, запустил плеер, но след с включенным композитором не остается. Выключаю композитор, остается.

Пример программы, компилируется как gcc -lSDL2 main.c

#include <SDL2/SDL.h>

int main()
{
	SDL_Window *window;
	SDL_Event evt;
	
	SDL_Init(SDL_INIT_VIDEO);
        // Отключение _NET_WM_BYPASS_COMPOSITOR
	// SDL_SetHint("SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR", "0");
	window = SDL_CreateWindow("test", 100, 100, 800, 600, SDL_WINDOW_SHOWN);
	for (;;) 
		while (SDL_PollEvent(&evt))
			if (evt.type == SDL_QUIT)
				return 0;
	return 0;
}

Мой вердикт: нужно отключать композитинг а не вызывать XCompositeUnredirectWindow.

Исправление MOPKOBKA, :

Вообще мне идея вызова XCompositeUnredirectWindow вместо отключения композитора кажется ненадежной.

Я написал код на SDL2, для создания окна без перирисовки. По идее, без композитора, проводя окном по окну, должен оставаться след. Я запустил два окна _NET_WM_BYPASS_COMPOSITOR, запустил плеер, но след с включенным композитором не остается. Выключаю композитор, остается.

Пример программы, компилируется как gcc -lSDL2 main.c

#include <SDL2/SDL.h>

int main()
{
	SDL_Window *window;
	SDL_Event evt;
	
	SDL_Init(SDL_INIT_VIDEO);
        // Отключение _NET_WM_BYPASS_COMPOSITOR
	// SDL_SetHint("SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR", "0");
	window = SDL_CreateWindow("test", 100, 100, 800, 600, SDL_WINDOW_SHOWN);
	for (;;) 
		while (SDL_PollEvent(&evt))
			if (evt.type == SDL_QUIT)
				return 0;
	return 0;
}

Исправление MOPKOBKA, :

Вообще мне идея вызова XCompositeUnredirectWindow вместо отключения композитора кажется ненадежной.

Я написал код на SDL2, для создания окна без перирисовки. По идее, без композитора, проводя окном по окну, должен оставаться след. Я запустил два окна _NET_WM_BYPASS_COMPOSITOR, запустил плеер, но след с включенным композитором не остается. Выключаю композитор, остается.

Пример программы, компилируется как gcc -lSDL2 main.c

#include <SDL2/SDL.h>

int main()
{
	SDL_Window *window;
	SDL_Event evt;
	
	SDL_Init(SDL_INIT_VIDEO);
	// SDL_SetHint("SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR", "0");
	window = SDL_CreateWindow("test", 100, 100, 800, 600, SDL_WINDOW_SHOWN);
	for (;;) 
		while (SDL_PollEvent(&evt))
			if (evt.type == SDL_QUIT)
				return 0;
	return 0;
}

Исправление MOPKOBKA, :

Вообще мне идея вызова XCompositeUnredirectWindow вместо отключения композитора кажется ненадежной.

Я написал код на SDL2, для создания окна без перирисовки. По идее, без композитора, проводя окном по окну, должен оставаться след. Я запустил два окна _NET_WM_BYPASS_COMPOSITOR, запустил плеер, но след с включенным композитором не остается. Выключаю композитор, остается.

Пример программы, компилируется как gcc -lSDL2 main.c

#include <SDL2/SDL.h>

int main()
{
	SDL_Window *window;
	SDL_Event evt;
	
	SDL_Init(SDL_INIT_VIDEO);
	SDL_SetHint("SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR", "0");
	window = SDL_CreateWindow("test", 100, 100, 800, 600, SDL_WINDOW_SHOWN);
	for (;;) 
		while (SDL_PollEvent(&evt))
			if (evt.type == SDL_QUIT)
				return 0;
	return 0;
}

Исходная версия MOPKOBKA, :

Вообще мне идея вызова XCompositeUnredirectWindow вместо отключения композитора кажется ненадежной.

Я написал код на SDL2, для создания окна без перирисовки. По идее, без композитора, проводя окном по окну, должен оставаться след. Я запустил два окна _NET_WM_BYPASS_COMPOSITOR, запустил плеер, но след с включенным композитором не остается. Выключаю композитор, остается.