forked from mirrors/gecko-dev
		
	 a5d45cd2fe
			
		
	
	
		a5d45cd2fe
		
	
	
	
	
		
			
			This was useful so may as well land it. Need to use mozilla::Side in the header because otherwise it is ambiguous with mozilla::ipc::Side, yay C++. Depends on D135562 Differential Revision: https://phabricator.services.mozilla.com/D135563
		
			
				
	
	
		
			102 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #include "Types.h"
 | |
| 
 | |
| #include "nsPrintfCString.h"
 | |
| 
 | |
| #include <ostream>
 | |
| 
 | |
| namespace mozilla {
 | |
| 
 | |
| std::ostream& operator<<(std::ostream& aOut, const Side& aSide) {
 | |
| #define Emit(x) \
 | |
|   case x:       \
 | |
|     aOut << #x; \
 | |
|     break
 | |
| 
 | |
|   switch (aSide) {
 | |
|     Emit(eSideTop);
 | |
|     Emit(eSideBottom);
 | |
|     Emit(eSideLeft);
 | |
|     Emit(eSideRight);
 | |
|     default:
 | |
|       NS_ERROR("unknown side");
 | |
|       aOut << int(aSide);
 | |
|       break;
 | |
|   }
 | |
| 
 | |
| #undef Emit
 | |
|   return aOut;
 | |
| }
 | |
| 
 | |
| namespace gfx {
 | |
| 
 | |
| std::ostream& operator<<(std::ostream& aOut, const SurfaceFormat& aFormat) {
 | |
| #define Emit(x) \
 | |
|   case x:       \
 | |
|     aOut << #x; \
 | |
|     break
 | |
| 
 | |
|   switch (aFormat) {
 | |
|     Emit(SurfaceFormat::B8G8R8A8);
 | |
|     Emit(SurfaceFormat::B8G8R8X8);
 | |
|     Emit(SurfaceFormat::R8G8B8A8);
 | |
|     Emit(SurfaceFormat::R8G8B8X8);
 | |
|     Emit(SurfaceFormat::A8R8G8B8);
 | |
|     Emit(SurfaceFormat::X8R8G8B8);
 | |
|     Emit(SurfaceFormat::R8G8B8);
 | |
|     Emit(SurfaceFormat::B8G8R8);
 | |
|     Emit(SurfaceFormat::R5G6B5_UINT16);
 | |
|     Emit(SurfaceFormat::A8);
 | |
|     Emit(SurfaceFormat::A16);
 | |
|     Emit(SurfaceFormat::R8G8);
 | |
|     Emit(SurfaceFormat::R16G16);
 | |
|     Emit(SurfaceFormat::YUV);
 | |
|     Emit(SurfaceFormat::NV12);
 | |
|     Emit(SurfaceFormat::P016);
 | |
|     Emit(SurfaceFormat::P010);
 | |
|     Emit(SurfaceFormat::YUV422);
 | |
|     Emit(SurfaceFormat::HSV);
 | |
|     Emit(SurfaceFormat::Lab);
 | |
|     Emit(SurfaceFormat::Depth);
 | |
|     default:
 | |
|       NS_ERROR("unknown surface format");
 | |
|       aOut << "???";
 | |
|   }
 | |
| 
 | |
| #undef Emit
 | |
| 
 | |
|   return aOut;
 | |
| }
 | |
| 
 | |
| std::ostream& operator<<(std::ostream& aOut, const DeviceColor& aColor) {
 | |
|   aOut << nsPrintfCString("dev_rgba(%d, %d, %d, %f)", uint8_t(aColor.r * 255.f),
 | |
|                           uint8_t(aColor.g * 255.f), uint8_t(aColor.b * 255.f),
 | |
|                           aColor.a)
 | |
|               .get();
 | |
|   return aOut;
 | |
| }
 | |
| 
 | |
| std::ostream& operator<<(std::ostream& aOut, const SamplingFilter& aFilter) {
 | |
|   switch (aFilter) {
 | |
|     case SamplingFilter::GOOD:
 | |
|       aOut << "SamplingFilter::GOOD";
 | |
|       break;
 | |
|     case SamplingFilter::LINEAR:
 | |
|       aOut << "SamplingFilter::LINEAR";
 | |
|       break;
 | |
|     case SamplingFilter::POINT:
 | |
|       aOut << "SamplingFilter::POINT";
 | |
|       break;
 | |
|     default:
 | |
|       aOut << "???";
 | |
|   }
 | |
|   return aOut;
 | |
| }
 | |
| 
 | |
| }  // namespace gfx
 | |
| }  // namespace mozilla
 |