diff --git a/core/fxge/dib/fx_dib.cpp b/core/fxge/dib/fx_dib.cpp
index 2cf8023..8d30aee 100644
--- a/core/fxge/dib/fx_dib.cpp
+++ b/core/fxge/dib/fx_dib.cpp
@@ -70,23 +70,6 @@
   }
 }
 
-FXDIB_Format MakeARGBFormat(int bpp) {
-  switch (bpp) {
-    case 8:
-      return FXDIB_Format::k8bppRgba;
-    case 24:
-      return FXDIB_Format::kRgba;
-    case 32:
-      return FXDIB_Format::kArgb;
-    default:
-      return FXDIB_Format::kInvalid;
-  }
-}
-
-FXDIB_Format MakeMaybeAlphaRGBFormat(bool alpha, int bpp) {
-  return alpha ? MakeARGBFormat(bpp) : MakeRGBFormat(bpp);
-}
-
 FXDIB_Format AddAlphaToCmykFormat(FXDIB_Format format) {
   switch (format) {
     case FXDIB_Format::k8bppCmyk:
diff --git a/core/fxge/dib/fx_dib.h b/core/fxge/dib/fx_dib.h
index 454bef1..8feec78 100644
--- a/core/fxge/dib/fx_dib.h
+++ b/core/fxge/dib/fx_dib.h
@@ -131,8 +131,6 @@
 }
 
 FXDIB_Format MakeRGBFormat(int bpp);
-FXDIB_Format MakeARGBFormat(int bpp);
-FXDIB_Format MakeMaybeAlphaRGBFormat(bool alpha, int bpp);
 FXDIB_Format AddAlphaToCmykFormat(FXDIB_Format format);
 
 inline FX_CMYK CmykEncode(int c, int m, int y, int k) {
diff --git a/core/fxge/win32/cfx_windowsdib.cpp b/core/fxge/win32/cfx_windowsdib.cpp
index 1d9df24..5d929df 100644
--- a/core/fxge/win32/cfx_windowsdib.cpp
+++ b/core/fxge/win32/cfx_windowsdib.cpp
@@ -24,6 +24,23 @@
   h = bmp.bmHeight;
 }
 
+FXDIB_Format MakeARGBFormat(int bpp) {
+  switch (bpp) {
+    case 8:
+      return FXDIB_Format::k8bppRgba;
+    case 24:
+      return FXDIB_Format::kRgba;
+    case 32:
+      return FXDIB_Format::kArgb;
+    default:
+      return FXDIB_Format::kInvalid;
+  }
+}
+
+FXDIB_Format MakeMaybeAlphaRGBFormat(bool alpha, int bpp) {
+  return alpha ? MakeARGBFormat(bpp) : MakeRGBFormat(bpp);
+}
+
 }  // namespace
 
 // static
