RetroArch
d2d1helper.h
Go to the documentation of this file.
1 
2 /*=========================================================================*\
3 
4  Copyright (c) Microsoft Corporation. All rights reserved.
5 
6  File: D2D1helper.h
7 
8  Module Name: D2D
9 
10  Description: Helper files over the D2D interfaces and APIs.
11 
12 \*=========================================================================*/
13 #pragma once
14 
15 #ifndef _D2D1_HELPER_H_
16 #define _D2D1_HELPER_H_
17 
18 #ifndef _D2D1_H_
19 #include <d2d1.h>
20 #endif // #ifndef _D2D1_H_
21 
22 #ifndef D2D_USE_C_DEFINITIONS
23 
24 namespace D2D1
25 {
26  //
27  // Forward declared IdentityMatrix function to allow matrix class to use
28  // these constructors.
29  //
30  COM_DECLSPEC_NOTHROW
33  IdentityMatrix();
34 
35  //
36  // The default trait type for objects in D2D is float.
37  //
38  template<typename Type>
39  struct TypeTraits
40  {
41  typedef D2D1_POINT_2F Point;
42  typedef D2D1_SIZE_F Size;
43  typedef D2D1_RECT_F Rect;
44  };
45 
46  template<>
47  struct TypeTraits<UINT32>
48  {
49  typedef D2D1_POINT_2U Point;
50  typedef D2D1_SIZE_U Size;
51  typedef D2D1_RECT_U Rect;
52  };
53 
54  static
55  COM_DECLSPEC_NOTHROW
56  inline
57  FLOAT FloatMax()
58  {
59  #ifdef FLT_MAX
60  return FLT_MAX;
61  #else
62  return 3.402823466e+38F;
63  #endif
64  }
65 
66  //
67  // Construction helpers
68  //
69  template<typename Type>
70  COM_DECLSPEC_NOTHROW
72  typename TypeTraits<Type>::Point
73  Point2(
74  Type x,
75  Type y
76  )
77  {
78  typename TypeTraits<Type>::Point point = { x, y };
79 
80  return point;
81  }
82 
83  COM_DECLSPEC_NOTHROW
86  Point2F(
87  FLOAT x = 0.f,
88  FLOAT y = 0.f
89  )
90  {
91  return Point2<FLOAT>(x, y);
92  }
93 
94  COM_DECLSPEC_NOTHROW
97  Point2U(
98  UINT32 x = 0,
99  UINT32 y = 0
100  )
101  {
102  return Point2<UINT32>(x, y);
103  }
104 
105  template<typename Type>
106  COM_DECLSPEC_NOTHROW
108  typename TypeTraits<Type>::Size
109  Size(
110  Type width,
111  Type height
112  )
113  {
114  typename TypeTraits<Type>::Size size = { width, height };
115 
116  return size;
117  }
118 
119  COM_DECLSPEC_NOTHROW
122  SizeF(
123  FLOAT width = 0.f,
124  FLOAT height = 0.f
125  )
126  {
127  return Size<FLOAT>(width, height);
128  }
129 
130  COM_DECLSPEC_NOTHROW
133  SizeU(
134  UINT32 width = 0,
135  UINT32 height = 0
136  )
137  {
138  return Size<UINT32>(width, height);
139  }
140 
141  template<typename Type>
142  COM_DECLSPEC_NOTHROW
144  typename TypeTraits<Type>::Rect
145  Rect(
146  Type left,
147  Type top,
148  Type right,
149  Type bottom
150  )
151  {
152  typename TypeTraits<Type>::Rect rect = { left, top, right, bottom };
153 
154  return rect;
155  }
156 
157  COM_DECLSPEC_NOTHROW
160  RectF(
161  FLOAT left = 0.f,
162  FLOAT top = 0.f,
163  FLOAT right = 0.f,
164  FLOAT bottom = 0.f
165  )
166  {
167  return Rect<FLOAT>(left, top, right, bottom);
168  }
169 
170  COM_DECLSPEC_NOTHROW
173  RectU(
174  UINT32 left = 0,
175  UINT32 top = 0,
176  UINT32 right = 0,
177  UINT32 bottom = 0
178  )
179  {
180  return Rect<UINT32>(left, top, right, bottom);
181  }
182 
183  COM_DECLSPEC_NOTHROW
186  InfiniteRect()
187  {
188  D2D1_RECT_F rect = { -FloatMax(), -FloatMax(), FloatMax(), FloatMax() };
189 
190  return rect;
191  }
192 
193  COM_DECLSPEC_NOTHROW
196  ArcSegment(
197  _In_ CONST D2D1_POINT_2F &point,
198  _In_ CONST D2D1_SIZE_F &size,
199  _In_ FLOAT rotationAngle,
200  _In_ D2D1_SWEEP_DIRECTION sweepDirection,
201  _In_ D2D1_ARC_SIZE arcSize
202  )
203  {
204  D2D1_ARC_SEGMENT arcSegment = { point, size, rotationAngle, sweepDirection, arcSize };
205 
206  return arcSegment;
207  }
208 
209  COM_DECLSPEC_NOTHROW
212  BezierSegment(
213  _In_ CONST D2D1_POINT_2F &point1,
214  _In_ CONST D2D1_POINT_2F &point2,
215  _In_ CONST D2D1_POINT_2F &point3
216  )
217  {
218  D2D1_BEZIER_SEGMENT bezierSegment = { point1, point2, point3 };
219 
220  return bezierSegment;
221  }
222 
223  COM_DECLSPEC_NOTHROW
226  Ellipse(
227  _In_ CONST D2D1_POINT_2F &center,
228  FLOAT radiusX,
229  FLOAT radiusY
230  )
231  {
232  D2D1_ELLIPSE ellipse;
233 
234  ellipse.point = center;
235  ellipse.radiusX = radiusX;
236  ellipse.radiusY = radiusY;
237 
238  return ellipse;
239  }
240 
241  COM_DECLSPEC_NOTHROW
244  RoundedRect(
245  _In_ CONST D2D1_RECT_F &rect,
246  FLOAT radiusX,
247  FLOAT radiusY
248  )
249  {
250  D2D1_ROUNDED_RECT roundedRect;
251 
252  roundedRect.rect = rect;
253  roundedRect.radiusX = radiusX;
254  roundedRect.radiusY = radiusY;
255 
256  return roundedRect;
257  }
258 
259  COM_DECLSPEC_NOTHROW
262  BrushProperties(
263  _In_ FLOAT opacity = 1.0,
264  _In_ CONST D2D1_MATRIX_3X2_F &transform = D2D1::IdentityMatrix()
265  )
266  {
267  D2D1_BRUSH_PROPERTIES brushProperties;
268 
269  brushProperties.opacity = opacity;
270  brushProperties.transform = transform;
271 
272  return brushProperties;
273  }
274 
275  COM_DECLSPEC_NOTHROW
278  GradientStop(
279  FLOAT position,
280  _In_ CONST D2D1_COLOR_F &color
281  )
282  {
283  D2D1_GRADIENT_STOP gradientStop = { position, color };
284 
285  return gradientStop;
286  }
287 
288  COM_DECLSPEC_NOTHROW
291  QuadraticBezierSegment(
292  _In_ CONST D2D1_POINT_2F &point1,
293  _In_ CONST D2D1_POINT_2F &point2
294  )
295  {
296  D2D1_QUADRATIC_BEZIER_SEGMENT quadraticBezier = { point1, point2 };
297 
298  return quadraticBezier;
299  }
300 
301  COM_DECLSPEC_NOTHROW
304  StrokeStyleProperties(
309  FLOAT miterLimit = 10.0f,
311  FLOAT dashOffset = 0.0f
312  )
313  {
314  D2D1_STROKE_STYLE_PROPERTIES strokeStyleProperties;
315 
316  strokeStyleProperties.startCap = startCap;
317  strokeStyleProperties.endCap = endCap;
318  strokeStyleProperties.dashCap = dashCap;
319  strokeStyleProperties.lineJoin = lineJoin;
320  strokeStyleProperties.miterLimit = miterLimit;
321  strokeStyleProperties.dashStyle = dashStyle;
322  strokeStyleProperties.dashOffset = dashOffset;
323 
324  return strokeStyleProperties;
325  }
326 
327  COM_DECLSPEC_NOTHROW
330  BitmapBrushProperties(
334  )
335  {
336  D2D1_BITMAP_BRUSH_PROPERTIES bitmapBrushProperties;
337 
338  bitmapBrushProperties.extendModeX = extendModeX;
339  bitmapBrushProperties.extendModeY = extendModeY;
340  bitmapBrushProperties.interpolationMode = interpolationMode;
341 
342  return bitmapBrushProperties;
343  }
344 
345  COM_DECLSPEC_NOTHROW
348  LinearGradientBrushProperties(
349  _In_ CONST D2D1_POINT_2F &startPoint,
350  _In_ CONST D2D1_POINT_2F &endPoint
351  )
352  {
353  D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES linearGradientBrushProperties;
354 
355  linearGradientBrushProperties.startPoint = startPoint;
356  linearGradientBrushProperties.endPoint = endPoint;
357 
358  return linearGradientBrushProperties;
359  }
360 
361  COM_DECLSPEC_NOTHROW
364  RadialGradientBrushProperties(
365  _In_ CONST D2D1_POINT_2F &center,
366  _In_ CONST D2D1_POINT_2F &gradientOriginOffset,
367  FLOAT radiusX,
368  FLOAT radiusY
369  )
370  {
371  D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES radialGradientBrushProperties;
372 
373  radialGradientBrushProperties.center = center;
374  radialGradientBrushProperties.gradientOriginOffset = gradientOriginOffset;
375  radialGradientBrushProperties.radiusX = radiusX;
376  radialGradientBrushProperties.radiusY = radiusY;
377 
378  return radialGradientBrushProperties;
379  }
380 
381  //
382  // PixelFormat
383  //
384  COM_DECLSPEC_NOTHROW
387  PixelFormat(
388  _In_ DXGI_FORMAT dxgiFormat = DXGI_FORMAT_UNKNOWN,
390  )
391  {
392  D2D1_PIXEL_FORMAT pixelFormat;
393 
394  pixelFormat.format = dxgiFormat;
395  pixelFormat.alphaMode = alphaMode;
396 
397  return pixelFormat;
398  }
399 
400  //
401  // Bitmaps
402  //
403  COM_DECLSPEC_NOTHROW
406  BitmapProperties(
407  CONST D2D1_PIXEL_FORMAT &pixelFormat = D2D1::PixelFormat(),
408  FLOAT dpiX = 96.0f,
409  FLOAT dpiY = 96.0f
410  )
411  {
412  D2D1_BITMAP_PROPERTIES bitmapProperties;
413 
414  bitmapProperties.pixelFormat = pixelFormat;
415  bitmapProperties.dpiX = dpiX;
416  bitmapProperties.dpiY = dpiY;
417 
418  return bitmapProperties;
419  }
420 
421  //
422  // Render Targets
423  //
424  COM_DECLSPEC_NOTHROW
427  RenderTargetProperties(
429  _In_ CONST D2D1_PIXEL_FORMAT &pixelFormat = D2D1::PixelFormat(),
430  FLOAT dpiX = 0.0,
431  FLOAT dpiY = 0.0,
434  )
435  {
436  D2D1_RENDER_TARGET_PROPERTIES renderTargetProperties;
437 
438  renderTargetProperties.type = type;
439  renderTargetProperties.pixelFormat = pixelFormat;
440  renderTargetProperties.dpiX = dpiX;
441  renderTargetProperties.dpiY = dpiY;
442  renderTargetProperties.usage = usage;
443  renderTargetProperties.minLevel = minLevel;
444 
445  return renderTargetProperties;
446  }
447 
448  COM_DECLSPEC_NOTHROW
451  HwndRenderTargetProperties(
452  _In_ HWND hwnd,
453  _In_ D2D1_SIZE_U pixelSize = D2D1::Size(static_cast<UINT32>(0), static_cast<UINT32>(0)),
454  _In_ D2D1_PRESENT_OPTIONS presentOptions = D2D1_PRESENT_OPTIONS_NONE
455  )
456  {
457  D2D1_HWND_RENDER_TARGET_PROPERTIES hwndRenderTargetProperties;
458 
459  hwndRenderTargetProperties.hwnd = hwnd;
460  hwndRenderTargetProperties.pixelSize = pixelSize;
461  hwndRenderTargetProperties.presentOptions = presentOptions;
462 
463  return hwndRenderTargetProperties;
464  }
465 
466  COM_DECLSPEC_NOTHROW
469  LayerParameters(
470  _In_ CONST D2D1_RECT_F &contentBounds = D2D1::InfiniteRect(),
471  _In_opt_ ID2D1Geometry *geometricMask = NULL,
473  D2D1_MATRIX_3X2_F maskTransform = D2D1::IdentityMatrix(),
474  FLOAT opacity = 1.0,
475  _In_opt_ ID2D1Brush *opacityBrush = NULL,
477  )
478  {
479  D2D1_LAYER_PARAMETERS layerParameters = { 0 };
480 
481  layerParameters.contentBounds = contentBounds;
482  layerParameters.geometricMask = geometricMask;
483  layerParameters.maskAntialiasMode = maskAntialiasMode;
484  layerParameters.maskTransform = maskTransform;
485  layerParameters.opacity = opacity;
486  layerParameters.opacityBrush = opacityBrush;
487  layerParameters.layerOptions = layerOptions;
488 
489  return layerParameters;
490  }
491 
492  COM_DECLSPEC_NOTHROW
495  DrawingStateDescription(
498  D2D1_TAG tag1 = 0,
499  D2D1_TAG tag2 = 0,
500  _In_ const D2D1_MATRIX_3X2_F &transform = D2D1::IdentityMatrix()
501  )
502  {
503  D2D1_DRAWING_STATE_DESCRIPTION drawingStateDescription;
504 
505  drawingStateDescription.antialiasMode = antialiasMode;
506  drawingStateDescription.textAntialiasMode = textAntialiasMode;
507  drawingStateDescription.tag1 = tag1;
508  drawingStateDescription.tag2 = tag2;
509  drawingStateDescription.transform = transform;
510 
511  return drawingStateDescription;
512  }
513 
514  //
515  // Colors, this enum defines a set of predefined colors.
516  //
517  class ColorF : public D2D1_COLOR_F
518  {
519  public:
520 
521  enum Enum
522  {
523  AliceBlue = 0xF0F8FF,
524  AntiqueWhite = 0xFAEBD7,
525  Aqua = 0x00FFFF,
526  Aquamarine = 0x7FFFD4,
527  Azure = 0xF0FFFF,
528  Beige = 0xF5F5DC,
529  Bisque = 0xFFE4C4,
530  Black = 0x000000,
531  BlanchedAlmond = 0xFFEBCD,
532  Blue = 0x0000FF,
533  BlueViolet = 0x8A2BE2,
534  Brown = 0xA52A2A,
535  BurlyWood = 0xDEB887,
536  CadetBlue = 0x5F9EA0,
537  Chartreuse = 0x7FFF00,
538  Chocolate = 0xD2691E,
539  Coral = 0xFF7F50,
540  CornflowerBlue = 0x6495ED,
541  Cornsilk = 0xFFF8DC,
542  Crimson = 0xDC143C,
543  Cyan = 0x00FFFF,
544  DarkBlue = 0x00008B,
545  DarkCyan = 0x008B8B,
546  DarkGoldenrod = 0xB8860B,
547  DarkGray = 0xA9A9A9,
548  DarkGreen = 0x006400,
549  DarkKhaki = 0xBDB76B,
550  DarkMagenta = 0x8B008B,
551  DarkOliveGreen = 0x556B2F,
552  DarkOrange = 0xFF8C00,
553  DarkOrchid = 0x9932CC,
554  DarkRed = 0x8B0000,
555  DarkSalmon = 0xE9967A,
556  DarkSeaGreen = 0x8FBC8F,
557  DarkSlateBlue = 0x483D8B,
558  DarkSlateGray = 0x2F4F4F,
559  DarkTurquoise = 0x00CED1,
560  DarkViolet = 0x9400D3,
561  DeepPink = 0xFF1493,
562  DeepSkyBlue = 0x00BFFF,
563  DimGray = 0x696969,
564  DodgerBlue = 0x1E90FF,
565  Firebrick = 0xB22222,
566  FloralWhite = 0xFFFAF0,
567  ForestGreen = 0x228B22,
568  Fuchsia = 0xFF00FF,
569  Gainsboro = 0xDCDCDC,
570  GhostWhite = 0xF8F8FF,
571  Gold = 0xFFD700,
572  Goldenrod = 0xDAA520,
573  Gray = 0x808080,
574  Green = 0x008000,
575  GreenYellow = 0xADFF2F,
576  Honeydew = 0xF0FFF0,
577  HotPink = 0xFF69B4,
578  IndianRed = 0xCD5C5C,
579  Indigo = 0x4B0082,
580  Ivory = 0xFFFFF0,
581  Khaki = 0xF0E68C,
582  Lavender = 0xE6E6FA,
583  LavenderBlush = 0xFFF0F5,
584  LawnGreen = 0x7CFC00,
585  LemonChiffon = 0xFFFACD,
586  LightBlue = 0xADD8E6,
587  LightCoral = 0xF08080,
588  LightCyan = 0xE0FFFF,
589  LightGoldenrodYellow = 0xFAFAD2,
590  LightGreen = 0x90EE90,
591  LightGray = 0xD3D3D3,
592  LightPink = 0xFFB6C1,
593  LightSalmon = 0xFFA07A,
594  LightSeaGreen = 0x20B2AA,
595  LightSkyBlue = 0x87CEFA,
596  LightSlateGray = 0x778899,
597  LightSteelBlue = 0xB0C4DE,
598  LightYellow = 0xFFFFE0,
599  Lime = 0x00FF00,
600  LimeGreen = 0x32CD32,
601  Linen = 0xFAF0E6,
602  Magenta = 0xFF00FF,
603  Maroon = 0x800000,
604  MediumAquamarine = 0x66CDAA,
605  MediumBlue = 0x0000CD,
606  MediumOrchid = 0xBA55D3,
607  MediumPurple = 0x9370DB,
608  MediumSeaGreen = 0x3CB371,
609  MediumSlateBlue = 0x7B68EE,
610  MediumSpringGreen = 0x00FA9A,
611  MediumTurquoise = 0x48D1CC,
612  MediumVioletRed = 0xC71585,
613  MidnightBlue = 0x191970,
614  MintCream = 0xF5FFFA,
615  MistyRose = 0xFFE4E1,
616  Moccasin = 0xFFE4B5,
617  NavajoWhite = 0xFFDEAD,
618  Navy = 0x000080,
619  OldLace = 0xFDF5E6,
620  Olive = 0x808000,
621  OliveDrab = 0x6B8E23,
622  Orange = 0xFFA500,
623  OrangeRed = 0xFF4500,
624  Orchid = 0xDA70D6,
625  PaleGoldenrod = 0xEEE8AA,
626  PaleGreen = 0x98FB98,
627  PaleTurquoise = 0xAFEEEE,
628  PaleVioletRed = 0xDB7093,
629  PapayaWhip = 0xFFEFD5,
630  PeachPuff = 0xFFDAB9,
631  Peru = 0xCD853F,
632  Pink = 0xFFC0CB,
633  Plum = 0xDDA0DD,
634  PowderBlue = 0xB0E0E6,
635  Purple = 0x800080,
636  Red = 0xFF0000,
637  RosyBrown = 0xBC8F8F,
638  RoyalBlue = 0x4169E1,
639  SaddleBrown = 0x8B4513,
640  Salmon = 0xFA8072,
641  SandyBrown = 0xF4A460,
642  SeaGreen = 0x2E8B57,
643  SeaShell = 0xFFF5EE,
644  Sienna = 0xA0522D,
645  Silver = 0xC0C0C0,
646  SkyBlue = 0x87CEEB,
647  SlateBlue = 0x6A5ACD,
648  SlateGray = 0x708090,
649  Snow = 0xFFFAFA,
650  SpringGreen = 0x00FF7F,
651  SteelBlue = 0x4682B4,
652  Tan = 0xD2B48C,
653  Teal = 0x008080,
654  Thistle = 0xD8BFD8,
655  Tomato = 0xFF6347,
656  Turquoise = 0x40E0D0,
657  Violet = 0xEE82EE,
658  Wheat = 0xF5DEB3,
659  White = 0xFFFFFF,
660  WhiteSmoke = 0xF5F5F5,
661  Yellow = 0xFFFF00,
662  YellowGreen = 0x9ACD32,
663  };
664 
665  //
666  // Construct a color, note that the alpha value from the "rgb" component
667  // is never used.
668  //
669  COM_DECLSPEC_NOTHROW
671  ColorF(
672  UINT32 rgb,
673  FLOAT a = 1.0
674  )
675  {
676  Init(rgb, a);
677  }
678 
679  COM_DECLSPEC_NOTHROW
681  ColorF(
682  Enum knownColor,
683  FLOAT a = 1.0
684  )
685  {
686  Init(knownColor, a);
687  }
688 
689  COM_DECLSPEC_NOTHROW
691  ColorF(
692  FLOAT red,
693  FLOAT green,
694  FLOAT blue,
695  FLOAT alpha = 1.0
696  )
697  {
698  r = red;
699  g = green;
700  b = blue;
701  a = alpha;
702  }
703 
704  private:
705 
706  COM_DECLSPEC_NOTHROW
708  void
709  Init(
710  UINT32 rgb,
711  FLOAT alpha
712  )
713  {
714  r = static_cast<FLOAT>((rgb & sc_redMask) >> sc_redShift) / 255.f;
715  g = static_cast<FLOAT>((rgb & sc_greenMask) >> sc_greenShift) / 255.f;
716  b = static_cast<FLOAT>((rgb & sc_blueMask) >> sc_blueShift) / 255.f;
717  a = alpha;
718  }
719 
720  static const UINT32 sc_redShift = 16;
721  static const UINT32 sc_greenShift = 8;
722  static const UINT32 sc_blueShift = 0;
723 
724  static const UINT32 sc_redMask = 0xff << sc_redShift;
725  static const UINT32 sc_greenMask = 0xff << sc_greenShift;
726  static const UINT32 sc_blueMask = 0xff << sc_blueShift;
727  };
728 
729  class Matrix3x2F : public D2D1_MATRIX_3X2_F
730  {
731  public:
732 
733  COM_DECLSPEC_NOTHROW
735  Matrix3x2F(
736  FLOAT m11,
737  FLOAT m12,
738  FLOAT m21,
739  FLOAT m22,
740  FLOAT m31,
741  FLOAT m32
742  )
743  {
744  _11 = m11;
745  _12 = m12;
746  _21 = m21;
747  _22 = m22;
748  _31 = m31;
749  _32 = m32;
750  }
751 
752  //
753  // Creates an uninitialized matrix
754  //
755  COM_DECLSPEC_NOTHROW
757  Matrix3x2F(
758  )
759  {
760  }
761 
762  //
763  // Named quasi-constructors
764  //
765  static
766  COM_DECLSPEC_NOTHROW
768  Matrix3x2F
769  Identity()
770  {
771  Matrix3x2F identity;
772 
773  identity._11 = 1.f;
774  identity._12 = 0.f;
775  identity._21 = 0.f;
776  identity._22 = 1.f;
777  identity._31 = 0.f;
778  identity._32 = 0.f;
779 
780  return identity;
781  }
782 
783  static
784  COM_DECLSPEC_NOTHROW
786  Matrix3x2F
787  Translation(
789  )
790  {
791  Matrix3x2F translation;
792 
793  translation._11 = 1.0; translation._12 = 0.0;
794  translation._21 = 0.0; translation._22 = 1.0;
795  translation._31 = size.width; translation._32 = size.height;
796 
797  return translation;
798  }
799 
800  static
801  COM_DECLSPEC_NOTHROW
803  Matrix3x2F
804  Translation(
805  FLOAT x,
806  FLOAT y
807  )
808  {
809  return Translation(SizeF(x, y));
810  }
811 
812 
813  static
814  COM_DECLSPEC_NOTHROW
816  Matrix3x2F
817  Scale(
819  D2D1_POINT_2F center = D2D1::Point2F()
820  )
821  {
822  Matrix3x2F scale;
823 
824  scale._11 = size.width; scale._12 = 0.0;
825  scale._21 = 0.0; scale._22 = size.height;
826  scale._31 = center.x - size.width * center.x;
827  scale._32 = center.y - size.height * center.y;
828 
829  return scale;
830  }
831 
832  static
833  COM_DECLSPEC_NOTHROW
835  Matrix3x2F
836  Scale(
837  FLOAT x,
838  FLOAT y,
839  D2D1_POINT_2F center = D2D1::Point2F()
840  )
841  {
842  return Scale(SizeF(x, y), center);
843  }
844 
845  static
846  COM_DECLSPEC_NOTHROW
848  Matrix3x2F
849  Rotation(
850  FLOAT angle,
851  D2D1_POINT_2F center = D2D1::Point2F()
852  )
853  {
854  Matrix3x2F rotation;
855 
857 
858  return rotation;
859  }
860 
861  static
862  COM_DECLSPEC_NOTHROW
864  Matrix3x2F
865  Skew(
866  FLOAT angleX,
867  FLOAT angleY,
868  D2D1_POINT_2F center = D2D1::Point2F()
869  )
870  {
871  Matrix3x2F skew;
872 
873  D2D1MakeSkewMatrix(angleX, angleY, center, &skew);
874 
875  return skew;
876  }
877 
878  //
879  // Functions for convertion from the base D2D1_MATRIX_3X2_F to this type
880  // without making a copy
881  //
882  static
883  COM_DECLSPEC_NOTHROW
884  inline
885  const Matrix3x2F*
886  ReinterpretBaseType(const D2D1_MATRIX_3X2_F *pMatrix)
887  {
888  return static_cast<const Matrix3x2F *>(pMatrix);
889  }
890 
891  static
892  COM_DECLSPEC_NOTHROW
893  inline
894  Matrix3x2F*
895  ReinterpretBaseType(D2D1_MATRIX_3X2_F *pMatrix)
896  {
897  return static_cast<Matrix3x2F *>(pMatrix);
898  }
899 
900  COM_DECLSPEC_NOTHROW
901  inline
902  FLOAT
903  Determinant() const
904  {
905  return (_11 * _22) - (_12 * _21);
906  }
907 
908  COM_DECLSPEC_NOTHROW
909  inline
910  bool
911  IsInvertible() const
912  {
913  return !!D2D1IsMatrixInvertible(this);
914  }
915 
916  COM_DECLSPEC_NOTHROW
917  inline
918  bool
919  Invert()
920  {
921  return !!D2D1InvertMatrix(this);
922  }
923 
924  COM_DECLSPEC_NOTHROW
925  inline
926  bool
927  IsIdentity() const
928  {
929  return _11 == 1.f && _12 == 0.f
930  && _21 == 0.f && _22 == 1.f
931  && _31 == 0.f && _32 == 0.f;
932  }
933 
934  COM_DECLSPEC_NOTHROW
935  inline
936  void SetProduct(
937  const Matrix3x2F &a,
938  const Matrix3x2F &b
939  )
940  {
941  _11 = a._11 * b._11 + a._12 * b._21;
942  _12 = a._11 * b._12 + a._12 * b._22;
943  _21 = a._21 * b._11 + a._22 * b._21;
944  _22 = a._21 * b._12 + a._22 * b._22;
945  _31 = a._31 * b._11 + a._32 * b._21 + b._31;
946  _32 = a._31 * b._12 + a._32 * b._22 + b._32;
947  }
948 
949  COM_DECLSPEC_NOTHROW
951  Matrix3x2F
952  operator*(
953  const Matrix3x2F &matrix
954  ) const
955  {
956  Matrix3x2F result;
957 
958  result.SetProduct(*this, matrix);
959 
960  return result;
961  }
962 
963  COM_DECLSPEC_NOTHROW
966  TransformPoint(
967  D2D1_POINT_2F point
968  ) const
969  {
971  {
972  point.x * _11 + point.y * _21 + _31,
973  point.x * _12 + point.y * _22 + _32
974  };
975 
976  return result;
977  }
978  };
979 
980  COM_DECLSPEC_NOTHROW
983  operator*(
984  const D2D1_POINT_2F &point,
986  )
987  {
988  return Matrix3x2F::ReinterpretBaseType(&matrix)->TransformPoint(point);
989  }
990 
991  COM_DECLSPEC_NOTHROW
993  IdentityMatrix()
994  {
995  return Matrix3x2F::Identity();
996  }
997 
998 } // namespace D2D1
999 
1000 COM_DECLSPEC_NOTHROW
1003 operator*(
1004  const D2D1_MATRIX_3X2_F &matrix1,
1005  const D2D1_MATRIX_3X2_F &matrix2
1006  )
1007 {
1008  return
1009  (*D2D1::Matrix3x2F::ReinterpretBaseType(&matrix1)) *
1010  (*D2D1::Matrix3x2F::ReinterpretBaseType(&matrix2));
1011 }
1012 
1013 COM_DECLSPEC_NOTHROW
1014 inline
1015 bool
1016 operator==(const D2D1_SIZE_U &size1, const D2D1_SIZE_U &size2)
1017 {
1018  return (size1.width == size2.width) && (size1.height == size2.height);
1019 }
1020 
1021 COM_DECLSPEC_NOTHROW
1022 inline
1023 bool
1024 operator==(const D2D1_RECT_U &rect1, const D2D1_RECT_U &rect2)
1025 {
1026  return (rect1.left == rect2.left) && (rect1.top == rect2.top) &&
1027  (rect1.right == rect2.right) && (rect1.bottom == rect2.bottom);
1028 }
1029 
1030 #endif // #ifndef D2D_USE_C_DEFINITIONS
1031 
1032 #endif // #ifndef _D2D1_HELPER_H_
1033 
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:6559
D2D1_BITMAP_INTERPOLATION_MODE
Specifies the algorithm that is used when images are scaled or rotated. Note Starting in Windows 8,...
Definition: d2d1.h:231
FLOAT y
Definition: dcommon.h:178
D2D1_TAG tag2
Definition: d2d1.h:941
D2D1_CAP_STYLE
Enum which describes the drawing of the ends of a line.
Definition: d2d1.h:380
#define D2D1FORCEINLINE
Definition: d2d1.h:3704
Contains the dimensions and corner radii of a rounded rectangle.
Definition: d2d1.h:665
UINT32 left
Definition: dcommon.h:240
FLOAT miterLimit
Definition: d2d1.h:683
Render text using the current system setting.
Definition: d2d1.h:205
Describes an arc that is defined as part of a path.
Definition: d2d1.h:628
Contains the gradient origin offset and the size and position of the gradient ellipse for an ID2D1Rad...
Definition: d2d1.h:354
UINT32 right
Definition: dcommon.h:242
D2D1_LAYER_OPTIONS
Specified options that can be applied when a layer resource is applied to create a layer.
Definition: d2d1.h:694
Unknown compiler Device disconnected from port File already exists Saving to backup buffer Got connection Port Mapping Successful No arguments supplied and no menu displaying help Waiting for client You have joined as player u Player *s has left the game *s has joined with input devices *s The netplay peer is running an old version of RetroArch Cannot connect A netplay peer is running a different core Cannot connect This core does not support inter architecture netplay between these systems Enter netplay server Incorrect password A netplay client has disconnected You do not have permission to play The input devices requested are not available Netplay peer s paused Give hardware rendered cores their own private context Avoids having to assume hardware state changes inbetween frames Adjusts menu screen appearance settings Improves performance at the cost of latency and more video stuttering Use only if you cannot obtain full speed otherwise Autodetect Capabilities Connecting to port Password Username Accounts List Endpoint Achievements Resume Achievements Hardcore Mode Scan Content Import content Ask Block Frames Audio Driver Audio Enable Turbo Deadzone Audio Maximum Timing Skew Audio Output Dynamic Audio Rate Control Audio Audio Volume WASAPI Exclusive Mode WASAPI Shared Buffer Length Load Override Files Automatically Load Shader Presets Automatically Confirm Quit Scroll Up Toggle Keyboard Basic menu controls Info Scroll Up Toggle Keyboard Don t overwrite SaveRAM on loading savestate Buildbot Assets URL Allow Camera Cheat Start Search For New Cheat Code Cheat File Load Cheat Load Cheat Save Cheat File As Description Leaderboards Locked Locked Test Unofficial Achievements Unlocked Verbose Mode Close Content Load Configuration Save Configuration on Exit Database History List Size Quick Menu Downloads Core Counters Core Information Categories Core name Permissions System manufacturer Controls Install or Restore a Core Core installation succesful Core Automatically extract downloaded archive Core Updater CPU CPU Cursor Custom Ratio Database Selection Start directory< Default > Directory not found Disk Cycle Tray Status Disk Index Don t care Download a Core DPI Override Enable Driver Check for Missing Firmware Before Loading Dynamic Backgrounds Menu entry hover color False Favorites Include Memory Details Sync to Exact Content Frame Throttle Load Content Specific Core Options Automatically Save Game options file Audio Video Troubleshooting Basic Menu Controls Loading Content What Is A Core History Image Information All Users Control Menu Left analog Left analog Left Analog Y Left analog Right Analog X Right analog Right Analog Y Right analog Gun Trigger Gun Aux A Gun Aux C Gun Select Gun D pad Down Gun D pad Right Analog Stick Deadzone Bind All Bind Timeout Hide Unbound Core Input Descriptors Device Index Mouse Index Duty Cycle Keyboard Gamepad Mapping Enable B Down D pad L3 L Left D pad R3 R Right D pad Start button X Y Mouse Mouse Mouse Wheel Down Wheel Right Max Users Cheat index Cheat toggle Disk next Enable hotkeys Fast forward toggle FPS toggle Grab mouse toggle Desktop menu toggle Menu toggle Audio mute toggle On screen keyboard toggle Pause toggle Reset game Cheat Details Save state Next shader Slow motion hold Savestate slot Volume Display Overlay Show Inputs On Overlay Poll Type Behavior Late Prefer Front Touch Remap Binds Enable Input Touch Enable Turbo Period Latency Input Autoconfig Services Dutch Esperanto German Japanese Polish Russian Vietnamese Greek Core Core Logging Level Load Archive Load Content Allow Location Logging Main Menu Menu Color Theme Blue Grey Green Red Footer Opacity Menu Driver Settings Horizontal Animation Background Missing Mouse Support Music Navigation Wrap Around Netplay Netplay Check Frames Input Latency Frames Range Disconnect from netplay host Connect to netplay host Stop netplay host Scan local network Username Publicly Announce Netplay Disallow Non Slave Mode Clients Analog Input Sharing Average Share Vote No preference Netplay Stateless Mode Netplay Spectator Enable Netplay NAT Traversal Network Command Port Network Gamepad Network None No achievements to display No cores available No core options available No history available No items No networks found No playlists No settings found OFF Online Onscreen Display Adjust Bezels and Onscreen controls Adjust the Onscreen Notifications Optional Autoload Preferred Overlay Overlay Opacity Overlay Scale Use PAL60 Mode Pause when menu activated Performance Counters Playlist Touch Support Present MIDI Analog supported CERO Rating CRC32 Developer Edge Magazine Rating ELSPA Rating ESRB Rating Franchise MD5 Origin Publisher Releasedate Year Serial Start Content Reboot Recording Output Custom Record Config Record Driver Enable Recording Save Recordings in Output Dir Load Remap File Save Content Directory Remap File Delete Core Remap File Delete Game Content Directory Remap File Restart Resume RetroKeyboard RetroPad w Analog Rewind Enable Auto Apply Cheats During Game Load Rewind Buffer Size(MB)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE_STEP
Definition: glslang_tab.cpp:129
D2D1_CAP_STYLE startCap
Definition: d2d1.h:679
Describes the opacity and transformation of a brush.
Definition: d2d1.h:318
#define PixelFormat
Definition: record_ffmpeg.c:117
DXGI_FORMAT format
Definition: dcommon.h:157
FLOAT dashOffset
Definition: d2d1.h:685
D2D1_PIXEL_FORMAT pixelFormat
Definition: d2d1.h:297
D2D1_POINT_2F startPoint
Definition: d2d1.h:344
D2D1_TEXT_ANTIALIAS_MODE
Describes the antialiasing mode used for drawing text.
Definition: d2d1.h:199
BOOL WINAPI D2D1IsMatrixInvertible(_In_ CONST D2D1_MATRIX_3X2_F *matrix)
rotation
Definition: video_defines.h:62
D2D1_CAP_STYLE dashCap
Definition: d2d1.h:681
GLdouble GLdouble GLdouble r
Definition: glext.h:6406
Represents an x-coordinate and y-coordinate pair in two-dimensional space.
Definition: dcommon.h:165
D2D1_FEATURE_LEVEL minLevel
Definition: d2d1.h:893
UINT32 height
Definition: dcommon.h:267
Contains the center point, x-radius, and y-radius of an ellipse.
Definition: d2d1.h:653
D2D1_PRESENT_OPTIONS
Describes how present should behave.
Definition: d2d1.h:861
UINT32 top
Definition: dcommon.h:241
GLsizeiptr size
Definition: glext.h:6559
GLfloat f
Definition: glext.h:8207
GLfloat angle
Definition: glext.h:11760
void WINAPI D2D1MakeSkewMatrix(_In_ FLOAT angleX, _In_ FLOAT angleY, _In_ D2D1_POINT_2F center, _Out_ D2D1_MATRIX_3X2_F *matrix)
D2D1_DASH_STYLE
Describes the sequence of dashes and gaps in a stroke.
Definition: d2d1.h:410
Linear filtering.
Definition: d2d1.h:243
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9939
D2D1_MATRIX_3X2_F transform
Definition: d2d1.h:942
GLuint GLenum matrix
Definition: glext.h:10314
Definition: d2d1.h:838
Represents a rectangle defined by the coordinates of the upper-left corner (left, top) and the coordi...
Definition: dcommon.h:224
GLint GLint bottom
Definition: glext.h:8393
FLOAT opacity
Definition: d2d1.h:320
D2D1_RECT_F rect
Definition: d2d1.h:667
D2D1_POINT_2F center
Definition: d2d1.h:356
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:11766
Definition: d2d1.h:863
HWND hwnd
Definition: d2d1.h:904
D2D1_RENDER_TARGET_TYPE
Describes whether a render target uses hardware or software rendering, or if Direct2D should select t...
Definition: d2d1.h:783
GLdouble GLdouble right
Definition: glext.h:11766
The edges of each primitive are antialiased sequentially.
Definition: d2d1.h:185
GLboolean GLboolean GLboolean b
Definition: glext.h:6844
Miter join.
Definition: d2d1.h:432
Alpha mode should be determined implicitly. Some target surfaces do not supply or imply this informat...
Definition: dcommon.h:131
D2D1_PIXEL_FORMAT pixelFormat
Definition: d2d1.h:889
Contains rendering options (hardware or software), pixel format, DPI information, remoting options,...
Definition: d2d1.h:886
#define NULL
Pointer to 0.
Definition: gctypes.h:65
D2D1_RENDER_TARGET_TYPE type
Definition: d2d1.h:888
GLenum type
Definition: glext.h:6233
D2D1_LINE_JOIN
Enum which describes the drawing of the corners on the line.
Definition: d2d1.h:426
D2D1_SWEEP_DIRECTION
Defines the direction that an elliptical arc is drawn.
Definition: d2d1.h:603
Extend the edges of the source out by clamping sample points outside the source to the edges.
Definition: d2d1.h:158
DXGI_FORMAT
Definition: dxgiformat.h:10
void WINAPI D2D1MakeRotateMatrix(_In_ FLOAT angle, _In_ D2D1_POINT_2F center, _Out_ D2D1_MATRIX_3X2_F *matrix)
FLOAT x
Definition: dcommon.h:177
D2D1_RENDER_TARGET_USAGE
Describes how a render target is remoted and whether it should be GDI-compatible. This enumeration al...
Definition: d2d1.h:836
D2D1_RECT_F contentBounds
The rectangular clip that will be applied to the layer. The clip is affected by the world transform....
Definition: d2d1.h:725
D2D1_POINT_2F gradientOriginOffset
Definition: d2d1.h:357
Description of a pixel format.
Definition: dcommon.h:155
Definition: d2d1.h:412
D2D1_POINT_2F point
Definition: d2d1.h:655
Definition: dxgiformat.h:12
FLOAT radiusX
Definition: d2d1.h:358
interface ID2D1Geometry ID2D1Geometry
Definition: d2d1.h:76
GLfloat GLfloat blue
Definition: glext.h:6290
D2D1_EXTEND_MODE
Enum which describes how to sample from a source outside its base tile.
Definition: d2d1.h:151
FLOAT radiusY
Definition: d2d1.h:669
D2D1_ANTIALIAS_MODE
Enum which describes the manner in which we render edges of non-text primitives.
Definition: d2d1.h:179
D2D1_MATRIX_3X2_F maskTransform
An additional transform that may be applied to the mask in addition to the current world transform.
Definition: d2d1.h:742
D2D1_LINE_JOIN lineJoin
Definition: d2d1.h:682
D2D1_SIZE_U pixelSize
Definition: d2d1.h:905
Stores an ordered pair of floats, typically the width and height of a rectangle.
Definition: dcommon.h:252
D2D1_ALPHA_MODE alphaMode
Definition: dcommon.h:158
UINT64 D2D1_TAG
Definition: d2d1.h:290
D2D1_DASH_STYLE dashStyle
Definition: d2d1.h:684
GLint GLint GLint GLint GLint GLint y
Definition: glext.h:6295
D2D1_PRESENT_OPTIONS presentOptions
Definition: d2d1.h:906
GLint GLint GLint GLint GLint x
Definition: glext.h:6295
GLuint64EXT * result
Definition: glext.h:12211
Represents an x-coordinate and y-coordinate pair in two-dimensional space.
Definition: dcommon.h:175
BOOL WINAPI D2D1InvertMatrix(_Inout_ D2D1_MATRIX_3X2_F *matrix)
D2D1_ALPHA_MODE
Qualifies how alpha is to be treated in a bitmap or render target containing alpha.
Definition: dcommon.h:124
FLOAT radiusX
Definition: d2d1.h:656
D2D1_MATRIX_3X2_F transform
Definition: d2d1.h:321
Definition: d2d1.h:696
GLfloat GLfloat GLfloat alpha
Definition: glext.h:6290
Represents a 3-by-2 matrix.
Definition: dcommon.h:275
D2D1_EXTEND_MODE extendModeX
Definition: d2d1.h:331
Allows the drawing state to be atomically created. This also specifies the drawing state that is save...
Definition: d2d1.h:936
Represents a rectangle defined by the coordinates of the upper-left corner (left, top) and the coordi...
Definition: dcommon.h:238
FLOAT dpiX
Definition: d2d1.h:890
D2D is free to choose the render target type for the caller.
Definition: d2d1.h:789
D2D1_LAYER_OPTIONS layerOptions
Specifies if ClearType will be rendered into the layer.
Definition: d2d1.h:760
Flat line cap.
Definition: d2d1.h:386
Contains the starting point and endpoint of the gradient axis for an ID2D1LinearGradientBrush.
Definition: d2d1.h:342
FLOAT dpiX
Definition: d2d1.h:298
FLOAT dpiY
Definition: d2d1.h:299
Contains the content bounds, mask information, opacity settings, and other options for a layer resour...
Definition: d2d1.h:718
bool operator==(const FloatProxy< T > &first, const FloatProxy< T > &second)
Definition: hex_float.h:162
D2D1_FEATURE_LEVEL
Describes the minimum DirectX support required for hardware rendering by a render target.
Definition: d2d1.h:809
uint32_t UINT32
Definition: coretypes.h:10
FLOAT opacity
The opacity with which all of the content in the layer will be blended back to the target when the la...
Definition: d2d1.h:748
FLOAT radiusY
Definition: d2d1.h:657
GLboolean GLboolean g
Definition: glext.h:6844
GLuint color
Definition: glext.h:6883
interface ID2D1Brush ID2D1Brush
Definition: d2d1.h:77
UINT32 width
Definition: dcommon.h:266
GLfloat green
Definition: glext.h:6290
GLint GLint GLsizei width
Definition: glext.h:6293
D2D1_EXTEND_MODE extendModeY
Definition: d2d1.h:332
D2D1_ANTIALIAS_MODE maskAntialiasMode
Specifies whether the mask should be aliased or antialiased.
Definition: d2d1.h:736
Contains the control point and end point for a quadratic Bezier segment.
Definition: d2d1.h:642
Stores an ordered pair of integers, typically the width and height of a rectangle.
Definition: dcommon.h:264
Contains the HWND, pixel size, and presentation options for an ID2D1HwndRenderTarget.
Definition: d2d1.h:902
D2D1_TAG tag1
Definition: d2d1.h:940
GLuint GLenum GLenum transform
Definition: glext.h:10314
D2D1_POINT_2F endPoint
Definition: d2d1.h:345
Definition: glslang_tab.cpp:133
Properties, aside from the width, that allow geometric penning to be specified.
Definition: d2d1.h:677
D2D1_RENDER_TARGET_USAGE usage
Definition: d2d1.h:892
The caller does not require a particular underlying D3D device level.
Definition: d2d1.h:815
Type
Type of JSON value.
Definition: rapidjson.h:603
Contains the position and color of a gradient stop.
Definition: d2d1.h:307
D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
Definition: d2d1.h:939
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
Definition: d2d1.h:333
Compilador Desconocido Dispositivo desconectado del puerto El archivo ya existe Guardándolo en el búfer de respaldo Conexión obtenida Dirección pública Poniendo disco en bandeja As dejado el juego Se ha unido con el dispositivo de entrada *s *s se ha unido como jugador u Una conexión de netplay probablemente no este usando RetroArch o esté usando una versión antigua de RetroArch use la misma versión use la misma versión Este núcleo no soporta juego en red entre diferentes sistemas Contraseña incorrecta Un cliente de juego en red se ha desconectado No tienes permiso para jugar El dispositivo de entrada pedido no esta disponible Cliente de juego en red s pausado Dar a los núcleos renderizados por hardware un contexto privado Evita tener que asumir cambios en el estado del hardware entre cuadros Ajusta la apariencia del menú Mejora el rendimiento a costa de la latencia y posiblemente algunos tirones Usar solo si no puede obtener máxima velocidad de otra manera Auto detectar Capacidades Conectando al puerto Lo no Contraseña Nombre de usuario Fin de la lista Lista de logros Continuar usando el modo Hardcore de logros Escanear Contenido Importar contenido Preguntar Bloquear frames Controlador de Audio Activar audio Turbo Zona Muerta Variación máxima de sincronía de audio Frecuencia de muestreo de Control de frecuencia dinámico Audio Volumen de WASAPI Mode Exclusivo WASAPI Tamaño del búfer compartido Cargar autom archivos de personalización Cargar Shaders automáticamente Confirmar Salir Desplazar hacia arriba Mostrar teclado Controles básicos del menú Información Desplazar hacia arriba Mostrar teclado No sobrescribir SaveRAM al cargar URL de recursos del Buildbot Permitir cámara Truco Iniciar búsqueda de trucos Archivo de trucos Cargar archivo de Cargar archivo de Guardar archivo de trucos como Descripción Tablas de clasificación Logros Bloqueado Probar logros No oficiales Desbloqueado Logros modo informativo Cerrar Cargar configuración Guardar configuración al salir Base de datos Tamaño del historial Menú rápido Descargas Contadores de núcleo Información del núcleo Categorías Nombre del núcleo Permisos Fabricante del sistema Controles Instalar or Restaurar un núcleo Núcleo instalado exitosamente Núcleo Extraer automáticamente el archivo descargado Actualizador de núcleos Arquitectura de Núcleos de Cursor Relación personalizada Seleccionar bases de datos Favoritos< Predeterminada > No se ha encontrado la carpeta Abrir Cerrar la bandeja de discos Índice de disco No importa Descargar núcleo Forzar DPI Controladores Chequear si falta Firmware antes de cargar Fondos de pantalla dinámicos Color de resaltado del menú Desactivado Favoritos Incluir detalles de memoria Sincronizar Velocidad de frames Usar opciones de núcleo para cada juego si existen Archivo de opciones del juego Solucionar problemas de Audio Video Controles básicos del menú Cargando contenido ¿Qué es un núcleo Historial Imágenes Información Todos controlan el menú Analógico izq Analógico izq Analógico izq Y Analógico izq Analógico der X Analógico der Analógico der Y Analógico der Activar Auto configuración Asignar todo Tiempo limite para asignar Ocultar descripciones de entrada sin asignar de los núcleo Indice de dispositivo Indice de ratón Ciclo de trabajo Activar mapeo de Teclado Mando Botón D pad ABAJO Botón Botón D pad IZQUIERDA Botón Botón D pad DERECHA Botón Start Botón Botón Ratón Ratón Ratón Rueda ABAJO Rueda DERECHA Máximo de usuarios Indice de trucos Activar truco Siguiente disco Activar hotkeys Avance rápido Mostrar FPS Capturar ratón Activar menú de escritorio Mostrar menú Silenciar audio Mostrar teclado en pantalla Pausar Resetear juego Detalles de truco Guardar estado Siguiente shader Tecla a mantener para cámara lenta Posición de guardado Volumen Mostrar superposición Mostrar entradas en la superposición Comportamiento del sondeo Tarde Preferir táctil frontal Permitir reasignar controles Controles Activar táctil Periodo del turbo Latencia Auto configuración de controles Servicios Holandés Esperanto Alemán Japones Polaco Ruso Vietnamita Griego Núcleos Nivel de registro de los núcleos Cargar archivo Cargar Contenido Permitir ubicación Registros Menú principal Tema de color del menú Azul gris Verde Rojo Opacidad del pie de página Controlador del menú Configuraciones Animación horizontal Fondo Faltante Soporte para ratón Música Volver al inicio al llegar al final Juego en red Juego en red
Definition: msg_hash_es.h:1732
FLOAT dpiY
Definition: d2d1.h:891
D2D1_CAP_STYLE endCap
Definition: d2d1.h:680
GLint left
Definition: glext.h:8393
#define F(x, y, z)
UINT32 bottom
Definition: dcommon.h:243
D2D1_ARC_SIZE
Differentiates which of the two possible arcs could match the given arc parameters.
Definition: d2d1.h:368
Describes a cubic bezier in a path.
Definition: d2d1.h:563
The text renderer interface represents a set of application-defined callbacks that perform rendering ...
Definition: d3d8types.h:57
FLOAT radiusX
Definition: d2d1.h:668
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6844
GLint GLint GLsizei GLsizei height
Definition: glext.h:6293
Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush.
Definition: d2d1.h:329
FLOAT radiusY
Definition: d2d1.h:359
D2D1_ANTIALIAS_MODE antialiasMode
Definition: d2d1.h:938
Describes the pixel format and dpi of a bitmap.
Definition: d2d1.h:295