RefreshRate в DXGI_SWAP_CHAIN_DESC

На mdsn есть информация о структуре DXGI_RATIONAL

Numerator An unsigned integer value representing the top of the rational number.

Denominator An unsigned integer value representing the bottom of the rational number.

Что дает эта структура? Как понять

Целое число без знака, представляющее верхнюю часть рационального числа.

и

Целое число без знака, представляющее нижнюю часть рационального числа.


Ответы (2 шт):

Автор решения: Harry

Рациональное число в математике — это дробь вида a/b. Так что ее числитель a и есть верхняя часть дроби, а знаменатель b — нижняя часть.

И это явно указано в именах полей структуры:

typedef struct DXGI_RATIONAL {
  UINT Numerator;
  UINT Denominator;
} DXGI_RATIONAL;

Ибо в английском Numerator и есть числитель, а Denominator — знаменатель.

Видимо, они дали такое описание в терминах "верх-низ" в расчете на тех, кто плохо учил математику в школе :)

→ Ссылка
Автор решения: user7860670

Эта структура задает Рациональное число, проще говоря обыкновенную дробь вида Numerator / Denominator. В контексте задания частоты обновления в DXGI_SWAP_CHAIN_DESC эта структура имеет следующий смысл: в числителе указывается частота тактового генератора, а в знаменателе - количество тактов на один кадр, получается частота обновления в Герцах. Например для NTSC video - 30000/1001 - 29.97 Гц. Для игровых приложений же более обычны значения 60/1 - 60 Гц. Значение задается посредством двух целых чисел, а не одним числом с плавающей точкой чтобы избегать погрешностей вычислений с плавающей точкой.

→ Ссылка