480 likes | 703 Views
Документы и мультимедиа. Баркан Георгий gbarkan@microsoft.com. Электронные документы: от экрана до принтера. XPS — XML Paper Specification. Документы с богатым оформлением. Системы документо - оборота. «Умные» устройства. XPS: «Электронная бумага». XML Paper Specification
E N D
Документы и мультимедиа Баркан Георгий gbarkan@microsoft.com
Электронные документы: от экрана до принтера XPS —XML Paper Specification
Документы сбогатымоформлением Системыдокументо-оборота «Умные» устройства
XPS: «Электронная бумага» • XML Paper Specification • Точно отражает содержимое бумажной страницы • В точности WYSIWYG • Не изменяется — архивная копия документа • Содержит все необходимые ресурсы • Безопасность • Отображение на разных платформах
Структура документа XPS Требуемые илирекомендуемыефрагменты Package Parts Core Properties Thumbnail Необязательныефрагменты X509 Cert Signature Signature Origin Ресурсы Отношения Fixed Payload Parts FixedDocumentSequence XPS Package Relationships DocumentStructure FixedDocument Thumbnail FixedPage Font Fonts & Images FixedPage Thumbnail
OPC —Open Packaging Conventions • Открытый стандарт на файлы-контейнеры • Часть Office Open XML стандарта ECMA • Есть API для работы • Подходит для построения своих собственных форматов, так и для расширения существующих
Структура и отношения • Реляционная структура — можно работать с частями контента без чтения содержимого • Легко ориентироваться в контенте— тип MIME • Для описания отношений не нужна схема • Ссылочная целостность — можно использовать ID отношения для ссылки
Безопасность • Можно подписывать как фрагменты, так и отношения • Аутентификация и валидация с помощью подписи • API поддерживает шифрацию и защиту с помощью Windows Rights Management
Документы с богатым оформлением • Элементы • Canvas • Glyphs • Paths • Кисти: Image, solid, gradients • Форматы изображений: PNG, TIFF, JPEG, HD Photo • Расширенная цветовая модель • Прозрачность • sRGB, scRGB,profiled CMYK, named, and N-channel
Печать XPS Print API
Что делать? • Если используется Win32 —подWindows 7можно применять новые API • Объектная модель XPS • XPS PrintAPI • Если используется .NET • WPF и поддержка XPS
Usability превыше всего! Multi-Touch
Touch сценарии • Используем Интернет • Разбираем почту • Просматриваем фото • Играем в незамысловатые игры • Слушаем музыку и смотрим видео • Перебираем файлы • Располагаем окна поудобнее • Используем офисные приложения
Планы развития Touch платформы Windows 7 Release NET 4.0 / Surface 2.0 Release Native Win32 Application WinFormsApplication WPF Application Surface Application Surface SDK 1.0 Surface SDK 2.0 Multi-Touch Controls Surface Multi-Touch Controls & API Multi-Touch API WPF 3.5 SP1 WPF 4.0 Managed Wrapper and Interop WPF 3.5 Managed Wrapper and Interop Multi-Touch API and Controls Surface Hardware Windows Vista Surface Hardware Windows 7 Windows 7 Multi-Touch API
Multi-Touch в .NET • Для WPF: • 3.5 update примерно вместе с выходом Windows 7 • Multi-touch, жесты • 4.0 release • Multi-touch с новыми элементами управления • ДляWinForms (3.5 update): • Interop to native Win32 APIs • Использовать обертки
Что будет в WPF • Все для UIElement & UIElement3D • События Touch • TouchDown, TouchMove, TouchUp • TouchEnter, TouchLeave • Multi-Capture • Жесты • TouchGestureStarted, TouchGestureChanged, TouchGestureEnded • Инерция • Включаем на событии TouchGestureStarted • Дальнейшие события TouchGestureChanged
На чем это работает? • Железо, доступное уже сейчас: • HP TouchSmart 2 • Dell Latitude XT
3 уровня интеграции • Минимальная: Touch API не используется, пользовательский интерфейс имеет достаточные размеры и хорошо работает со стандартными жестами • Стандартная: Поддержка API жестов для более естественного взаимодействия • Улучшенная: Поддержка множественных касаний, глубокая интеграция, специально спроектированные взаимодействия
Что делать? • Обеспечить минимальный уровень интеграции • Guideline:http://msdn.microsoft.com/en-us/library/cc872774.aspx • Дальше действовать исходя из реальных сценариев
Direct2D и DirectWrite Графика
Высокий DPI Обрезанный текст Размеры картинок и расположение элементов Расположение элементов Размытые картинки Неправильные размеры шрифтов Размытый текст
Виртуализация DPI • Появилась в Vista • Применяется для приложений, которые не указали явно DPI awareness • Через манифест или вызовSetProcessDPIAware() • Подсистема Win32 возвращает метрики как будто установлен 96 DPI (вызовы GetSystemMetrics(), GetDeviceCaps, DEFAULT_GUI_FONT, и т. п.) • DWM масштабирует окно приложения • DPI Virtualization — это временное решение
Графическая платформа Windows 7 WIC Direct2D DWM Direct Write DXVA Direct3D 11 Direct3D 10 GDI+ DXGI Direct3D9 USER GDI Win32K DXGKernel Windows 7 Windows Vista
Архитектура Direct2D Приложение Приложение Direct2D Direct3D Программный рендеринг DXGI
Обзор Direct2D • Высокопроизводительная и высококачественная подсистема рендеринга графики • Аппаратный или программный рендеринг • Использует Direct3D • Работает на старых DX9 картах(10Level9) • Может использоваться для рендеринга на сервере (работает в сессии 0) • 2D векторная графика, картинки и текст
Direct2D API • Координаты не зависящие от DPI • Значения с плавающей точкой • ЕдиницыDIPS (DPI-independent pixels) • 1 DIP при 96 DPI — это один пиксел • Аффинные преобразования • Три основных категории объектов • «Устройства» вывода (HWND, HDC, Direct3D) • Стандартные ресурсы • Геометрические фигуры • Ресурсы, зависящие от устройства вывода • Кисти, картинки
Архитектура DirectWrite Приложение DirectWrite Graphics API Text Layout API Font System Font Rasterizer Script Processor
Обзор DirectWrite • Работает с любой технологией рендеринга • GDI, Direct2D, Direct3D • Аппаратное ускорение при работе через Direct2D • ClearType фильтрация и блендинг выполняются в «железе» • Уменьшается загрузка CPU при прорисовке элементов шрифтов
Размещение текста • Субпиксельное размещение символов • Точнее выдерживается межсимвольное расстояние • Более гладкий скроллинг и вращение текста
ClearType и Direct2D Сглаживание текста в вертикальном направлении с помощью блендинга
Что делать? • Если используется Win32 —подWindows 7 переходить на Direct2D и DirectWrite для повышения качества графики и текста • Если используется .NET — WPF
Фокус на коммуникационных приложениях Аудио
Аудио в Windows Vista • Первая существенная ревизия начиная с Windows 98 • Большая часть кода аудио-стека перенесена из режима ядра в пользовательский режим • Появились регулировки громкости по приложениям
Архитектура аудио-подсистемы DirectSound WINMM Media Foundation PlaySound SWMIDI Mixer API WAVE API WASAPI MMDeviceAPI DeviceTopology Endpoint Volume Audio Client Policy Engine Audio Engine Audio Driver
Роли аудио-устройств • Устройство по умолчанию — этого мало • Пока введена одна стандартная роль • eCommunications • Можно создавать свои роли • OEM’ы могут конфигурировать логику по определению ролей • Положение разъема • Сигналы с разъемов
Автоматическое приглушение аудио • Когда используется устройство с ролью eCommunications, другие аудио-потоки приглушаются • Также есть нотификация для приложений • Возможно отметить это поведение как программно на уровне приложения, так и на уровне пользователя
Другие изменения в аудио • Уменьшилась задержка обработки в аудио-тракте • Автоматическое переключение аудио-потока при отключении устройства • Поддержка Bluetooth аудио-устройств • HDMI аудио • Аудио-кнопки работают без входа в систему • Пониженное энергопотребление при использовании DirectSound
Что делать? • Всем разработчикам • Использовать устройство по умолчанию • Разработчикам голосовых приложений • Использовать устройство по умолчанию с ролью eCommunications • Добавить поддержку органов управления Bluetooth гарнитурами • Разработчикам медиа-проигрывателей • Подписаться на оповещения о событии приглушения аудио-потока и приостанавливать проигрывание • Другим разработчикам • Отменить приглушение своего потока, если это необходимо
Ресурсы • XPS • www.microsoft.com/xps • blogs.msdn.com/xps • blogs.msdn.com/adrianford • Touch • Guideline:msdn.microsoft.com/en-us/library/cc872774.aspx • Графика • MSDN / Win32 and COM Development / Graphics and Multimedia • Аудио • blogs.msdn.com/larryosterman